
USB/IP Project - mef
http://usbip.sourceforge.net/
======
ChuckMcM
I've got a couple of the Chinese made "Remote USB" servers which are
interesting but not as compatible as I would like.

What I find really amusing is that back when USB was proposed I argued that
rather than create an entirely new infrastructure why not just use Ethernet
packets. There are additional protocol types available in the bit encoding and
all sorts of infrastructure that already supported layer 2 switching. Plus the
"phy" (10/100 at the time) was dirt cheap and already available. It never went
anywhere, and at the time I figured that nobody wants to support a standard
that they can't see how to make licensing money off of it. Somewhere I have
VHDL code for a PC parallel port emulator that ran over my protocol. It fit in
a small FPGA with the ethernet MAC so it wasn't like we were talking about a
lot of gates. Just no consortium fees and no way to keep people out of the
ecosystem you didn't like.

Doing USB over IP is an interesting way of re-creating that work (although
mine was multi-master so technically a bit better :-)). Of course these days
USB 3.0 is faster than the ethernet port on most machines so it was no doubt
doomed from the start. But its fun to do. The SATA over Ethernet stuff that
CoRAID did was like that, very nice work.

~~~
jjoonathan
It's been funny to watch the various phy standards converge in feature-space
(alas, not interop-space) over time. PCI got a packet architecture with
addresses and routing and credit-based flow control, USB got a packet
architecture with addresses and routing and credit-based flow control, SATA
said "screw it, we'll just become PCI-e, because they have packets and routing
and flow control," and thunderbolt basically _is_ PCI-e...

Unfortunately I think Ethernet might be too fragmented to ever take the
convergence to its logical conclusion. But who knows. If someone high on the
food chain at Intel wakes up on the other side of the bed one day it could
happen.

~~~
simcop2387
Ethernet's also got the fun problem of the length of the runs being hugely
different than pcie. What I expect is some kind of optical interface because
of that. Optical thunderbolt might be the way for that to happen.

~~~
jjoonathan
I thought 40G/100G ethernet was already optical (and multiplexed, much like
PCIe)?

EDIT: yep
[https://en.wikipedia.org/wiki/100_Gigabit_Ethernet](https://en.wikipedia.org/wiki/100_Gigabit_Ethernet)

I'm pretty sure that the only obstacles against "ethernet as a truly universal
bus" are either minor (someone's got to invest in making adapter interfaces)
or of the "why bother" variety. Unfortunately the latter is a bit of a show
stopper as far as I can tell :)

~~~
simcop2387
Hadn't thought about 40G/100G ethernet. It'd definitely be in that same area
for doing that. I'd definitely agree that the obstacles at this point are
either minor or a "why bother" kind of thing. With speeds continuing to go up,
I'd expect it in a generator or two simply because the "why bother" will shift
the other way, why bother to make a new standard when this one does it too and
is nearly ubiquitous. My guess at least for peripherials is going to be in the
optical thunderbolt area, more because of the way the device network matches
what people are designing for anyway. I'd guess once there's two standards, a
local (optical pcie) and remote (optical ethernet), things might begin
converging more and more until it's less distinct between the two.

I'd expect optical more because it's easier to get high bandwidth and low
latency on interconnects than copper because of the lower crosstalk and
everything. It's just a question of market forces pushing things to converge.

------
zeeed
TL;DR: It doesn't work. The project has been abandoned, the last update is >4
years old. Don't waste your time.

Two weeks ago I have had to implement a solution that, for technical reasons,
required a usb/ip implementation so I compared everything that was available.

I spent half a day on the project, perusing mailing lists and documentation
trying to get usb/ip (as linked here) to work. Eventually, I got discovery
working (win7 client connecting to linux/arm server) but the connection would
never be established.

Eventually, since usb/ip turned out to be a horrible waste of time, I used a
professional solution for about $40 which took 5min to set up and works like a
charm since then.

~~~
shabble
what solution did you end up with (soft- or hardware?) and what devices was it
supporting?

I've got a bunch of things that I'd like more switchable than standard 'kvm'
type muxes can do, so curious how it worked out.

~~~
ericfrederich
Yes, please... what did you wind up using?

