USB Slave mode - FreeBSD emulate a CDROM device?

Øystein Andreassen zyxmaw at gmail.com
Sun Jan 13 05:17:28 PST 2008


On Jan 12, 2008, at 4:26 PM, Hans Petter Selasky wrote:

> 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

Thank you both very much!
I use a laptop, so both a PCI card with deviceports and scsi are not  
possible.
I might have better luck with an iPod or something simmular?
My plan was to do a proof of concept on a PC and then move to a  
smaller device anyways. :)
Or maybe I should just drop it. But it would be great to get rid of my  
CD case.

Again, Thank you for clarifying.

Regards,
Øystein Andreassen 


More information about the freebsd-usb mailing list