William's random thoughts

General thoughts related to my various projects

Mon, 12 Oct 2009

AgeStar CFB3AT FireWire Enclosure problems in Solaris

I recently needed to add a new external disk to my SunBlade 2000 I had a spare 500GB SATA drive laying around and I found a drive enclosure that supports both PATA and SATA drives and has USB 1.0, 2.0, Firewire 400 and E-SATA connectors on it. at http://www.cooldrives.com/esu sb20andfi.html

I had nothing but trouble with it under Solaris 10/SPARC but it ran perfectly fine on Linux, Windows and MacOS X. I would get the following errors when copying lots of data to this drive:

 scsi: WARNING: /pci@8,700000/firewire@5,2/unit@0050770e00071002/disk@0,0 (sd37): 
Oct 11 22:27:04 ayeka 	SCSI transport failed: reason 'reset': retrying command
Oct 11 22:27:05 ayeka 	transport rejected fatal error
Oct 11 22:27:05 ayeka ufs: WARNING: Error writing ufs log
Oct 11 22:27:05 ayeka ufs: WARNING: ufs log for /mnt changed state to Error
Oct 11 22:27:05 ayeka ufs: WARNING: Please umount(1M) /mnt and run fsck(1M)

I did a ton of fiddling around and finally I have success! I had to dig around the opensolaris.org code browser looking at the scsa1394 driver. There is an undocumented driver variable called scsa1394_wrka_fake_rmb

Don't ask me what it does exactly all I know is it is off by default and setting it to 1 instead of 0 seems to have fixed my issue. Or at least somewhat anyway. I had it cloning my LaCie BigDisk for most of last night and it did eventually die. I'm going to try re-enabling the symbios workaround and see if that fixes it completely. In the mean time I'm using rsync to do the copy and it seems to be reliable enough to replace my ailing LaCie drive. If things continue to be a big PITA I will just install a USB 2.0 card in my Sun and be done with it.

This tip should work with any enclosure that uses a Prolific Technology Inc. PL-3507 chipset but YMMV. I hope someone finds this info useful because I sure wish I had found it before having to get elbow deep into the guts of Solaris out of frustration.

To set this yourself try putting the following lines into /etc/system and rebooting. I'm not sure that scsa1394_wrka_symbios = 0 is needed.

*Try some FireWire system tuneables
set scsa1394:scsa1394_wrka_symbios = 0
set scsa1394:scsa1394_wrka_fake_rmb = 1

For more information on using firewire drives with SPARC machines take a look at This article

[/solaris/firewire] permanent link RSS feed