bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: USB Mass Storage with rump


From: Robert Millan
Subject: Re: USB Mass Storage with rump
Date: Sat, 19 Sep 2015 10:52:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

El 19/09/15 a les 00:52, Olaf Buddenhagen ha escrit:
On Wed, Sep 16, 2015 at 10:57:20PM +0200, Robert Millan wrote:
El 16/09/15 a les 05:47, Bruno FĂ©lix Rezende Ribeiro ha escrit:

I'm interested in USB support.  I'd like to aim mass storage devices at
first.

For USB using Rump, I think most of the pieces exist already. Rump implements
the ugenhc NetBSD API, which is already supported by libusb, so if you want
to support all libusb-aware applications, I think you'd just need something
like:

(cups|sane|whatever) ---> libusb ----> /dev/rumpusb (in Hurd VFS) ----> your 
translator ----> librump ----> /dev/ugenhc

This looks nice for generic USB. I doubt we have a mass storage driver
using libusb though? Rather, I guess it's something rump implements
internally, and would be exposed through a different entry point?

Yes and no.

If you load *HCI support and USB mass storage into Rump, you can have
/dev/XXX pop up in the Rump namespace and that will be your disk node.
Then you can write a translator to link the host system into that disk
(or whatever way this is handled, does ext2fs open device nodes directly?).

Note, however, unless the same Rump instance also exports raw USB access as
described above, it will be the only possible user of USB in the system!

Since you most likely want to provide multiplexing, authorisation, etc, to
any application who wants to access USB, I wouldn't recommend to lump
USB mass storage and *HCI in the same Rump instance.

Instead, you could run a Rump instance with USB mass storage only which
uses libusb as backend rather than its own *HCI driver (but that requires
some coding work as it's currently not implemented ;-))

--
Robert Millan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]