USB Slave mode - FreeBSD emulate a CDROM device?

Hans Petter Selasky hselasky at c2i.net
Sat Jan 12 07:26:09 PST 2008


On Saturday 12 January 2008, Bernd Walter wrote:
> On Tue, Jan 08, 2008 at 11:26:26PM +0100, Øystein Andreassen wrote:
> > Hello,
> >
> > I would like to make my FreeBSD pc a USB CD/DVD-ROM for a server.
> > I have a lot of bootable ISO images and I dont like to waste time and
> > CD´s
> > on burning this images each time I need to use them (I usally damage
> > or loose
> > them between each time or they have been updated).  So instead I would
> > like
> > to know if it is possible to make the FreeBSD USB stack behave as a
> > USB slave
> > and present an ISO image to another machine via a usb host-to-host
> > cable.
> > (I need to boot from the CD´s).
>
> A PC has not the required hardware to do so.
> There are USB devices and USB hosts.
> You can only connect a single USB host to many devices, but not two
> hosts together.
> There are interlink cables on the market, but those present an USB
> device to both sides and are not generic to do anything else than the
> profile they are build for.
>
> Hans Petter however did implement USB device software support to allow
> FreeBSD beeing used as a device.
> It at least supports the AT91RM9200 internal USB device controller, but
> I don't know if it supports anything else.

Hi,

The current implementation of USB device support only implements CDC ethernet. 
Adding support for a mass storage device is not a big deal. Though you need 
to define an interface for how you will provide your disk or file to the 
interface. Probably handling this from userland will solve your problem.

Does your box have PCI slots? There are some PCI boards available for a cheap 
price that supports USB device functionality.

I plan to add support for more chips during the spring, but I haven't decided 
which yet.

> And I think he just did implement a CDC ethernet device and not umass,
> so software needs to be written anyway.
> I've CC'ed him, since he can answer about other hardware that he
> possibly supports.

That is correct.

>
> I would have liked to offer the AT91RM9200 based board we produce
> ourself, but it wasn't designed for this purpose so our current board
> has no device ports.
> But we are planning an extended version, so this might change in the
> near future.

I have a KB92002B board which I bought 
from "http://www.kwikbyte.com/KB9202.html". It is full speed USB only.

>
> There a USB device controllers that can be added to PCs, but most of
> them are more designed for teaching purpose.
> For example I'd seen PDIUSBD11 chips hooked up to printer ports, but
> this chip is not being manufactured anymore and this type of interfacing
> is very slow.
>
> The situation is much better if you use SCSI.
> You can interconnect two SCSI controller together - given that the
> addresses on both controller are not configured to be the same.
> FreeBSD has code for emulation disk drives with target capable SCSI
> controllers, which at least is supported by the ahc(4) driver.
> The controller on the other box can just be of any kind.

--HPS


More information about the freebsd-usb mailing list