USB over IP problems

Hello,
i have a new ZyXEL NBG6616, and i'd like to install USB over IP.
I'm using this guide (is done on Open-WRT): https://wiki.openwrt.org/doc/howto/usb.iptunnel
I'd like to undestand how i can do it.
this is a old guide, maybe there is one more recently. But i don't found nothing on google.

I installed all components but when i done this command "usbip list -l"
it shot this error:

root@LEDE:~# usbip list -l
udev_new
udev_enumerate_new
udev_enumerate_add_match_subsystem
stub: udev_enumerate_add_nomatch_sysattr bDeviceClass 09
stub: udev_enumerate_add_nomatch_sysattr bInterfaceNumber (null)
udev_enumerate_scan_devices
udev_enumerate_unref
udev_unref

How i can do for fix it?
thanks

1 Like

did you started the daemon?

usbipd &

installed usbip package?

opkg files usbip
Package usbip (2.0-5) is installed on root and has the following files:
/usr/share/hwdata/usb.ids
/usr/lib/libusbip.so.0
/usr/lib/libusbip.so.0.0.1

hope it helps!

edit:
plugged a pendrive:

usbip list -l
busid 1-1 (0781:5567)
SanDisk Corp. : Cruzer Blade (0781:5567)

ok, lets bind!

usbip bind -b 1-1
usbip: info: bind device on busid 1-1: complete

now what?
install usbip package for your distribution:

apt-get install usbip or pacman -S usbip

after installing, check wich remote devices are available:

sudo usbip list -r ADDRESS OF YOUR ROUTER
Exportable USB devices
======================

  • 10.13.0.1
    1-1: SanDisk Corp. : Cruzer Blade (0781:5567)
    : /sys/devices/platform/101c1000.ohci/usb1/1-1
    : (Defined at Interface level) (00/00/00)

Seems fine!

Now attach usbip to this device:

sudo usbip attach -r remote_host -b 1-1

I needed to install the driver vhci-hcd. maybe you're missing any.

my syslog:

usb usb3-port1: Cannot enable. Maybe the USB cable is bad?
usb usb3-port1: unable to enumerate USB device

tomorrow i continue.

hope it helps!

1 Like

opkg install libdudev

Hi,

With the latest commit (below), usbip builds now on my system (yay!), and installs - I see the drivers listed, and usbip / usbipd executables exist.

But ... I still get errors when trying to use usbip - to list, or bind (both, below). libudev is installed (slight typo above). Any suggestions?

root@wap-garage:~# usbip list -l
udev_new
udev_enumerate_new
udev_enumerate_add_match_subsystem
stub: udev_enumerate_add_nomatch_sysattr bDeviceClass 09
stub: udev_enumerate_add_nomatch_sysattr bInterfaceNumber (null)
udev_enumerate_scan_devices
udev_enumerate_unref
udev_unref
root@wap-garage:~# usbip bind -b 1-1.4
udev_new
udev_device_get_syspath
udev_unref
udev_new
stub: udev_device_get_sysattr_value bDeviceClass
udev_device_unref 0x77f23440 0
udev_unref
usbip: error: could not unbind driver from device on busid 1-1.4

Thanks!

Same trouble over here (v18.06.1 one several TP-Links). Hopefully someone knows a solution.

  • Erik -

Same here, 18.06.1 TL-WDR4300.

Same in WRT 1900AC. Thanks.

Same here...could really need it working!

Me Too: RT-N56U A1 with OpenWrt 18.06.1 r7258-5eb055306f

EDIT: This seems to be reported under usbip utilities package:

Although it mentions compilation issue (which has been resolved in the meantime for 18.06.01), the problem with missing udev remains.

P.S libudev-fbsd is not working with usbip.

I’ve been in the same trouble, using current head checkout. This is not a kernel issue, it’s caused by libudev-fbsd, as Krles already wrote.
The dependencies for usbip are still pointing to libudev-fbsd. This lib contains just a stub for udev_device_get_sysattr_value, which leads to the errors mentioned by blasters and arrmo.
Using libudev instead, everything’s working as expected.
I’d suggest to get libudev (or libeudev?) back into the tree and correct the dependencies for usbip.

Can I install libudev instead of libudev-fbsd easily on a 18.06.1 installation? Or must I compile everything myself?

This was working for me:

No need to compile from scratch.
I downloaded the libudev from the previous OpenWRT release, in my case it was:
https://downloads.openwrt.org/releases/17.01.6/packages/mips_24kc/packages/libudev_3.2-1_mips_24kc.ipk

Then I removed the libudev-fbsd with:
opkg remove --force-depends libudev-fbsd

and installed the downloaded package:
opkg install libudev_3.2-1_mips_24kc.ipk

Since then, usbip works as it should, I could mount it from my Ubuntu box.
For reference, I am using latest OpenWrt 18.06.1 with ar71xx/generic build on TP-Link WDR3600.

I hope this helps you, too.

3 Likes

@tati thanks a bunch, You are a lifesaver! This did also worked for my wrt32x (of course I had to use http://downloads.openwrt.org/releases/17.01.6/packages/arm_cortex-a9_vfpv3/packages/libudev_3.2-1_arm_cortex-a9_vfpv3.ipk with --force--downgrade option)

I noticed a bug report was opened for this issue: https://bugs.openwrt.org/index.php?do=details&task_id=2130

The libudev problem (empty usbip list -l) started in v18.
If you can't jist intall old package with --force-overwrite you can try this:
Copy libudev.so.1.6.3 from downloads.openwrt.org/releases/17.01.7/packages/(arc)/packages/libudev_3.2-1_(arc).ipk
and replace /usr/lib/libudev.so (or /overlay/upper/usr/lib/libudev.so for squashfs) with it.
For rpi4 (cortex a72) I used downloads.openwrt.org/releases/17.01.7/packages/aarch64_armv8-a/packages/libudev_3.2-1_aarch64_armv8-a.ipk with success.
Use 7-zip to extract files from ipk.