Development workstation on one side of the room, workbench on the other...
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
usbip-client-tools.confEnsures that the kernel module is loaded. On Debian systems, this should be copied to /etc/modules-load.d/conf - 143.00 bytes - 02/25/2017 at 11:02 |
|
|
usbip-server-tools.confEnsures that the kernel module is loaded. On Debian systems, this should be copied to /etc/modules-load.d/conf - 38.00 bytes - 02/25/2017 at 10:46 |
|
|
91-usbip-server-tools.rulesUDEV rules file for FTDI and USBTiny. On Debian systems, this should be copied to /etc/udev/rules.d/rules - 315.00 bytes - 02/25/2017 at 10:46 |
|
One of the downsides I've come accross is the bus pirates USB connection can be flaky at times, this manifests itself with a Kernel deadlock on the client system (whole machine freezes) I've not managed to obtain any debug information as the only way to resolve the situation is with a hard reboot.
The USB Tiny does not suffer the same issue. The work around is to simply access the Bus Pirate serial port over SSH or using the previous serial2tcp tool for the bus pirate and leaving this work around for the USBTiny.
This guide goes through the setup of both client and server. It was written with a Debian/Ubuntu GNU/Linux system in mind, however, all of the tools are common to all Linux distributions, instructions can easily be adapted (instructions will happily be accepted and added for other distributions).
A deb package is available that automates steps 2 & 3, these are available from https://github.com/timsavage/usbip-tools/releases
This solution uses USBIP to export the USB device and some UDEV rules to automate the exporting when a device is plugged in.
A note on the security of this solution. usbipd does not include any security mechanisms, similar to other UNIX protocols (eg NFS). To make this solution secure some suggestions would be:
Note: Before continuing ensure you do not have the Debian usbip package installed. This package is out of date and the project has since been merged into the kernel proper.
Install the USBIP kernel module and tools:
# Install the Linux tools package
$ sudo apt install linux-tools-generic
# Ensure the kernel module is inserted
$ sudo modprobe usbip_host
To ensure the module is loaded on restart add the following to the file /etc/modules-load.d/usbip-server-tools.conf
# USBIP Host module loaded
usbip_host
Finally start the usbip daemon to export the devices:
# Start USB IP as a daemon (-P will create a PID file /var/run/usbipd.pid)
$ sudo usbipd -D -P
Add UDEV rules to automatically export devices when they are plugged in, add the following to the file
/etc/udev/rules.d/91-usbip-server-tools.rules
# Auto bind any FTDI device (well any product that includes an FTDI interface).
SUBSYSTEM=="usb" ATTRS{idVendor}=="0403" ATTRS{idProduct}=="6001" RUN+="/usr/bin/usbip bind -b $kernel"
# Auto bind a USBTiny ISP
SUBSYSTEM=="usb" ATTRS{idVendor}=="1781" ATTRS{idProduct}=="0c9f" RUN+="/usr/bin/usbip bind -b $kernel"
Install the USBIP kernel module and tools:
# Install the Linux tools package
$ sudo apt install linux-tools-generic
# Ensure the kernel module is inserted
$ sudo modprobe vhci-hcd
To ensure the module is loaded on restart add the following to the file /etc/modules-load.d/usbip-client-tools.conf
# USBIP Host module loaded
vhci-hcd
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More