Resourcen-Vergabe am PC (was: Soundproblem unter SuSE 8.0)

Jan-Benedict Glaw jbglaw at lug-owl.de
Mit Dez 10 12:53:57 CET 2003


On Wed, 2003-12-10 11:35:04 +0100, Frank Matthieß <frankm at lug-owl.de>
wrote in message <20031210103503.GK22393 at dvmwest.dvmwest.de>:
> Martin Wilhelm [2003-12-09 20:40 CET]:

[...]

Okay, jetzt gehen die Ideen langsam ins Wilde über. Ich fasse das mal
gerade zusammen:

- In einer Mail hast Du geschrieben, daß Du eine EISA 3c509 hättest.
  Bist Du sicher, daß das EISA ist? ...oder vielleicht doch noch
  16bit-ISA?

- Dann noch die große Frage: Ist die Soundkarde eine ISA- oder eine
  PCI-Karte? Was sagt "lspci" dazu?

- USB belegt, ebenso wie die 3c509, IRQ 10.

Das eigentliche Problem ist, daß IRQ 10 sowohl von ISA- (3c509) als auch
von PCI-Hardare (USB) benutzt wird; mal ganz abgesehen von der
Soundkarte.

Da Du IRQ 10 anscheinend für die 3c509 brauchst, _mußt_ Du im BIOS IRQ
10 als "Legacy ISA"-Interrupt eintragen. Damit verbietest Du, daß
irgendeiner PCI- (oder ISA-Pnp-)Karte dieser Interrupt zugewiesen wird.

Weiterhin darfst Du (generell, aber es gibt Ausnahmen) mit ISA-Geräten
IRQs nicht mehrfach verteilen (IRQ sharing). Wenn also IRQ 10 für die
3com-Karte gebraucht wird, ist dieser exklusiv vergeben; er darf nicht
für andere Hardware erneut vergeben werden. Wenn Du das im BIOS
entsprechend einstellst, wird auch der USB-Controller einen anderen IRQ
zugewiesen bekommen.


Von hier aus mußt Du dann Deine Soundkarte angehen. Wenn sie PCI
spricht, dan wird sie nach der BIOS-Einstellung sofort einen anderen IRQ
zugewiesen bekommen (dieser darf dann auch mit anderen
Hardware-Komponenten geshared sein).

Wenn die Soundkarte eine ISA-Karte ist, mußt Du einen weiteren freien
IRQ finden und die Karte entsprechend konfigurieren. Vergiß' nicht, dem
BIOS bescheidzusagen, daß Du den IRQ an eine ISA-Karte vergeben hast,
damit das BIOS diesen IRQ nicht auch noch zusätzlich an eine PCI-Karte
vergibt...

Also - generelles Vorgehen bei einem PC mit "Legacy-Geräten", wie's die
Industrie so schön nennt:

- Zuerst IO-Mem für alle ISA-Karten konfliktfrei vergeben/konfigurieren.
  Das ist Handarbeit. Dabei darauf achten, daß es (alters her) Bereiche
  gibt, die für Graphikkarte etc. reserviert sind!
- Dann IO-Ports für alle ISA-Karten konfliktfrei vergeben. Ebenfalls
  Handarbeit... Ebenfalls auf reservierte Bereiche achten!
- IRQs vergeben. Keine Konflikte! Diese IRQs im BIOS mit "Legacy / ISA"
  markieren, damit das BIOS die IRQs nicht an PCI-Hardware vergibt.
- PCI-Geräte einstecken; die konfiguriert das BIOS.
- PCI-X, AGP, PCI-Express und Co. sind (aus Sicht der
  Resourcen-Verteilung) identisch mit normalem PCI.

So... Nun die Ausnahmen:

- ISA-IRQs dürfen mehrfach vergeben werden, wenn immer nur ein Gerät
  exklusiv einen solchen Interrupt auslösen kann. Beispiel:
  Netzwerkkarte _oder_ Soundkarte. Willst Du Sound, mußt Du vorher das
  Netzwerk-Interface 'runterfahren (und ev. den Treiber entladen).
  Willst Du Netzwerken, vorher die Sound-Treiber entladen. Beispiel:
  serielle Schnittstellen: ttyS0 und ttyS2 teilen sich (traditionell)
  IRQ 4. Daher kannst Du nur _entweder_ ttyS0 _oder_ ttyS2 benutzen.
  Selbiges gilt für ttyS1 und ttyS3, da entsprechend mit IRQ 3.
- IO-Ports dürfen nie geshared werden. Es sei denn, Du lötest auf den
  ISA-Karten etwas herum und bastelst Dir (von außen via Schalter
  zugänglich) quasi ein Chip-Selekt-Signal ein. Viel Aufwand:)

Nun die wichtigste Regel:

- Resourcen-Verwaltung in PCs ist für'n Arsch (TM).

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20031210/856174e8/attachment.pgp