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.
Next: 16.6.3 lsusb
Up: 16.6 USB
Previous: 16.6.1 Linux und USB