Thursday, November 11, 2004

External 3.5 Hard Drive Enclosure

I previously wrote about my experiences using an external 2.5 HDD enclosure. Today I received my AMS Electronics Venus DS3 external 3.5 HDD enclosure. I liked this model because it supports Firewire and USB 2.0, has an on-off switch, and provides an internal fan to cool hotter drives. I found mounting the drive inside the enclosure very easy and the product itself seems sturdy. The on-off switch should have been a rocker switch and not a somewhat weaker toggle, but it works ok.

On my laptop, when attaching the DS3 to the Firewire port on my Adaptec Duo Connect Firewire/USB adapter, dmesg reports the following:

fwohci0: BUS reset
fwohci0: Async DMA Receive error err = 1f
fwohci0: node_id=0xc000ffc1, gen=3, CYCLEMASTER mode
firewire0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
firewire0: bus manager 1 (me)
firewire0: New S400 device ID:0030e0f4e0204651
da0 at sbp0 bus 0 target 0 lun 0
da0: Fixed Simplified Direct Access SCSI-4 device
da0: 50.000MB/s transfers
da0: 4110MB (8418816 512 byte sectors: 255H 63S/T 524C)
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:ff,f,0,e0 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:43,5f,5f,54 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:ff,f,0,b0 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:ff,f,0,40 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:ff,f,0,70 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:ff,1f,0,70 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code
(da0:sbp0:0:0:0): SYNCHRONIZE CACHE. CDB: 35 0 0 0 0 0 0 0 0 0
(da0:sbp0:0:0:0): ABORTED COMMAND csi:ff,f,0,40 asc:20,0
(da0:sbp0:0:0:0): Invalid command operation code

I was successfully able to mount the hard drive and then copy large (~60 MB) files to and from the drive, verifying their integrity using md5. However, the kernel reported these errors:

sbp0:0:0 No ocb(cca634) on the queue
sbp0:0:0 No ocb(cca9dc) on the queue
sbp0:0:0 No ocb(cca01c) on the queue
sbp0:0:0 No ocb(cca154) on the queue
sbp0:0:0 No ocb(cca154) on the queue
sbp0:0:0 No ocb(cca154) on the queue

I tried disabling Tagged Queueing but the errors seemed to continue.

I found that attaching the device to the USB 1.1 port on the laptop itself worked, albeit with much slower transfer speeds. Here's how the kernel saw the device:

da0 at umass-sim0 bus 0 target 0 lun 0
da0: Fixed Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 4110MB (8418816 512 byte sectors: 255H 63S/T 524C)

I had better results attaching the external HDD enclosure via Firewire to my Dell 2300 server via Adaptec Duo Connect PCI card. I saw the same error messages beginning with SYNCHRONIZE CACHE but none of the 'queue' errors.

Now that FreeBSD has started the freebsd-usb mailing list, I believe USB support will improve. I've never had much luck with USB 2 support using the ehci driver, which isn't in the default GENERIC kernel and must be added in via recompiling the kernel.

1 comment:

Serg said...

Such devices are very poorly distributed