ubuntuusers.de

USBIP

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./usbip_logo.png USB/IP 🇬🇧 ist eine Softwarelösung um USB-Geräte wie Mäuse, USB-Sticks usw. auf einen anderen System über das Netzwerk verfügbar zu machen, so das es wie ein lokales USB-Gerät genutzt werden kann.

Installation

USBIP ist ab Kernel 3.17 in folgendem Paket enthalten[1]:

  • linux-tools-generic

Paketliste zum Kopieren:

sudo apt-get install linux-tools-generic 

Oder mit apturl installieren, Link: apt://linux-tools-generic

Achtung!

Es sollte auf keinen Fall das separate Paket usbip installiert werden! Dieses Paket ist bei allen Ubuntu-Versionen völlig veraltet und bereitet im späteren Verlauf Probleme.

Konfiguration

Konfigurierung des Servers

Nach der Installation muss man als erstes das für "usbip" wichtige Kernelmodul laden[3][4].

sudo modprobe usbip-host 

Um das Modul permanent zu laden, muss man /etc/modules editieren und usbip-host hinzufügen[4][5].

Als nächstes muss ein Link von usbutils nach hwdata angelegt werden, damit die USB-Geräte richtig angezeigt werden.

sudo mkdir /usr/share/hwdata/
sudo ln -sf /var/lib/usbutils/usb.ids /usr/share/hwdata/ 

Nun kann ein "usbip" Server gestartet werden, was natürlich nach jedem Neustart wiederholt werden muss, wenn man dies nicht in den Autostart einfügt.

sudo usbipd -D 

Nun kann mit der eigentlichen Konfiguration der USB-Geräte begonnen werden. Hierfür sollte man sich erst einmal einen Überblick über alle USB-Geräte verschaffen, dabei sollte man auf die Bus-ID achten.

lsusb 

Mit der ID oder dem Namen kann man nun in der Liste von "usbip" nach der richtigen Bus-ID (Zahl-Zahl; z.B. 1-2; nicht USB-ID!) suchen.

usbip list -l 

Nachdem man nun im nächsten Befehl die Bus-ID eingesetzt hat, ist der Server fertig.

sudo usbip bind -b "Bus-ID" 

Konfigurierung des Clients

Auch hier muss zuerst das benötigte Kernelmodul geladen werden.

sudo modprobe vhci-hcd 

Um das Modul permanent zu laden, muss man /etc/modules editieren und vhci-hcd hinzufügen.

Nun kann man sich mit diesem Kommando einen Überblick über die Freigabe der USB-Geräte eines Servers verschaffen.

usbip list -r "Serveraddresse" 

Zum Schluss muss man nur noch das nächste Kommando mit der richtigen Bus-ID und der Serveradresse ausgeführt werden und alles sollte dann funktionieren.

sudo usbip attach -r "Serveraddresse" -b "Bus-ID" 

Befehle

Befehl Funktion
Serverbefehle
usbip list -l Hiermit können alle lokalen USB-Geräte angezeigt werden, welche freigegeben werden können.
usbip bind -b "Bus-ID" Hiermit kann ein USB-Gerät mit der zugeordneten Bus-ID zu den freigegebenen USB-Geräten hinzugefügt werden.
usbip unbind -b "Bus-ID" Hiermit kann die Freigabe eines USB-Gerätes rückgängig gemacht werden.
Clientbefehle
usbip attach -r "Serveraddresse" -b "Bus-ID" Hiermit kann ein freigegebenes USB-Gerät ins Client-System eingehängt werden. Dies muss zwingend mit Root-Rechten erfolgen!
usbip detach -p "Port" Hiermit kann ein USB-Gerät wieder ausgehängt werden. Der Port kann mit usbip port ermittelt werden.
usbip list -r "Serveradresse" Hiermit können alle freigegebenen USB-Geräte eines Servers angezeigt werden.
usbip port Hiermit kann man sich alle eingehängten USB-Geräte anzeigen lassen.

Problembehebung

usbipd wurde in /usr/sbin nicht gefunden

Falls man doch das Paket usbip installiert hatte und dieses deinstalliert wurde, so fehlt die Verlinkung auf das eigentliche Programm. Mit:

sudo ln -sf /usr/bin/usbd /usr/sbin/usbd 

kann diese aber wiederhergestellt werden.

Diese Revision wurde am 24. Mai 2019 23:26 von m8r erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, System, Shell, Netzwerk