Random Information ...others might find it interesting too.

Firmware update may fix your USB 3.0 hub

I've been trying to do my homework on USB 3.0 hubs and consensus seems to be that they all have quirks at some point irregardless of controller. Some certainly do work better than others but since most manufacturers believe that this information is not important you end up buying these blindly as there may be unannounced revisions that has a completely different controller.

After quite a bit of reading I ended up with the conclusion that VIA VL812 is the best known controller around but it's not without its flaws. Doing some more research I found that this is one of the few controllers some actually mention in a product spec sheet as a feature. As I just needed a few ports additionally I went with a 4-port hub by HooToo called HT-UH002 which was reasonably priced at that time and did work as a bus powered only hub in most cases. While it didn't work for my intended application (not caused by the USB hub itself as it turned out) I ended up using it in my desktop instead. Most of the time it worked fine but occasionally it would decide to stop working.

Bothered with the issues I decided to have a look again to find something that worked without any issues, it turned out that VL812 (revision B2) as of writing is still the best one around. I did find a company called Plugable that's very open about the hardware being used and they actually do try to improve their products. One of their earlier products utilized the same chipset as my HooToo and they also provide firmware updates. While you technically can brick your hub it worked fine in my case and after updating the firmware it's been working great.

The firmware can be found here and is used at your own risk.

USB storage on OpenWRT

While OpenWRT does have wiki page about this topic here it's a bit difficult to easily tell what do to in order to get it working. Here's very short tutorial on how to partition and enable auto mount of your storage. I've also added a swap partition as a few applications such as MiniDLNA and Transmission tends to hog quite a bit during some operations.

Requires: block-mount, fdisk (busybox's version) and filesystem and USB subsystem (modules).

In my case I used an empty (well, invalid partition table) USB HDD so there are no partitions available.

  • First when you plug it in you'll get a few kernel messages
[  152.791517] usb 1-1.1: new high-speed USB device number 3 using orion-ehci
[  152.935444] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[  152.951619] scsi0 : usb-storage 1-1.1:1.0
[  153.952121] scsi 0:0:0:0: Direct-Access     Disk     Name             ES2O PQ: 0 ANSI: 2 CCS
[  153.963425] sd 0:0:0:0: [sda] 625142448 512-byte logical blocks: (320 GB/298 GiB)
[  153.971914] sd 0:0:0:0: [sda] Write Protect is off
[  153.976733] sd 0:0:0:0: [sda] Mode Sense: 28 00 00 00
[  153.977407] sd 0:0:0:0: [sda] No Caching mode page found
[  153.982777] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  153.992033] sd 0:0:0:0: [sda] No Caching mode page found
[  153.997391] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  154.455456]  sda: unknown partition table
[  154.464693] sd 0:0:0:0: [sda] No Caching mode page found
[  154.470056] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  154.476224] sd 0:0:0:0: [sda] Attached SCSI disk
  • Start fdisk to add a partition table and partitions to the drive
    fdisk /dev/sda
  • Type o to a new partition table
  • Type n to add a new partition
  • Type p to select primary partition type
  • Type 1 to set it as first partition
  • Leave blank to use default cylinder value as we want to use the beginning of the drive
  • Type +512M to make it 512Mbyte in size (swap partition)
  • Type n to add another partition
  • Type p to select primary partition type
  • Type 2 to set it as second partition
  • Leave blank to use default cylinder value, this will set start point at the first free cylinder
  • Leave blank as we want to allocate the rest of the drive
  • Type t to alter partition type
  • Type 1 to select the first partition
  • Type 82 to change it to a Linux swap partition
  • Type w to write your change to disk and close fdisk
  • Create swap filesystem
    mkswap /dev/sda1
  • Enable swap
    swapon /dev/sda1
  • Create ext4 filesystem for storage
    mkfs.ext4 /dev/sda2
  • Open /etc/config/fstab to enable auto mounting of USB HDD
    nano /etc/config/fstab
  • Change values of anon_swap and anon_mount from 0 to 1
  • Save changes and exit

Done! You just need to reboot for changes to apply.