Zend certified PHP/Magento developer

Ubuntu: Using local joystick /dev/input/js0 on remote machine

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.