USBIP

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:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Starten von Programmen

  3. ⚓︎ Ein Terminal öffnen

  4. ⚓︎ mit Root-Rechten arbeiten

  5. ⚓︎ einen Editor öffnen

Inhaltsverzeichnis
  1. Installation
  2. Konfiguration
  3. Befehle
  4. Problembehebung
  5. Links

./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]:

Befehl zum Installieren der Pakete:

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.