Repository navigation
USB IP
USB/IP passes a USB device plugged into CouchLiteOS through to a Linux gaming PC over the network. It is meant for racing wheels, HOTAS, specialty controllers, and hardware that needs its own driver on the PC. Normal gamepads do not need it; Moonlight already sends their input.
USB/IP has no encryption or password of its own. Use it only on a network you trust.
Nothing is shared by default. Open TERMINAL.
-
List the devices:
sudo couchliteos-usbip list -
Add each device to
/etc/couchliteos/usbip-allowlist.conf, one per line:VID:PID:SERIAL VID:PID:* # only if the device has no serial number VID:PID:SERIAL:risky # needed for blocked device types (see below) -
Apply and check:
sudo couchliteos-usbip reconcile sudo couchliteos-usbip status
sudo couchliteos-usbip unbind-allstops sharing everything. -
Tell the firewall which PC may connect: set the gaming PC's LAN IPv4 address as
lan_addressunder[host:gaming-pc]in/var/lib/couchliteos/config.ini, thensudo systemctl reload couchliteos-firewall. Every other computer is blocked.
Safety rules:
- Storage, webcams, audio/microphones, keyboards and mice are refused unless
the entry ends in
:risky. - Never add a security key.
- The controller you use for the launcher is always refused.
- Unplugging and replugging a device does not share anything that is not on the list.
The client files are in the
host/ folder of the repository
(use the folder from the release that matches your box).
sudo apt install usbip
sudo modprobe vhci_hcd
sudo install -m 0755 host/couchliteos-usbip-client /usr/local/sbin/
sudo install -m 0644 host/couchliteos-usbip-client.service /etc/systemd/system/
sudo install -m 0600 host/couchliteos-usbip-client.conf.example /etc/couchliteos-usbip-client.conf
sudoedit /etc/couchliteos-usbip-client.conf
sudo systemctl enable --now couchliteos-usbip-client.serviceThe client attaches only devices CouchLiteOS shares. Use
couchliteos-usbip-client status and couchliteos-usbip-client detach-all.
In /var/lib/couchliteos/config.ini:
[tailscale]
remote_usbip = true
allowed_usbip_peer = 100.64.x.yallowed_usbip_peer is the gaming PC's single Tailscale IPv4 address. Reload
the firewall, point the client at CouchLiteOS's Tailscale address, and also
limit port TCP 3240 to the gaming PC in your tailnet policy. The allowlist
still applies. Relayed Tailscale connections can be too jittery for wheels and
HOTAS devices.
CouchLiteOS · Download · Report a bug · GPL-3.0-or-later
Getting started
Using it
- Streaming with Moonlight
- Game Covers and Stream Settings
- PlayStation with chiaki-ng
- Remote Desktop
- Web Apps and Browsers
- USB/IP
- Installing Your Own Programs
- Themes and Appearance
Hardware
Help