Innerhalb meiner Peergroup hatte die Tage jemand versucht, mit Hilfe der Linux-Software USBIP Geräte, welche an einem USB-Port hängen, auch für ein Netzwerk nutzbar zu machen. Im Gegensatz zu einem normalen Debian-Kernel für Standart-PC’s, sind die entsprechenden USBIP-Module aber für die ARM-Architektur im Kernel nicht enthalten. Und irgendwie scheint es prinzipiell wohl Probleme zu geben, die Treiber für den Kernel zu bauen. Dies trifft also nicht nur auf den Raspberry Pi, sondern auch so netter Embeded-Hardware wie der Dockstar. Nach ein bischen stöbern über die allseits bekannten Suchmaschienen bin ich aber hier auf eine – für’s erste funktionierende Lösung gestossen. Sie ist auf ein Debian Wheezy abgestimmt.
Als erstes sollte man sich vergewissern, dass man für sein Raspberry Pi sowohl den aktuellsten Kernel, als auch die neuen Firmware-Treiber und Module geladen hat. Dann wie folgt:
sudo apt-get install git git clone git://github.com/raspberrypi/linux.git kernel cd kernel wget https://raw.github.com/raspberrypi/firmware/master/extra/Module.symvers zcat /proc/config.gz > .config
Als nächstes öffnet man mit einem Editor die .config und fügt am Ende folgendes hinzu:
CONFIG_USBIP_CORE=m CONFIG_USBIP_VHCI_HCD=m CONFIG_USBIP_HOST=m CONFIG_USBIP_DEBUG=n
Danach auf der Kommandozeile folgende Befehle absetzen:
make oldconfig make LOCALVERSION=+ modules_prepare make SUBDIRS=drivers/staging/usbip sudo make SUBDIRS=drivers/staging/usbip modules_install sudo depmod -a
Jetzt USBIP installieren:
sudo apt-get install usbip
Nun den Host-Treiber laden (um USB-Geräte teilen zu können)
sudo modprobe usbip-host
Zum Geräte auflisten:
sudo usbip list -l
Man sollte sich die Bus-ID merken, damit man das Gerät dann zum Teilen frei geben kann:
sudo usbip bind --busid 'BUSID'
Als Antwort kommt dann:
bind device on busid 'BUSID': complete
Für den Client wird dann folgendes ausgelöst:
sudo modprobe vhci-hcd usbip list --remote 'pi ip' sudo usbip attach --host 'pi ip' --busid 'BUSID' lsusb