Home · Kontakt · Impressum
contents index previous up next
Next: 16.6.2 Das usbfs Up: 16.6 USB Previous: 16.6 USB

16.6.1 Linux und USB

Unter Linux wird USB seit der Kernelversion 2.4 unterstützt. Dabei sind zwei Methoden zu unterscheiden. Zum einen das von Compaq entwickelte Open Host Controller Interface (OHCI) und das von Intel favorisierte Universal Host Controller Interface (UHCI). Die UHCI-Hardware, damit sind vor allem die USB-Controller gemeint, ist einfacher aufgebaut und damit billiger als OHCI-Hardware. Allerdings benötigt Sie aber aufwendigere Treiber. In den heutigen Distributionen wird normalerweise der Treiber für das jeweilige angewandte Verfahren automatisch erkannt. Sollte dies mal nicht der Fall sein, so können Sie über die PCI-Informationen herausfinden, welcher USB-Typ wohl eingesetzt wird.

enterprise:~ # cat /proc/pci
PCI devices found:
...
  Bus  0, device   7, function  2:
    USB Controller: VIA Technologies, Inc. USB (rev 22).
      IRQ 10.
      Master Capable.  Latency=64.
      I/O at 0xc800 [0xc81f].
  Bus  0, device   7, function  3:
    USB Controller: VIA Technologies, Inc. USB (#2) (rev 22).
      IRQ 10.
      Master Capable.  Latency=64.
      I/O at 0xcc00 [0xcc1f].
...

Im obigen Beispiel finden Sie den Eintrag ``I/O at 0xc800''. Ein Eintrag solchen Typs deutet auf einen UHCI-Controller hin. Würde dort ein Eintrag wie ``32 bit memory at 0xc800'' stehen, dann handelt es sich um einen OHCI-Controller. Im allgemeinen finden Sie UHCI auf den Hauptplatinen von Intel und VIA. OHCI findet sich dagegen auf Platinen von Compaq und solchen mit ALI- und SIS-Chipsätzen. Sollten Sie dennoch nicht wissen, welcher USB-Typ vorliegt, dann probieren Sie einfach alle Treiber aus und ermitteln den Richtigen aus den Fehlermeldungen in den Logfiles.

Unter Linux werden durch die Treiber alle USB-Anschlüsse zu einem virtuellen Hub zusammgefaßt. Dies führt zu einer vereinfachten und damit leichter zu verwaltenden Bustopologie. Die angeschlossenen USB-Geräte bekommen eine Gerätenummer zwischen 1 und 127. Dabei wird auch der Deskriptor des Gerätes ausgelesen. Er gibt Auskunft über das Gerät und seine USB-Unterstützung. Auch die Zuweisung zu einer Geräteklasse und -unterklasse erfolgt dort.

Auf jeden Fall muß immer der Treiber usbcore.o geladen werden. Er stellt den controllerunabhängigen Teil des USB-Subsystemkerns dar. Bei Verwendung von UHCI haben Sie die Wahl zwischen uhci.o und usb-uhci.o. Bei OHCI ist der Treiber usb-ohci.o für die Funktion verantwortlich. Sollten Sie sogar USB 2.0 einsetzen, dann brauchen Sie noch ehci-hcd.o. Auch hier müssen Sie trotzdem einen der UHCI- und OHCI-Treiber parallel laufen lassen, da die Steuerung der alten USB-Geräte hierüber erfolgt.


contents index previous up next
Next: 16.6.2 Das usbfs Up: 16.6 USB Previous: 16.6 USB
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang