Problem with Removable Disk Device on FreeBSD

Terence Telkamp Terence_Telkamp at DELL.com
Sat May 12 00:11:05 UTC 2012


Hello,

I am having trouble using an RD1000 device with FreeBSD 8.1 and 9.0.  The RD1000 that I'm using is a device that has a removable SATA disk cartridge and connects to a host system through USB.  There are other similar devices out there such as the RDX:

http://www.imation.com/en-US/Scalable-Storage/Scalable-Storage-Products/RDX-Removable-Hard-Disk-Storage/RDX-Removable-HDD-Storage-System-USB-30/

My problem is that FreeBSD does not recognize when the cartridge is inserted or ejected from the device.  If I attach the RD1000 to the host with a cartridge already inserted a dev node entry shows up (e.g. da0) as well as a slice entry (e.g. da0s1), but the slice entry does not go away after I eject the cartridge.  Conversely, if I attach the RD1000 that doesn't have a cartridge inserted, a dev node entry for the device shows up (e.g. da0), but no slice entery shows up.  Inserting a cartridge after the RD1000 has already been attached still does not cause the slice entry that I expect to show up.  No dmesg shows up to indicate that anything has changed when the cartridge is inserted or ejected after the device has alread been attached.  Doing a camcontrol rescan had no effect on FreeBSD recogizing if there is  a cartridge inserted in the RD1000 or not.

Searching the internet, I found that people have run into similar issue using zip drives.  They were able to work around the issue by redirecting a true command to the device (e.g. true > da0).  After doing that FreeBSD will recognize an inserted cartridge in the RD1000 and create a dev slice entry for it.  However, that doesn't help me recognize eject events.  Also, I would like to understand the root cause and hopefully find a more direct solution instead of just a workaround.

I've experimented with hosts running other other operating systems.  Both Linux and Windows hosts respond to the insertion and removal of the cartridge.

I tried the version of the RD1000 that connects to the host through a SATA port and saw similar results.  If I booted with a cartridge already inserted in the RD1000 I would get an afd dev entry, but if I booted without a cartridge inserted the afd entry would not be present.  Inserting or ejecting the cartridge after boot would have no effect.    Doing an atacontrol detach would cause the afd dev entry to disappear whether the cartridge was inserted or not.  Doing a subsequent atacontrol attach would cause the afd entry to reappear only if a cartridge was inserted.  Since the behavior is similar whether the RD1000 is attached through USB or SATA, I am wondering if there is a problem in the CAM or SCSI layers of FreeBSD.

Does anybody have any ideas on how I can narrow this issue down further?


Terence Telkamp
Storage Development Associate Engineer II
Dell | Compellent




More information about the freebsd-scsi mailing list