The Pains of Storage

Oy vey.

USB has always been “well, it kinda works”.  So I shouldn’t have been surprised at these pains.

And I wasn’t.

I decided to store my DVDs on disk for rapid access.  I bought USB3 devices.  This is my story.

My first device was a single 6TB Western Digital Green disk in an Icy Box USB3 enclosure.

IMG_0336

lsusb says:

Bus 004 Device 007: ID 05e3:0731 Genesys Logic, Inc. 
Device Descriptor:
[...]
 idVendor 0x05e3 Genesys Logic, Inc.
 idProduct 0x0731 
 bcdDevice 90.84
 iManufacturer 3 Raid Sonic
 iProduct 4 USB Storage Device
 iSerial 5 0000000000000000

The WD Green disk is quite nice.  It’s very quiet.

The only problem is that whenever it goes to sleep, and it does that a lot, it goes missing from the Linux USB subsystem when you try to write to it.

Anyway, it was too small, so I bought a two-disk enclosure and made a RAID0 stripe over it.  Another Icy Box USB3 device, as it happens.

IMG_0337

I put two 6TB WD Red disks into it.  This is what lsusb says:

Bus 004 Device 006: ID 067b:2773 Prolific Technology, Inc. 
[...]
 iManufacturer 1 ICY BOX 
 iProduct 2 ICY BOX IB-3620
 iSerial 3 PROLIFICMP0000002F1
[...]
 bInterfaceClass 8 Mass Storage
 bInterfaceSubClass 6 SCSI
 bInterfaceProtocol 80 Bulk-Only

It’s fast and nice, but the problem is that once in a while, whenever I try to read and write a lot to it, it freaks out.

Oct 15 00:29:53 stories kernel: [86720.343239] usb 4-1: reset SuperSpeed USB device number 5 using xhci_hcd
Oct 15 00:29:53 stories kernel: [86720.356884] usb 4-1: device firmware changed
Oct 15 00:29:53 stories kernel: [86720.357083] usb 4-1: USB disconnect, device number 5
Oct 15 00:29:53 stories kernel: [86720.357484] scsi 9:0:0:0: rejecting I/O to offline device

And the device goes to read-only, and you have to switch it off and then on again.

So either Western Digital makes lousy disks, or Icy Box makes awful USB3 enclosures, or the USB3 chipset sucks, or USB3 sucks, or Linux sucks.

Or all of the above.

The USB3 chip is

02:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03)

So naturally I bought an enclosure from a different manufacturer: SilverStone.

lsusb says:

Bus 004 Device 011: ID 152d:0539 JMicron Technology Corp. / JMicron USA Technolo
 gy Corp.
 [...]
bInterfaceClass 8 Mass Storage
 bInterfaceSubClass 6 SCSI
 bInterfaceProtocol 80 Bulk-Only

And what do you know!  It works!  It’s kinda fast-ish, too.  So I bought a tiny 7W computer with USB3 ports to put into a closet, and now I can watch movies without moving from the couch.

In conclusion: Icy Box sucks.  So much.

