Soundkarte im Bios Was: mainboard-Empfehlung
Johannes Goecke
goecke at upb.de
Tue Aug 16 20:49:17 CEST 2005
Ich habe nochmal daran gearbeitet und viele Hex Zahlen in Binär
gewandelt.
On Mon, Aug 15, 2005 at 10:29:44PM +0200, Jan-Benedict Glaw wrote:
> On Mon, 2005-08-15 21:42:42 +0200, Johannes Goecke <goecke at upb.de> wrote:
> > On Sun, Aug 14, 2005 at 01:31:59PM +0200, Jan-Benedict Glaw wrote:
> > So ich hoffe ich habe ein paar Hausaufgaben gemacht:
> > Ich habe ganz oft "lspci -xxx" jeweils mit "enable" und "Auto"
> > erzeugt (for i in `seq 1 20` ... ) und verglichen. Das stark
> > komprimierte Ergebnis ist angehängt. Ich habe alle identischen
> > Zeilen gelöscht und jeweils die korrespondierenden Zeilen von 2 mal "Auto"
> > und 2 Mal "Disabled" untereinandergeschrieben.
> > (wenn nötig habe ich auch die orginal Files)
> >
> > Nach meiner Vermutung sind die Unterschiede in der Northbridge
> > Rauschen, weil nicht einheitlich zwischen Auto und Disabled.
>
> Bitweise verglichen?
Jetzt bin ich sicher: Bitweise Verglichen - nur dort, wo
innerhalb von AUTO bzw. Disabled die BITs konstant sind.
>
>
> Jetzt kommt der kreative Teil :) Mehrere Varianten kommen mir da vor
> Augen. Man könnte das Einschalten des Bits gaanz früh zur Boot-Phase des
> Kernels machen, bevor/während der Bus-Scan läuft. Das ist vermutlich die
> einfachste Variante. Etwas programmieren wird man aber müssen...
>
>
> > 0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [K8T800 South]
> > (A) 50: 88 8d 09 00 00 00 00 00 43 80 00 01 00 00 04 08
> > (C) 50: c8 8d 09 00 00 00 00 00 43 80 00 01 00 00 04 08
> > --------^
> > hier ist ein Kandidat 0x88 (=ein?) und 0xc8 (=aus?)
>
> Genau. Da schaltet sich genau das 6er-Bit um.
Hier sollte es wirklich sein
(Die Nortbridges sind bei genauerer Überprüfung weggefallen -
etwas mehr Sorgfalt zahlt sich doch aus ;-))
Jetzt die kreative Phase
... google ... find ... grep ... work .... think .... raten ...
naja also mein Stand :
- Kernel Patschen
- irgendwo bevor im "dmesg" sowas wie "PCI:" auftaucht
- irgendeinen Wert nehmen ( Am Bspl : PCI-Bus 00, Slot 11, Function 0 )
Register 50 und Bit 6 löschen. Die Frage ist nur wo ?
- Nach google ist der Start von PCI Bus Scan in der Function
"pci_init()", die befindet sich in "$kernel/drivers/pci/pci.c".
Wenn ich dir bislang richtig folgen konnte, sollte
in oder vor dem Aufruf dieser Funktion das setzen erfolgen und alles
wird gut...
es sieht so aus, als ob folgendes möglich wäre
---------
unsigned char SoundCardSwitch;
pci_read_config_byte ( ? , 0x50 , &SoundCardSwitch );
/* jetzt Bit 6 Löschen und zurückschreiben */
pci_write_config_byte( ? , 0x50 , SoundCardSwitch & 0x9f );
---------
fehlt nur ein "struct pci_dev *" als Fragezeichen...
die gibt es mittels pci_find_device, aber wie kommt man zum richtigen
aufruf über "0000:00:11.0" oder über "Vendor ID" ? da blicke ich
nicht ganz durch
>
> MfG, JBG
>
hoffend den Pfad zur erleuchung gehend
Johannes Goecke
More information about the Linux
mailing list