My desktop (server) runs Ubuntu 16.04 and my Jetson Xavier NX (client) runs Ubuntu 18.04. A plug&play joystick is physically connected to server and I need to have full access to this input device on client. This joystick is fully functional on server verified via jstest-gtk /dev/input/js0
.
I tried different ways, no success so far:
usbip
This package cannot be located through apt-get install usbip
. So following this tutorial, I installed linux-tools-generic
instead. However, the Ubuntu on Jetson (client) fails to find and mount usbip
and vhci-hcd
modules using sudo modprobe
command. Sounds like a kernel issue. So process cannot be completed on client side.
ser2net and socat
Based on this answer, I configured ser2net
on server to bind /dev/input/js0
to specific TCP port. On client side, I used socat
to capture the traffic and link it to /dev/input/js0
. I can acknowledge that the TCP connection is ESTABLISHED
and a device port /dev/input/js0
is created on client. However, running jstest-gtk /dev/input/js0
on client throws error “inappropriate IOCTL error
” similar to this. I also tried socat
on both sides. Couldn’t solve the issue.
I also tried input-over-ssh which requires python3
. But it results in evdev
permission and access errors on server side. I do prefer previous approaches over this one!
So I stuck! Any workaround is appreciated.