USBIP - sharing usb devices over network

  • Is it possible to integrate USBIP from linux kernel in LE, either in LE image itself or as an addon?

    USBIP allows sharing of any usb connected devices over network with another linux system by sending the usb packets over the network.

    This would allow to share usb devices connected to single board computers (RaspberryPi, Odroid C2, etc.).

    In my case I'd like to use it to share my printer (connected to Odroid C2), which has no linux driver support on ARM, with a x86 linux server (which has working drivers for it).

    To get USBIP working, we would need to compile 3 modules from linux kernel source tree

    • usbip-core.ko: CONFIG_USBIP_CORE=m
    • usbip-host.ko: CONFIG_USBIP_HOST=m
    • vhci-hcd.ko: CONFIG_USBIP_VHCI_HCD=m

    In addition 2 userspace tools are needed

    • usbipd: the deamon handling network connections
    • usbip: configuring which devices are being shared

    USBIP was moved out of staging with kernel version 3.17, so for kernels <3.17 the modules and userpsace tools are found in drivers/staging/usbip, for kernel 3.17 and upwards the modules are located in drivers/usb/usbip and userspace tools in tools/usb/usbip.

    The process of sharing devices with USBIP is documented under https://www.kernel.org/doc/readme/tools-usb-usbip-readme.

    Is it possible to build modules out of linux kernel tree for addons with the LE build system?

  • This is not about supporting printers on a Media Centre. USBIP allows sharing any usb device over the network.

    Imagine you have a printer, scanner, toy, camera or whatever close to your TV and Media Centre without any other computer nearby to connect it to. You could connect this device to your Media Centre and allow one or more Linux computer access to this device over the network with USBIP.

    For these Linux clients it looks like the USB device is directly connected to them. USBIP is transporting the data on the USB bus transparently between the Media Centre and the client. The Media Centre doesn't need a driver for the USB device, this is entirely handled by the client.

    I hope this helps to understand the use case for USBIP a bit better.

  • I'm interpreting the request as 100+ man-hours of fiddling around with underused staging code to create something complex that will be a pain in the rear to support considering the average skill level of our userbase. The alternative is searching eBay for a wireless basestation that can share printers over a network. The last Apple Alrport Express I acquired for exactly this purpose was £12 including postage. If you're retired and/or have nothing better to do with your time .. feel free to experiment. If you're not and you value your time .. use the right tools for the job! :)