What's new

Hot-Plug USB 3.0 Support in Asuswrt-Merlin 384.19

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

garycnew

Senior Member
4PortUSB3.0Hub.jpgAMSVenusT5CMiniSATARAIDUSB3.0Array.jpgSDCardReaderUSB3.0.jpg

Asus RT-AC66U
Asuswrt-Merlin 384.19

1. USB 3.0 xHCI Hub
2. AMS Venus T5C Mini 2.5" SATA 5-Bay RAID 5 USB 3.0 Array (Time Capsule)
3. USB 3.0 SD Card Reader (Love these Little Guys)

All:

It appears the Asuswrt Firmware has made some advancements in the interoperability with USB 3.0 devices even since a few years ago. I am successfully able to get the above USB 3.0 xHCI Hub, Array (Time Capsule), and USB 3.0 SD Card Reader to all mount and work at full speed within the Asuswrt-Merlin Firmware.

The only issue is that any time I make a change to the USB 3.0 physical configuration, I am forced to reboot the Asuswrt-Merlin Router for them to be recognized and installed. Should I attempt to Hot-Plug a USB 3.0 device into the USB 3.0 Hub it has issues, thinks the USB 3.0 Hub is dying, and halts the USB Hub dropping the already installed devices.

# dmesg xhci_hcd 0000:00:0c.0: Timeout while waiting for a slot xhci_hcd 0000:00:0c.0: Timeout while waiting for a slot usb 1-1.2: device not accepting address 0, error -62 xhci_hcd 0000:00:0c.0: Timeout while waiting for a slot hub 1-1:1.0: couldn't allocate port 2 usb_device xhci_hcd 0000:00:0c.0: xHCI host not responding to stop endpoint command. xhci_hcd 0000:00:0c.0: Assuming host is dying, halting host. xhci_hcd 0000:00:0c.0: HC died; cleaning up hub 1-1:1.0: hub_port_status failed (err = -108) usb 1-1: USB disconnect, address 2 usb 1-1.1: USB disconnect, address 3

However, if I reboot the Asuswrt-Merlin Router, everything comes back up, including the newly plugged USB 3.0 device(s) and everything works without issue, again.

# lsusb Bus 001 Device 001: ID 1d6b:0003 Bus 002 Device 001: ID 1d6b:0002 Bus 003 Device 001: ID 1d6b:0001 Bus 001 Device 002: ID 05e3:0616 Bus 002 Device 002: ID 05e3:0610 Bus 002 Device 003: ID 05e3:0749 Bus 001 Device 003: ID 152d:0551 Bus 001 Device 004: ID 05e3:0749

# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 29.7G 0 disk └─sda1 8:1 1 29.7G 0 part /tmp/mnt/SanDiskSDHC sdb 8:16 0 1.8T 0 disk ├─sdb1 8:17 0 200M 0 part /tmp/mnt/EFI └─sdb2 8:18 0 1.8T 0 part /tmp/mnt/Time_Capsule sdc 8:32 1 29.7G 0 disk └─sdc1 8:33 1 29.7G 0 part /tmp/mnt/sdc1 mtdblock0 31:0 0 512K 0 disk mtdblock1 31:1 0 1.5M 0 disk mtdblock2 31:2 0 62M 0 disk mtdblock3 31:3 0 60.4M 1 disk / mtdblock4 31:4 0 62.8M 0 disk /jffs mtdblock5 31:5 0 1.3M 0 disk

# nvram show | grep -i _speed usb_path1.2_speed=5000 usb_path1.1_speed=5000 usb_path2_speed=480

# mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) devtmpfs on /dev type devtmpfs (rw,relatime,size=127732k,nr_inodes=31933,mode=755) proc on /proc type proc (rw,relatime) tmpfs on /tmp type tmpfs (rw,relatime) sysfs on /sys type sysfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) /dev/mtdblock4 on /jffs type jffs2 (rw,noatime) usbfs on /proc/bus/usb type usbfs (rw,relatime) /dev/sda1 on /tmp/mnt/SanDiskSDHC type ext4 (rw,nodev,relatime,barrier=1,data=ordered) /dev/sdb2 on /tmp/mnt/Time_Capsule type thfsplus (rw,nodev,relatime,umask=0000,uid=0,gid=0,nls=utf8,nobarrier,readahead=1M) /dev/sdc1 on /tmp/mnt/sdc1 type tfat (rw,nodev,relatime,uid=0,gid=0,umask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=winnt,min_prealloc_size=64k,max_prealloc_size=64M,readahead=1M,nocache,fail_safe,falloc_skip_zeroing,hidden=show,errors=continue) /dev/sdb1 on /tmp/mnt/EFI type tfat (rw,nodev,relatime,uid=0,gid=0,umask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=winnt,min_prealloc_size=64k,max_prealloc_size=64M,readahead=1M,nocache,fail_safe,falloc_skip_zeroing,hidden=show,errors=continue)

# df -h Filesystem Size Used Available Use% Mounted on /dev/root 29.1M 29.1M 0 100% / devtmpfs 124.7M 0 124.7M 0% /dev tmpfs 124.8M 1.9M 123.0M 2% /tmp /dev/mtdblock4 62.8M 4.4M 58.4M 7% /jffs /dev/sda1 29.3G 2.2G 25.6G 8% /tmp/mnt/SanDiskSDHC /dev/sdb2 1.8T 212.5G 1.6T 11% /tmp/mnt/Time_Capsule /dev/sdc1 29.7G 384.0K 29.7G 0% /tmp/mnt/sdc1 /dev/sdb1 196.9M 4.0K 196.9M 0% /tmp/mnt/EFI

My question is if there are any known issue with Hot-Plug USB 3.0 Support? I'm grateful that Asuswrt includes support for these USB 3.0 devices. I'm just wondering if there is a solution for Hot-Plugging devices into the USB 3.0 Hub without having to reboot?

EDIT: I'm sure there's a more elegant solution, but I've found that by removing/re-installing the xhci_hcd driver--I'm able to get the system to recognize the new device without having to preform a full reboot. FYI... "The ohci_hcd & uhci_hcd drivers are for USB1.1 ports, the ehci_hcd driver is for USB2 ports, and the xhci_hcd driver is for USB3 ports."

# rmmod xhci_hcd # modprobe xhci_hcd

Hope that helps.

Respectfully,


Gary

P.S. I've attached the output from dmesg for reference.
 

Attachments

  • Asuswrt-Merlin-384.19-RTAC66U-dmesg-20201024.txt
    15.3 KB · Views: 217
Last edited:
Yesterday your router was a Linksys (aka ASUS RT-AC66U ) , are you still attempting to use Merlin's work on a non ASUS router?
 
Hi AndreiV,

I own multiple routers. Thank you for asking.

Regards,


Gary

Как сказал старик ICE-T: «Не ненавидь игрока, ненавидь игру».
 
Edited my original post with an inelegant remedy.
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top