Home · Kontakt · Impressum
contents index previous up next
Next: 16.6.3 lsusb Up: 16.6 USB Previous: 16.6.1 Linux und USB


16.6.2 Das usbfs

Informationen und der Zugriff auf die USB-Geräte sind über das USB Device Filesystem mit dem Namen usbfs möglich. Früher lautete die Bezeichnung usbdevfs, was aber zu Verwechslungen mit dem Dateisystem devfs führte. Das Dateisystem usbfs ist wie proc ein rein virtuelles Dateisystem. Es wird unter dem Mountpoint /proc/bus/usb in den Verzeichnisbaum eingehängt.

enterprise:~ # grep usb /etc/fstab
usbdevfs             /proc/bus/usb        usbdevfs   noauto                0 0

Das Verzeichnis enthält für jeden Bus durchnummerierte Verzeichnisse und die beiden virtuellen Dateien devices und drivers.

enterprise:~ # ls -l /proc/bus/usb/
insgesamt 0
dr-xr-xr-x    1 root     root            0 2004-06-01 07:50 001
dr-xr-xr-x    1 root     root            0 2004-06-01 07:50 002
-r--r--r--    1 root     root            0 2004-06-01 10:16 devices
-r--r--r--    1 root     root            0 2004-06-01 10:16 drivers
enterprise:~ # ls -l /proc/bus/usb/001
insgesamt 2
-rw-r--r--    1 root     root           18 2004-06-01 07:50 001
-rw-r--r--    1 root     root           18 2004-06-01 07:50 002
-rw-r--r--    1 root     root           18 2004-06-01 07:50 003
-rw-r--r--    1 root     root           18 2004-06-01 07:50 004
-rw-r--r--    1 root     root           18 2004-06-01 10:16 005

Eine Beschreibung der vorhandenen Geräte findet sich in der Datei devices.

enterprise:~ # cat /proc/bus/usb/devices 
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI Root Hub
S:  SerialNumber=cc00
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=222/900 us (25%), #Int=  3, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI Root Hub
S:  SerialNumber=c800
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
...

Vor den jeweiligen Zeilen in der Datei stehen Buchstaben, die die Information in dieser Zeile genauer definieren.

T
Einleitung der Gerätedefinition und Position des Geräts in der USB-Topologie.
B
Die Bandbreite des Geräts. Dieser Wert wird nur für USB-Controller angegeben, die auch als Wurzelhubs fungieren.
D
Beschreibung des Geräts aus der Geräteinformation
P
Beschreibung des Herstellers aus der Geräteinformation.
S
Beschreibung des Geräts im Klartext
C
Informationen über die Konfiguration. Der Asterisk steht dabei für eine aktive Konfiguration.
I
Informationen über die Schnittstelle.
E
Informationen über die Endpunkteigenschaften.

Schauen wir uns doch mal alle Zeilen an, die mit `T' und `S' beginnen.

enterprise:~ # grep "^[TS]" /proc/bus/usb/devices
T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
S:  Product=USB UHCI Root Hub
S:  SerialNumber=cc00
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
S:  Product=USB UHCI Root Hub
S:  SerialNumber=c800
T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 4
S:  Product=Standard USB Hub
T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=1.5 MxCh= 0
S:  Manufacturer=Microsoft
S:  Product=Microsoft IntelliMouse with IntelliEye
T:  Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#=  4 Spd=1.5 MxCh= 0
S:  Manufacturer=AIPTEK International Inc.
S:  Product=USB Tablet Series Version 1.04
T:  Bus=01 Lev=02 Prnt=02 Port=03 Cnt=03 Dev#=  5 Spd=12  MxCh= 0

Die Zeilen mit dem Anfangsbuchstabne `T' leiten eine neue Gerätedefinition ein. In der Zeile stehen folgende Informationen, die ein genauen Einblick in die Topologie der USB-Geräte ermöglicht.

Bus
Die Nummer des verwendeten USB-Busses. Im obigen Beispiel besitzt der Rechner 2 USB-Busse vom Typ UHCI.

Lev
Die Entfernung des jeweiligen Geräts von der Wurzel des USB-Bus. Dabei steht der Wert `00' für den Hub an der Wurzel und der Wert `01' für Geräte, die an diesem Hub direkt angeschlossen sind. Den Wert `02' bekommen alle Geräte, die an einem externen Hub angeschlossen sind, der direkt mit dem Wurzelhub verbunden ist. Und dies geht dann in immer so weiter. Im obigen Beispiel gibt es also zwei Wurzelhubs, einen direkt angeschlossen externen Hub und drei weitere Geräte, die an diesem Hub angeschlossen sind.

Prnt
Die Angabe des Elterngeräts ermöglicht es eine genaue Verbindungsstruktur des USB-Baums erstellen zu können. Hier steht die Device-Nummer des jeweilig genutzten Hubs drin. Zusammen mit der Busnummer ist die Position des Gerätes in der USB-Hierachie genau definiert.

Port
Hier wird die Portnummer des Elterngeräts angegeben, an dem das Gerät angeschlossen ist.

Cnt
Hiermit wird die Nummer des Geräts auf diesem Topologielevel angegeben.

Dev#
Jedes Gerät an einem USB-Bus bekommt eine eindeutige Nummer von 1 bis 127 zugewiesen, die hier aufgeführt ist. Geräte mit einer gleichen Nummer müssen daher verschiedene Bus-Nummern besitzen.

Spd
Die Geschwindigkeit, mit der die jeweiligen Geräte kommunizieren, wird hier auch angegeben. Bei dem im obigen Beispiel dargestellten System handelt sich augenscheinlich um die USB-Version 1.1. Die Geräte arbeiten teilweise mit niedriger und teilweise mit voller Geschwindigkeit.

MxCh
An diesem Wert können Sie einen Hub erkennen. Er gibt die Anzahl der USB-Geräte an, die an dieses Gerät angeschlossen werden können. Im obigen Beispiel können an die USB-Wurzelhubs jeweils 2 und an den externen Hub 4 USB-Geräte angeschlossen werden.


contents index previous up next
Next: 16.6.3 lsusb Up: 16.6 USB Previous: 16.6.1 Linux und USB
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang