![]() ![]() ![]() |
![]() ![]() |
Plug and Play ist eine feine Sache... Dem Slogan Karte einbauen, Computer starten, fertig glauben ohnehin nur noch die größten Optimisten. Auch wenn für Otto Normalverbraucher mit seiner einen Plug-and-Play-Karte tatsächlich der Administrationsaufwand schwindet, erweist sich die vom BIOS vorgenommene Initialisierung schnell als Falle, wenn sich in einem Rechner gleich mehrere solcher Karten um die Zuweisung der wenigen freien Interrupts und Adressen bewerben. Während für Windows, DOS und Co. die Treiber für solche Karten noch mitgeliefert werden, müssen dieselben von Freaks in ihrer Freizeit erst noch für Linux entwickelt werden. Und während der Hersteller einer Karte noch weiß (wissen sollte), für welche Adressen und Interrupts er seine Treiber zurechtbastelt, beschränken sich die Linux-Treiber meist nur auf ausgewählte ("die normalen") Bereiche. Weist das BIOS einer Karte jetzt Ressourcen zu, die der Treiber nicht vorsieht, wird dieser die Hardware nicht entdecken...
Nun bleiben einem als Linux-Guru drei Offerten übrig:
Anhand der Installation einer Vibra 16 PnP Karte sollen die Schritte zur Einbindung demonstriert werden.
Die verwendeten Interrupts bereits benutzter (!) Geräte erfährt man mittels
user@sonne> cat /proc/interrupts
Vorsicht: Wurde z.B. der Drucker noch nicht angesprochen, wird der von ihm verwendete Interrupt nicht erscheinen.
Die Belegung der I/O-Ports vermittelt
user@sonne> cat /proc/ioports
Die Konfigurationsdatei /etc/isapnp.conf ist zu erzeugen:
root@sonne> pnpdump >/etc/isapnp.conf
pnpdump testet die Hardware und schreibt alle ermittelten Daten in die Datei. Diese muss nun bearbeitet werden und die Zeilen, die mit den Einstellungen im Modul korrespondieren, sind zu entkommentieren. Für eine Vibra16 PnP mit den Einstellungen IRQ=5, DMA 0 auf Kanal 1, DMA 1 auf Kanal 5, IO-Port 0x0220 sieht der entsprechende Ausschnitt wie folgt aus:
# ***** GEKUERZTE DATEI **** # # $Id: pnpdump.c,v 1.17 1998/11/10 22:45:04 fox Exp $ # This is free software, see the sources for details. # This software has NO WARRANTY, use at your OWN RISK # # For details of this file format, see isapnp.conf(5) # # ... # # Board 1 has serial identifier e5 ff ff ff ff 70 00 8c 0e # Card 1: (serial identifier e5 ff ff ff ff 70 00 8c 0e) # Vendor Id CTL0070, No Serial Number (-1), checksum 0xE5. # Version 1.0, Vendor version 1.0 # ANSI string -->Creative ViBRA16C PnP<-- # # ... # # Don't forget to uncomment the activate (ACT Y) when happy (CONFIGURE CTL0070/-1 (LD 0 # # Multiple choice time, choose one only ! # Start dependent functions: priority preferred # IRQ 5. # High true, edge sensitive interrupt (by default) (INT 0 (IRQ 5 (MODE +E))) # First DMA channel 1. # 8 bit DMA only # Logical device is not a bus master # DMA may execute in count by byte mode # DMA may not execute in count by word mode # DMA channel speed in compatible mode (DMA 0 (CHANNEL 1)) # Next DMA channel 5. # 16 bit DMA only # Logical device is not a bus master # DMA may not execute in count by byte mode # DMA may execute in count by word mode # DMA channel speed in compatible mode (DMA 1 (CHANNEL 5)) # Logical device decodes 16 bit IO address lines # Minimum IO base address 0x0220 # Maximum IO base address 0x0220 # IO base alignment 1 bytes # Number of IO addresses required: 16 (IO 0 (SIZE 16) (BASE 0x0220)) # # *** hier wurde stark gekuerzt *** # (NAME "CTL0070/-1[0]{Audio }") (ACT Y) )) # # *** es folgt weitere Hardware *** #
Die Karte muss nun initialisiert und das Modul geladen werden:
root@sonne> isapnp /etc/isapnp.conf root@sonne> modprobe sound.o
Test: Ob die Karte korrekt erkannt wurde, verrät z.B. der belegte Interrupt (Alternativ zeigt lsmod, ob das Modul geladen wurde):
user@sonne> cat /proc/interrupts 0: 90403 timer 1: 1387 keyboard 2: 0 cascade 5: 2961 sound blaster 8: 2 + rtc 10: 26394 aic7xxx 12: 35025 PS/2 Mouse 13: 1 math error 15: 1520 eth0
Ist der Interrupt nicht aufgeführt, stimmt vermutlich die Ressourcenzuteilung
im Modul und/oder im Konfigurationsfile nicht.
Die obige Beschreibung gleicht eher einer komplizierten Bastelanleitung...
Speziell zur Administration von Plug&Play-Soundkarten hat RedHat ein Frontend geschaffen, das automatisch die
korrekten Einstellungen in der Datei /etc/isapnp.conf
vornimmt.
Den auf RedHat basierenden Distributionen liegt das Tool sndconfig
ohnehin bei; wer eine andere
Distribution verwendet, kann sich die Sourcen von einem der zahlreichen FTP-Server besorgen und das Programm
übersetzen.
Nach dem Start des Programmes versucht sndconfig
die Soundkarte automatisch zu erkennen. Ist die
Suche erfolgreich, werden kurze Klangdateien abgespielt und die Konfiguration getestet.
Scheitern obige Versuche, fordert das Tool zur Angabe der im System befindlichen Soundkarte auf.
Mit "OK" gelangt man in einen Dialog, der zur Angabe der Parameter Interrupts, DMA-Kanäle und IO-Ports auffordert. Die voreingestellten Werte entsprechen den Standardwerten des jeweiligen Kartentyps.
Mit "OK" werden die Einstellungen übernommen und die Konfiguration wiederum anhand von Klangbeispielen verifiziert. Geht etwas schief, deutet die Ausschrift meist auf das Problem hin, z.B. dass der Interrupt von einem anderen Gerät benutzt wird. Hier hilft nur, die Einstellungen durchzuprobieren, bis eine Konstellation konfliktfrei funktioniert. Viele Soundkartenchips lassen sich als unterschiedliche Typen konfigurieren (z.B. als Sb16 und/oder WSS), somit ist der Test eines anderen Kartentyps ein weiterer Versuch, seinem System die Töne beizubringen.
![]() ![]() ![]() |
![]() ![]() |