====== Ein Raspberry Pi B (Rev.2) als USB Geräte-Server ====== Ganz allgemein kann ein Linux Rechner (hier ein Embedded Device in Form eines Raspberry Pi B) als USB Geräte-Server konfiguriert werden.\\ Dieser stellt dann nahezu beliebige USB Endgeräte im Netzwerk zur Verfügung, so dass diese von Rechnern im Netzwerk (sog. Cliens) verwendet werden können als seien sie lokal angeschlossen.\\ ==== Quellen ==== * [[https://www.tecchannel.de/a/usb-geraete-in-linux-im-netzwerk-verfuegbar-machen,2075505,2|https://www.tecchannel.de/a/usb-geraete-in-linux-im-netzwerk-verfuegbar-machen,2075505,2]] * [[https://www.virtualhere.com/home|https://www.virtualhere.com/home]] * [[https://www.linuxquestions.org/questions/linux-kernel-70/usbip-bind-completed-successfully-but-it-really-didn%27t-4175625588/|https://www.linuxquestions.org/questions/linux-kernel-70/usbip-bind-completed-successfully-but-it-really-didn%27t-4175625588/]] * [[http://usbip.sourceforge.net/|http://usbip.sourceforge.net/]] ==== Installation Host/Server ==== dd bs=4M if=2018-11-13-raspbian-stretch-lite.img of=/dev/sdc sync # # neu erstellte SD-Karte in den Pi stecken und booten, dann per SSH einloggen und ... # sudo su apt-get update apt-get upgrade apt-get install usbip aptitude mc # Scanner anschließen und testen # Kernel-Modul laden: modprobe usbip-host # usbip Daemon (nicht im Hintergrund) starten: usbipd -d # Liste der lokal verfügbaren USB-Geräte anzeigen: usbip list -l # Das Gerät mit der ID 1-1.3 zur Freigabe einbinden: usbip --debug bind -b 1-1.3 # Freigegebenen USB-Geräte anzeigen: usbip list -r localhost Exportable USB devices ====================== - localhost 1-1.3: Seiko Epson Corp. : GT-F720 [GT-S620/Perfection V30/V300 Photo] (04b8:0131) : /sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.3 : Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff) # Das Kernel-Modul immer beim Systemstart laden: echo 'usbip_host' >> /etc/modules # usbipd Dienst beim Systemstart als Daemon (-D) starten: mcedit /etc/rc.local ... usbipd -D & sleep 1 usbip bind -b 1-1.3 exit 0 ==== Installation Client ==== # Ubuntu 16.04 LTS sudo su apt-get install linux-tools-generic # Kernel-Modul beim Systemstart laden: echo 'vhci-hcd' >> /etc/modules # damit alle User ein USB Gerät von Server per sudo einbinden (attach) und auch wieder freigeben (detach) dürfen: echo "%users ALL = NOPASSWD:/usr/bin/usbip" >> /etc/sudoers exit # Liste der Verfügbaren USB-Geräte am Server anzeigen lassen: usbip list -r 192.168.100.14 Exportable USB devices ====================== - 192.168.100.14 1-1.3: Seiko Epson Corp. : GT-F720 [GT-S620/Perfection V30/V300 Photo] (04b8:0131) : /sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.3 : Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff) # USB-Gerät mit der ID 1-1.3 lokal einbinden: sudo usbip attach -r 192.168.100.14 -b 1-1.3 # Lokal eingebundene USB-Geräte anzeigen: sudo usbip port # Lokal eingebundene USB-Geräte wieder freigeben: sudo usbip detach -p 00