Was ist die Begrenzung der Gerätenummer in Linux für einen USB-Bus?

1270
Rob Corlett

Ich entwickle ein Fernüberwachungsgerät mit einem Raspberry Pi. Um mich mit Benachrichtigungen zu versorgen, enthält es 3G-Dongle. Aufgrund der Instabilität der Stromversorgung ändert der Dongle manchmal die Gerätenummer. Wenn der 3G-Dongle zum Beispiel gestartet wird, kann Folgendes angezeigt werden (mithilfe von lsusb):

Bus 001 Gerät 005: ID 12d1: 1464 Huawei Technologies Co., Ltd

Wenn jedoch einige Stunden vergangen sind, erhöht sich die Anzahl der Geräte auf:

Bus 001 Gerät 007: ID 12d1: 1464 Huawei Technologies Co., Ltd

Meine Frage ist also, was ist die Begrenzung der Gerätenummer? Kann es weiter auf 999 oder sogar darüber hinaus ansteigen oder gibt es eine Untergrenze wie 256 oder 128? Mit diesen Informationen kann ich die Gerätenummer überprüfen und einen Neustart erzwingen, wenn der Grenzwert erreicht wird.

4

2 Antworten auf die Frage

4
Optichip

USB verwendet 7-Bit-Adressierung, sodass Sie 127 Geräte ansprechen können. Das größere Problem ist natürlich die Leistung bei der Verwendung von USB-Geräten. Wenn nicht genügend Strom vorhanden ist, funktionieren sie nicht.

Danke, Optichip - ich hatte den Verdacht, dass es nicht bis 128 gehen würde. Was das Problem mit der Stromversorgung angeht, beobachte ich es, aber bisher kein Problem außer diesem. Rob Corlett vor 9 Jahren 0
2
Juha Laiho

Die Linux-Gerätenummerierung auf einem USB-Bus enthält Informationen über die "nächste zu vergebende Gerätenummer". Dies wird natürlich jedes Mal aktualisiert, wenn ein neues Gerät angeschlossen wird.

Solange die Gerätenummer des aktuell angeschlossenen Geräts weniger als 127 ist, ist die neue "nächste Gerätenummer" nur die aktuelle Gerätenummer plus eins. Bei "aktueller Gerätenummer" 127 wird die "nächste Gerätenummer" auf 1 zurückgesetzt.

Die Gerätezuordnung prüft auch, ob die vorgeschlagene Nummer bereits verwendet wird, und prüft, ob nacheinander folgende Gerätenummern gesucht werden, bis eine freie Nummer gefunden wird.

Alles in allem gibt es also eine Begrenzung der Gerätenummer, aber wenn sie erreicht wird, wird die Nummerierung ordnungsgemäß umgedreht.