usbreset
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
usbreset ist ein kleines Programm, mit dem man USB-Anschlüsse über die Kommandozeile oder aus Skripten heraus trennen und wieder anschließen kann, ohne dazu tatsächlich das Gerät abstöpseln und wieder anschließen zu müssen. Das kann sinnvoll sein, wenn bestimmte Programme Schwierigkeiten haben, Geräte anzusprechen, weil sie angeblich "belegt" sind, oder zum Resetten von Anschlüssen nach Änderungen. Das Programm sollte theoretisch auf allen Ubuntu-Versionen laufen.
Installation¶
usbreset ist nicht in den Quellen vorhanden; es wurde 2008 von Alan Stern auf Nachfrage in einem Forum 🇬🇧 veröffentlicht. Zur Erstellung ist ggf. die Installation[1] des Paketes
build-essential
Befehl zum Installieren der Pakete:
sudo apt-get install build-essential
Oder mit apturl installieren, Link: apt://build-essential
nötig.
Der Quellcode ⮷ wird kopiert und in einem Editor[2] als usbreset.c gespeichert. Dann im Terminal[3] in das Download-Verzeichnis wechseln und mit
cc usbreset.c -o usbreset
das Programm erstellen. Die entstandenen Programmdatei usbreset z.B. nach /usr/local/bin (Root-Rechte[4] nötig!) verschieben, damit sie allen Benutzern zur Verfügung steht.
Hinweis!
Fremdsoftware kann das System gefährden.
Benutzung¶
Das Programm wird auf der Kommandozeile mit dem Befehl
usbreset /dev/bus/usb/xxx/xxx
aufgerufen. Das gesuchte Geräte kann man sich per lsusb
ausgeben lassen (Beispielausgabe):
~$ lsusb Bus 002 Device 004: ID 04a9:221c Canon, Inc. CanoScan LiDE 60 Bus 002 Device 002: ID 07ab:fc9f Freecom Technologies Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Den CanoScan Lide 60
kann man also per
usbreset /dev/bus/usb/002/004
"resetten".
Bei Erfolg sieht die Ausgabe so aus:
Resetting USB device /dev/bus/usb/002/004 Reset successful
Auch in der dmesg
-Ausgabe erkennt man die Aktion an einer Zeile wie
[ 7777.425464] usb 2-5: reset high-speed USB device number 4 using ehci-pci
Bei fehlerhafter Device-Angabe spuckt das Programm
"Error opening output file"
aus.
Die Verwendung setzt, anders als in diesem Beitrag 🇬🇧 auf askubuntu suggeriert, keine Root-Rechte voraus, kann also auch aus Skripten heraus gut verwendet werden (siehe z.B. scanbuttond - Mehrfachbelegung von Tasten).
Alternativen¶
In dem schon angesprochen Beitrag 🇬🇧 werden weitere Vorgehensweisen beschrieben, die auch ohne ein "neues" Programm auskommen, die Version mit usbreset ist aber in der Anwendung komfortabler.
Links¶
Beitrag 🇬🇧 auf askubuntu.com