~~~
zeeed
I ended up using the solution from
[http://www.virtualhere.com/](http://www.virtualhere.com/)

The server runs fine even on a raspi 2, to which I switched after having some
problems running it on a beaglebone black.

------
roel_v
Just buy one of these: [http://www.amazon.com/Silex-SX-DS-4000U2-Print-
Server-800MHz...](http://www.amazon.com/Silex-SX-DS-4000U2-Print-
Server-800MHz-
blau/dp/B006D3RCN6/ref=sr_1_6?ie=UTF8&qid=1444692814&sr=8-6&keywords=silex) .

Works awesome, lets you buy the cheap non-workgroup version of pretty much
everything (printer, scanner, label printer, ...) and still hook it up to a
central server.

I have a Fujitsu ScanSnap ix500 hooked up this way, which scans directly to
Dropbox. Put the scanner anywhere where it's convenient to access, put paper
in it, press scan button, by the time you walk back to your desk it's on the
dropbox. Order of magnitude improvement over other setups.

~~~
wyldfire
I bought one of these:
[http://www.amazon.com/gp/product/B005GM1Q1O/?&tag=bcgpfeed-2...](http://www.amazon.com/gp/product/B005GM1Q1O/?&tag=bcgpfeed-20)

It's dirt cheap ($10-20), easy to load linux on [1], and it can be a simple
file server, it can run minidlna, google cloud print [2], all kinds of stuff.

800MHz is not a screamer, but most simple I/O tasks like A/V streaming and
printing are a walk in the park.

[1] [http://archlinuxarm.org/platforms/armv5/pogoplug-
series-4](http://archlinuxarm.org/platforms/armv5/pogoplug-series-4)

[2] [http://geekvisit.com/hacking-pogoplug-mobile-adding-
airprint...](http://geekvisit.com/hacking-pogoplug-mobile-adding-airprint-
cloudprint-print-chromebook-cloudprint-printer/)

~~~
plorg
Similarly, I found a used pogoplug at a thrift shop with a $5 sticker on it. I
bought it knowing little about it but suspecting it could be hacked. At the
checkout they told me the sticker color indicated it was half off, so it cost
me less than $3.

With the shipping software the pogoplugs are usually useless secondhand, as
the web interface is hidden if you haven't registered the device with the
company (and it can't be de-authed without the original owner's credentials).
But the administrative interface is still available, if you know the path.
Dropbear is already installed, so you can just start it, log in, overwrite the
bootloader[0] and run one of several Linux distributions from a flash drive (I
use Debian[1]).

My unit[2] has a 700 MHz dual-ARMv6. It only has 256MB of built-in RAM, but
it's simple to allocate 1GB of the OS flash drive as swap.

Last year I picked up a number of old MIDI keyboards a local college was
throwing out. I figured they were just old and the college had replaced them
with something newer, but they worked fine for me under Linux. So I offered
one of them to my brother, and he couldn't get it to work under Windows. Of
course, it turns out the device is 15 years old and never had a 64-bit driver.
So I've been experimenting with using the Python midistream package to stream
MIDI over ethernet to a Windows host. Unfortunately, the package (since
subsumed by a project called scenic[3]) hasn't had a new release since 2012.
But it still works, and it makes for a pretty fun hack.

[0] [http://projects.doozan.com/uboot/](http://projects.doozan.com/uboot/)

[1]
[http://forum.doozan.com/read.php?2,16044](http://forum.doozan.com/read.php?2,16044)

[2]
[https://smile.amazon.com/dp/B004TDY924](https://smile.amazon.com/dp/B004TDY924)

------
giancarlostoro
I hate to say it but sourceforge feels like the new "Meg" these days, even
uBlock Origin tries to block going to sourceforge. Looks like an interesting
project though. I love the support of ReactOS, but I wonder if the project is
still active at all? The featured last bit of news is from 2011.

~~~
monochromatic
I dunno what Meg is, but I did chuckle when uBlock Origin blocked SF. Good for
them.

~~~
ps4fanboy
Family Guy joke.

~~~
giancarlostoro
Brian (I believe) gets called the new Meg in an episode, Meg tries to join in
on the joke only to get told to shut up.

~~~
elinchrome
Comedic genius!

------
tobik
This is also part of the mainline Linux kernel now (look under
drivers/usb/usbip/ and tools/usb/usbip/).

~~~
crazysim
The Linux stuff, but what about the Windows stuff?

Last I checked, there was someone from Eltima Marketing proposing the site be
updated with some revenue sharing deal to their proprietary and costly Windows
and etc. USB over IP solution.

Also, there were numerous users in their forums posting signed and patched
drivers for modern Windows since the ones available for download aren't
signed, so I saw.

------
halosghost
On the one hand, this looks incredibly cool. On the other hand, I actually
find it a bit worrying. With things like BadUSB[1] still out there, I would be
worried about anything that gives USB devices more wide reach or higher
privileges.

That this project aims to offer "full functionality" of the device, afaik,
means it is likely doing exactly the kind of thing that I find worrying. Can
anyone talk about this a little more in-depth?

[1]
[http://www.youtube.com/watch?v=nuruzFqMgIw](http://www.youtube.com/watch?v=nuruzFqMgIw)

------
mschuster91
Hmm I appreciate more work in this field, especially Windoze compatibility,
but... as said in Star Wars: Clone Wars... "Fifty tried, fifty died".

USBoIP is a minefield.

~~~
jpt4
Off-topic: Where in "Star Wars: Clone Wars" is that quote said? I seem to
remember Durge boasting something similar, but the only direct references DDG
et al. report are from fan-fiction [0], [1], and your comment itself.

(Fanfics not reviewed for Work Safety, caveat lector.)

[0] [https://www.fanfiction.net/s/11066605/8/Star-Wars-The-
Mandal...](https://www.fanfiction.net/s/11066605/8/Star-Wars-The-Mandalorian-
Effect)

[1] [https://www.fanfiction.net/s/9886787/6/Coruscant-School-
for-...](https://www.fanfiction.net/s/9886787/6/Coruscant-School-for-Tomorrow-
s-Leaders)

~~~
mschuster91
This quote comes from the kid living on Iego, where Anakin and Obi-Wan get
trapped in a separatist lasernet. IIRC it was the last of the Blue Shadow
Virus episodes.

~~~
jpt4
Thank you. For any other searchers, Jaybo [0] says this in Episode 0202 [1] of
"Star Wars: The Clone Wars" (not "Star Wars: Clone Wars" \- an earlier series,
of which I thought my encyclopedic knowledge had failed me, spurring my
question).

[0]
[http://starwars.wikia.com/wiki/Jaybo_Hood](http://starwars.wikia.com/wiki/Jaybo_Hood)
[1]
[http://starwars.wikia.com/wiki/Mystery_of_a_Thousand_Moons](http://starwars.wikia.com/wiki/Mystery_of_a_Thousand_Moons)

------
tbronchain
This gave me the idea to use my Raspberry pi as a remote hub for
Keyboard/Mouse.

Unfortunately, it seems it can't make it working, whether I use the official
apt-get binaries, or try to compile myself[1] (either with the version
available on sourceforge, or in the linux kernel src).

Anyone who succeed to make this running on Raspberry Pi (Raspbian)? It would
be a perfect application!

[1]:
[https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=1077...](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=107720)

------
DiabloD3
Can I have the reverse? IP over USB at USB 3.x speeds?

~~~
ausjke
yes on linux(usbnet) at least for a long while, not sure about usb3.x or
windows support though.

[https://en.wikipedia.org/wiki/Ethernet_over_USB](https://en.wikipedia.org/wiki/Ethernet_over_USB)

A quick google showed there are Gigabit NIC over USB3.0 on the market
already(for a while): [http://www.amazon.com/Network-Adapter-Anker-Ethernet-
Support...](http://www.amazon.com/Network-Adapter-Anker-Ethernet-
Supporting/dp/B00NOP70EC)

~~~
DiabloD3
I don't want a USB NIC, though, I want just USB to USB with as little shit in
between them as possible to be as cheap as possible. Maybe even allow straight
DMA to DMA across the machines due to it being USB 3.x.

~~~
wyldfire
Thunderbolt is much closer to the PCIe bridge/RDMA style interface you seek.
Not as ubiquitous or cheap as USB, though.

~~~
DiabloD3
Yeah, that's 100% of the problem.

Intel refuses to deploy Thunderbolt everywhere, even though I have two Z87/Z97
motherboards with Intel GPU-powered DisplayPort ports and Intel could have
trivially baked this into their chipset.

The only computer I have Thunderbolt on? My MBPr. The only computer I don't
need a shitton of cheap bandwidth on? My MBPr.

------
pudquick
I would love to see this develop into a widely adopted standard. Apple uses a
similar technology with their Airport Express devices for printer sharing,
always been annoyed it was so restrictive in being able to connect to it.

------
voltagex_
I wish I had a million bucks to donate to this project. It could be great, but
it's languishing unmaintained on SourceForge.

Side note, can someone please buy me a code-signing certificate?

------
NickHaflinger
blocked by uBlock Origin ..

------
pg_is_a_butt
seems the network latency would break the realtime expectations of high data
rate USB 3.0 hardware on the USB bus.

and using a still image from a webcam seems like the worst use case... there
are much better protocols for serving video streams.

~~~
kenz0r
One of the more compelling use-cases for USB over IP is connecting proprietary
licensing dongles to virtual machines.

~~~
orik
can't you use vt-d and have it passthrough?

~~~
kenz0r
That still ties it to a physical VM host doesn't it - what happens if you want
to host the VM in a cluster and have it migrate?

