Module automatisch laden

Genau wie bei PCI können auch bei USB die Geräteinformationen einheitlich abgefragt werden, so dass jedes Betriebssystem eindeutig entscheiden kann, ob ein passender Treiber verfügbar ist (die Informationen tauchen dann in der vorher erwähnten /proc/bus/usb/devices auf). Unter Linux gibt es dafür mehrere Möglichkeiten. Beim Kernel 2.2.x muss dafür ständig ein Daemon laufen, der das usbfs abhört, bei Änderungen reagiert und gegebenenfalls die notwendigen Module nachlädt. Zur Auswahl stehen hier drei Projekte: usbd, jUSBD und usbmgr. Betrachten wir letzteren:

Während der Installation (dank RPM problemlos) entsteht das Verzeichnis /etc/usbmgr, in dem sich unter anderem die Datei usbmgr.conf befindet. Diese enthält pro Gerät einen Eintrag. Für ein Wacom USB-Grafiktablett und eine Logitech-Maus sehen die Einträge zum Beispiel wie folgt aus:

# ET-0405-UV1.1-1 [WACOM]|graphire|FAVO
vendor 0x56a product 0x10 module evdev , mousedev , wacom
#USB-PS/2 Mouse M-BA47 [Logitech]
vendor 0x046d product 0xc002 module hid , usbmouse , mousedev

Aufgrund der Vielzahl an Herstellern von USB-Geräten sind noch nicht alle Geräte in der üblichen usbmgr.conf eingetragen. Dies lässt sich aber nachholen, indem man in der Datei /proc/bus/usb/devices die Hersteller- und Produkt-Nummer ermittelt und herausfindet, welche Module benötigt werden.

Beim kommenden Kernel 2.4 greift übrigens ein anderer Mechanismus: dort gibt es die Option, dass der Kernel das Laden der Module steuert. Dazu ruft er, sobald ein neues Gerät eingesteckt wird, die Datei /sbin/hotplug auf. Diese soll übrigen im Kernel 2.4 zur zentralen Anlaufstelle für im Betrieb wechselbaren Geräte werden, also neben USB-Geräten auch noch PCMCIA, SCSI und PCI-Karten (natürlich nur, wenn es die Hardware erlaubt).

Listing 1

USB-Startskript, Beispiel:

#!/bin/sh
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
start_usb ()
{
  modprobe -q usb-uhci >/dev/null 2>&1 ||\
  modprobe -q usb-ohci >/dev/null 2>&1 ||\
  modprobe -q uhci >/dev/null 2>&1 ||\
  (echo "Kein USB-Kontroller gefunden";
    rmmod usbcore>/dev/null 2>&1;return 1)
  mount -t usbdevfs none /proc/bus/usb
  usbmgr
  return 0;
}
stop_usb ()
{
  killall usbmgr >/dev/null 2>&1
  umount /proc/bus/usb >/dev/null 2>&1
  rmmod usb-ohci usb-uhci uhci >/dev/null 2>&1
  return 0;
}
case "$1" in
  start)
    start_usb
    ;;
  stop)
    stop_usb
    ;;
  *)
    echo "Usage: $0 [start|stop]"
    return 1
    ;;
esac

Leider arbeitet bisher noch keine einzige Distribution mit dynamischem Nachladen der Module (mit Ausnahme der noch experimentellen "Technologie Preview" von Caldera). Sowohl bei SuSE als auch bei Mandrake werden beim Starten alle vorher angegebenen Module statisch geladen. Bei diesen Distributionen kann aber bei Bedarf usbmgr nachinstalliert und der Aufruf von usbmgr im USB-Startskript (siehe Listing 1) ergänzt werden.

Wie bereits erwähnt, gibt es für die verschiedenen Geräte verschiedene Module. Bei USB gibt es außerdem mehrere standardisierte Geräteklassen (zum Beispiel: 0x02=Kommunikationsgerät, 0x09=Hub), die mit Linux keine Probleme bereiten sollten. Da jeder USB-Anschluss mit dem Root-Hub beginnt, ist der Treiber für Hubs schon im usbcore-Modul enthalten. Es sollte absolut jeder Hub problemlos funktionieren. Leider ist die USB-Spezifikation nicht umfassend, was zur Folge hat, dass viele Geräte unter Linux nicht funktionieren, weil die Hersteller proprietäre Protokolle verwenden. Welche Geräte unter Linux aber tatsächlich funktionieren und welche nicht, darauf gehen wir in den jeweiligen Einzelartikeln ein.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 06/2015: Shell-Tools

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Grammatikprüfung in LibreOffice nachrüsten
Grammatikprüfung in LibreOffice nachrüsten
Tim Schürmann, 24.04.2015 19:36, 0 Kommentare

LibreOffice kommt zwar mit einer deutschen Rechtschreibprüfung und einem guten Thesaurus, eine Grammatikprüfung fehlt jedoch. In ältere 32-Bit-Versionen ...

Aktuelle Fragen

Zu wenig Speicherplatz auf /boot unter MATE
Patrick Obenauer, 25.05.2015 14:28, 1 Antworten
Hallo zusammen, ich habe Ubuntu 14.10 mit MATE 1.8.2 (3.16-37) mit Standardeinstellungen aufgese...
Konsole / Terminal in Linux Mint 17.1 deutsch
Dirk Resag, 09.05.2015 23:39, 12 Antworten
Hallo an die Community, ich habe vor kurzem ein älteres Notebook, Amilo A1650G, 1GB Arbeitsspe...
Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...