USBIP

Prepare Carambola

  • Flash latest firmware from 8devices repository
  • Setup network for Carambola
  • Install usbip packages to Carambola
opkg update
opkg install usbip
opkg install usbip-client
opkg install usbip-server
  • If you want to autostart usbip, add couple lines to /etc/rc.local
usbipd -D
usbip bind -b 1-1
  • That's it! Your basic setup is ready.

Setup Windows

I have tested on Windows7 x64. USBIP drivers are signed and can be used without any discomfort.

  • Download usbip or if it does not work (like for me), try this
  • Read included Usage file and install Windows drivers
  • Open command line and type to list exposed USB devices on Carambola
usbip -D -l 192.168.0.116

This should give output like:

usbip -D -l 192.168.0.116
usbip dbg: usbip_network.c: 236 (tcp_connect ) trying 192.168.0.116 port 3240
usbip dbg: usbip_network.c: 256 (tcp_connect ) connected to 192.168.0.116:3240 - 192.168.0.116
usbip dbg:       usbip.c: 227 (query_exported_devices) exportable 1 devices
     1-1: Apacer Technology, Inc. : Handy Steno 2.0/HT203 (1005:b113)
        : /sys/devices/platform/dwc_otg.0/usb1/1-1
        : (Defined at Interface level) (00/00/00)
        :  0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
  • Now you can attach remote USB device with command:
usbip -D -a 192.168.0.116 1-1

This should give output like:

usbip dbg: usbip_network.c: 236 (tcp_connect ) trying 192.168.0.116 port 3240
usbip dbg: usbip_network.c: 256 (tcp_connect ) connected to 192.168.0.116:3240
usbip dbg: usbip_windows.c: 837 (query_interface0) exportable 1 devices
usbip dbg: usbip_windows.c: 854 (query_interface0)      1-1: Apacer Technology, Inc. : Handy Steno 2 0/HT203 (1005:b113)
usbip dbg: usbip_windows.c: 855 (query_interface0)         : /sys/devices/platform/dwc_otg.0/usb1/1-1
usbip dbg: usbip_windows.c: 856 (query_interface0)         : (Defined at Interface level) (00/00/00)
usbip dbg: usbip_windows.c: 876 (query_interface0)         :  0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)
usbip dbg: usbip_windows.c: 879 (query_interface0)
usbip dbg: usbip_network.c: 236 (tcp_connect ) trying 192.168.0.116 port 3240
usbip dbg: usbip_network.c: 256 (tcp_connect ) connected to 192.168.0.116:3240
usbip dbg: usbip_windows.c: 735 (import_device) call from attch here
usbip dbg: usbip_windows.c: 737 (import_device) return from attch here
usbip dbg: usbip_windows.c: 744 (import_device) devfd:0042FC50
new usb device attached to usbvbus port 1
Receive sequence:    4800
  • After this, Windows installs drivers for your device. That's it (if you are lucky enough)

It is pity, but looks like this project is not maintained well enough and sometimes results are unpredictable. Sometimes device is not recognized at all (lack of windows drivers), sometimes device directly works but tunneled with usbip does not. Couple of times I had blue screen.

Devices that work:

  • FTDI USB to Serial converter
  • Canon 40D camera with live preview and manual focus ability. It was impressive!
  • Generic mouse
  • Generic keyboard
  • Flash disk

Devices that did not work:

  • USB sound card (blue screen)
  • Noname USB to LAN adapter (installed drivers directly, but with usbip did not worked)
  • Noname webcam (worked directly with windows)
  • Wireless keyboard/mouse combo (blue screen)