Hot-Plug USB 3.0 Support in Asuswrt-Merlin 384.19

  • ATTENTION! As of November 1, 2020, you are not able to reply to threads 6 months after the thread is opened if there are more than 500 posts in the thread.
    Threads will not be locked, so posts may still be edited by their authors.
    Just start a new thread on the topic to post if you get an error message when trying to reply to a thread.

garycnew

Occasional Visitor
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

Last edited:

AndreiV

Very Senior Member
Yesterday your router was a Linksys (aka ASUS RT-AC66U ) , are you still attempting to use Merlin's work on a non ASUS router?
 

garycnew

Occasional Visitor
Hi AndreiV,

I own multiple routers. Thank you for asking.

Regards,


Gary

Как сказал старик ICE-T: «Не ненавидь игрока, ненавидь игру».
 

Similar threads

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