From: Marek V. <ma...@va...> - 2010-02-12 00:43:16
|
2010/2/12 Greg KH <gr...@kr...>: > On Thu, Feb 11, 2010 at 09:45:49PM +0100, Marek Vavruša wrote: >> Hi folks, >> >> 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? >> >> Feature overview: >> >> - 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): >> Server: ./usbexportd >> 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 >> administrators. >> >> 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. > > Very cool stuff, nice job. > > What's the odds that we could get the in-kernel Linux USB/IP protocol to > work with this interface so that they could communicate properly? > > thanks, > > greg k-h > Thanks Greg! The USB/IP looks very exciting to me and I'd definitely like to try some sort of cooperation later on. As I have looked briefly on the USB/IP, the server should be able to discover devices imported with usbip (okay, that's obvious), but the ability of mine userspace server to talk to the usbip clients as well as mine libusb-based clients seems like a nice use case to me! But that's just an idea and the project is only a few weeks old, so many ugly parts need my attention first. Marek |