for anyone interested - I have started a library, which is able to
interact with USB subsystem over TCP/IP.
It basically intercepts dynamic calls to libusb functions in your
executable, forwards the function call to remote server and interprets
the result locally. I'm very excited about this approach, because it
works with existing system executables as is - no need to recompile or
any extra work whatsoever!
I'm using it already for virtualization of our university education
devices (FTDI2232 + MSP430) on clients.
The wrapper basically renders remote USB subsystem just as if it was
connected to local computer, so there's plenty of uses.
- Virtualization of devices.
- Sharing your devices with friends over network.
- Debugging / Flashing your devices remotely. OpenMoko anyone?
- Implemented in C/C++, works under POSIX.
- Generic server and client executables, libusb transport implemented.
- No authentication or safe authentication / tunnelling with SSH.
- BER / ASN.1 based communication protocol.
- TCP connection, but optimized for realtime latency.
- Extensible communication protocol implementation.
Example (lsusb to dump USB devices on server):
Client (no auth): ./usbnet -h server:22222 -l libusbnet.so "lsusb"
Client (SSH auth): ./usbnet -a user@server -l libusbnet.so "lsusb"
GitHub (with source packages): http://github.com/vavrusa/libusbnet
Git repository: git://github.com/vavrusa/libusbnet.git
Library was designed for as easily extensible to other libraries,
there's just need to implement the actual function transports.
It is still in early development, but it reached usable state and all
libusb functions are already implemented.
The library is also designed with security in mind, so the best
approach is to let server bind to localhost only,
and use SSH public-key authentication method. This employs standard
system-wide security policies well known to
So if you have thoughts or are brave enough to try it, please let me
know. I'll be glad for any feedback or bugreports.
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx