[[Vorlage(Getestet, jammy bionic)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] [:Editor:einen Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./usbip_logo.png, 75, align=left)]] [sourceforge2:usbip:USB/IP] {en} 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]: {{{#!vorlage Paketinstallation linux-tools-generic }}} Für Ubuntu 22.04 wird außerdem ein entsprechendes Kernelpaket benötigt, z.B.: {{{#!vorlage Paketinstallation linux-tools-5.15.0-53-generic }}} Die laufende Kernelversion kann folgendermaßen ermittelt werden. {{{#!vorlage Befehl uname -r }}} {{{#!vorlage Warnung 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]. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl usbip list -l }}} Nachdem man nun im nächsten Befehl die Bus-ID eingesetzt hat, ist der Server fertig. {{{#!vorlage Befehl sudo usbip bind -b "Bus-ID" }}} == Konfigurierung des Clients == Auch hier muss zuerst das benötigte Kernelmodul geladen werden. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl sudo usbip attach -r "Serveraddresse" -b "Bus-ID" }}} = Befehle = {{{#!vorlage Tabelle Befehl Funktion +++ <-6> '''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. +++ <-6> '''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: {{{#!vorlage Befehl sudo ln -sf /usr/bin/usbd /usr/sbin/usbd }}} kann diese aber wiederhergestellt werden. = Links = * [sourceforge2:usbip:Projektseite] {en} * [man:usbip:Manpage] {en} #tag: Netzwerk, System, Shell, Hardware