12 thoughts on “The Pains of Storage”

  1. IB-351StU3S-B has a Prolific PL2773 and ships (10/2014) with outdated firmware 20120120. This has been brought to the attention of their support in their forum, but they decided not to do anything about it. With original firmware Windows logs a communication error from time to time and coming out of suspend-to-disk with usb-connected ICY-BOX: Windows crashes.

    But you can do something about it: Be no “man” about it but a “vendor” and flash firmware 20120316 from here:

    http://prolificusa.com/portfolio/pl-2773-usb3-0-esataii-to-sataii-bridge-controller/

    You need MP-Tools (install it on Windows, i tried Win7 32 Bit) and the Firmware file.

    Connect ICY-BOX (with HDD(!) and power-brick) via USB2 or USB3 (for troubleseekers) but not via eSATA. Start “multiport configure EEP”, click EEP ROM Edit. (Do not hesitate, will not write without further confirmation).
    Click “Read Chip” to read from ICY-BOX EEPROM. “Read chip success” is displayed. Otherwise repeat “Read Chip”. Stop here, if no data is successfully read from ICY-BOX.

    Click “More”. “Device Power Control” and “HDD-Standby”, “Support-SATA-Hotplug” is enabled, “Decided by P3_0” Automatic suspend timer is set to “60”. This means, after 5 minutes of no command from PC to enclosure, the PL2773 will automatically switch the drive and the LED-power-light off. If it should not, you can set it to “Timeout disabled”.
    Click “OK”. Changing any setting here did nothing to cure my eSATA-problems (tested with WD drives set with jumper from to SATA2 from SATA3, see below).

    Under “External Firmware ..” check filename and select “…” and navigate to unpacked firmware-file and select it. Check if Vendor id “067B” and product ID “2773” is already set (RAIDSONIC used this default values). Only if preset click “Write configure & FW”. Flashing starts. After “successfull” is displayed (needs 5 minutes or so), unplug device and – important – disconnect power-brick. As firmware is only loaded on power-up, new firmware can only be seen after power-up. Click “Read Chip”, new firmware is shown. Enjoy.

    After that no errors are seen in Windows-log and coming out of suspend-to-disk connected via USB2 or USB3 just works. For me it worked then (Win8/Win7 with microsoft-stock drivers: Win7 USB2, WIN8 USB3-Intel-Chipset), if not for you, update drivers and firmware of USB3-interface (station-drivers). WIN8 does NOT need any USB3 drivers, you should not install them, but look for USB3-firmware-updates in BIOS if onboard (i’m not sure if it is a good idea to update onboard usb3 chips with generic firmware, so try to update BIOS) or “station drivers” if USB3-card.

    If you try to come out of suspend connected to eSATA or SATA-bracket (eSATA does have a slighlty higher voltage level but in practice connecting eSATA-devices to onboard SATA-header via SHORT cable and slot-bracket just works), Windows will still CRASHes, even after firmware-update. And after PC-switch on, but not later, BIOS will still see communication error on the SATA-interface and will hang until BIOS-timeout for “not reacting-to-reset-command-drives” is reached. This can be seen in Linux “DMESG” too after powering off and on the enclosure but only if connected via eSATA.

    Summary: USB2/3 just works flawlessly after firmware update, but not before.
    eSATA (or SATA) will work equally bad before and after firmware-update: After switching PC on and waiting for BIOS-timeout (seems it does not react to BIOS-device resets) it works OK, but will crash windows after suspend to disk.

    So good luck, have done this two times, worked!

      1. Well, sort of. The MP-flashing-tool does work only under windows only, to my knowledge. But after you have once flashed the firmware to the prolific-PL2773-chip in the enclosure (IB-351StU3S-B here, but should not matter which enclosure), you can enjoy, that some USB-problems -if not all- are gone when using the enclosure, even when using a brand-new linux distribution. BSD or BSD-based Mac-OS should be the same story.

        Using live-linux clonezilla (clonezilla-live-20150316-utopic-amd64) to backup from some “gigantic” 3 TB internal harddisc-(Intel software RAID1)-source to IB-351StU3S-B at some point clonezilla will calculate some “map” for 4 minutes and 30 seconds without accessing the external USB3-backup drive. After exactly 4 minutes you can hear, that the external WD-Green harddisk is going to sleep and the spindle motor is switched off. I think it is the internal WD-Green harddisk-timer that shuts down the spindle-motor down and it is not the PL2773 that orders the shutdown, but i am too lazy to investigate this.
        At the moment clonezilla tries to write data to the external enclosure, you can hear the disc spinup and now comes the difference: With stock (20120120) prolific-firmware clonezilla will crash with stack trace, altough the disc spinned up before. With latest firmware offered by prolific clonezilla will not crash after spinup and happlily finish the backup.

        So windows clearly is the best OS there is and ever will be, but only under the restriction that you want to flash the PL2773, otherwise this is just a bunch of incredibily buggy, unusable, useless, complicated software topped by an absurd license, to give fair credit.

        To my knowlege there is a time restricted test-windows to download from MS that sould suffice to flash the chip (remove your the harddisk with your OS-of choice before) any old empty harddisk above 20GB should suffice. Basic install is very easy in contrast to sane use.

        This work might sound a little “over the top” and buying “better” enclosure a more easy task, but mind you, german c’t magazin 8/2015 tested five USB3-only enclosures official praised for 8 TByte harddisks. Result: IB-318StU3 44°C, IB-351StU3-B 44°C, DB-AluAir U3-6G 48°C, Sandberg USB3.0 Hard Disk Box 50°C, IB-366StU3+B 51°C after 30 mins hd-seek. c’t cite “temperatures above 45°C should not be applied to harddisc longer than necessarily, even if within spec, hd lifetime will suffer”.
        (Fastest were Fantec U3-6G, ASM1153E, equal to Sandberg, JMicron 567, 457/444 MiB/s seq. read, others all had ASM1053 without UASP, most 262 MiB/s, SSD 850 Pro. Sandberg failed at “sparkling new” true 4k sectors (4Kn), but not the usual 4k emulated as 512 bytes, IB-318StU3 slowed -only- seagate ST6000VN0001 to 40 MBytes/s ). IB-318StU3 and IB-351StU3-B caused PC “start-up hangs” when powered on with MSI-mainboard in test-PC. Last remark: IB-351StU3-B has different chip than IB-351StU3S-B with additional eSATA but enclosure is not only thermally the same. Which one to spend money on?
        They are all broken in some way or the other and cite “all too loud and take too much energy on idle (hd is spinning)”. 1,96W Sandberg to 4,39W IB-366StU3+B, noise 0,7 sone Sandberg to 1,1 sone St…351/366. If HD is not spinning EU-regulations (<= 300 mW allowed) did a good thing: 0,08W IB-366 to 0,35W (this last is U3-6G enclosure, the only slightly above the limit)

  2. I want to say thank you to Joe. I have an icybox IB-120StU3-Wh with Prolific PL2773. I use it in Linux and after I upgraded my machine from USB2 to USB3 i found the icybox would reproducibly crash and reset after after about 5 minutes of heavy IO. I looked for firmware updates from the manufacturer but there aren’t any (that I could find).

    I was just about to toss this thing in the bin, when I found this post. As I had nothing to loose I flashed it using Joe’s instructions (I had access to a windows machine) and now it seems to work great. It is now 3 weeks later and I have done a fair amout of heavy data transfer. The thing has been rock solid.

    I just wanted to post this feedback in the hope someone finds it useful. Thanks again Joe.

  3. I have the same crap chip in one of my usb 3 enclosures.
    My experience:
    * ASP ASM1053 works flawlessly with NEC-Chips. NO messages in dmesg.
    * Prolific 2773 -> SUCKS in Win/Linux, same expierice as above from other users.
    * JMicron JMS551 -> SUCKS in Win/Linux. Win less than Linux after firmware upgrade.
    * The older Renesas 200 is more tolerant than the newer 701/702.
    * The Via80x can work with modified usb 3.0 powersettíngs in Linux.

    The whole bunch of tricks, PCIe Settings, nomci, powersettings for usb 3.0 can help on some chip-hostadapter combinations under some OS, in a specific firmwarestatus… but most do not work, because you have not the one special combination, you have one of the 100 crappy ones.

    Conclusion: USB 3 sucks, in any OS. The greatest bananaware that end users are confronted with.

    I connect my external discs direct to internal SATA Controllers (onboard and additional PCIe-SATA, even old PCI-SATA-Cards work, no eSATA, it sucks too), do a low level ‘rescan’/’disconnect’ (echo “- – -“|/sys/bus/scsi/host…. or echo x|s/sys/bus/scsi/devices//delete) so they are ‘plug and play’ like usb 3. I power the drives with a power adaptor from several older usb2-to-sata-adaptors. This works without errors! It looks ugly but it saves time.

Leave a Reply to slCancel reply