USB 3.0 Hub only recognized as USB 2.0 High-Speed Hub

I have a USB 3.0 Hub that I’ve had for several years that works fine under Windows and I could have sworn worked fine previously under various Linux kernels with this same laptop…though I can’t remember that last one it would have worked under. It is the Syba 7 port SY-HUB20078 - has 2 USB 3.0 ports and 5 USB 2.0 ports on it. My laptop is a Lenovo Yoga 730-15ikb.

I’ve just installed Manjaro, with everything up-to-date, and for whatever reason when I plug this hub in only USB 2.0 speeds are detected.

  • USB3 devices do not work in the USB3 ports, dmesg doesn’t even display anything happening.
  • If I plug a USB2 device into one of the USB3 ports on the hub it is properly detected as a USB2 device
  • When I plug in a USB3 device into a USB2 port on the hub the device works fine, albeit at USB2 speeds

I’ve attempted various solutions such as use_both_schemes=y and old_scheme_first=y modprobe options suggested in a similar post, but no change. I’ve also seen other various kernel options such as pci=nomsi and intel_iommu=on iommu=pt suggested but those don’t seem to change behavior as well.

If I plug a USB3 device directly into the USB3 port on my laptop it is properly identified as a SuperSpeed (USB3) device. Listing of lsusb -t -v and dmesg with a Thumbdrive plugged into the port:

[vader ~]# lsusb -t -v
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
        ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
    |__ Port 2: Dev 4, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
        ID 13fe:5500 Kingston Technology Company Inc. Flash drive
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 5: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 13d3:56b2 IMC Networks 
    |__ Port 5: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 13d3:56b2 IMC Networks 
    |__ Port 6: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 06cb:0081 Synaptics, Inc. 
    |__ Port 7: Dev 7, If 0, Class=Wireless, Driver=btusb, 12M
        ID 0bda:b023 Realtek Semiconductor Corp. RTL8822BE Bluetooth 4.2 Adapter
    |__ Port 7: Dev 7, If 1, Class=Wireless, Driver=btusb, 12M
        ID 0bda:b023 Realtek Semiconductor Corp. RTL8822BE Bluetooth 4.2 Adapter
[  881.392043] usb 2-2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[  881.421444] usb 2-2: New USB device found, idVendor=13fe, idProduct=5500, bcdDevice= 1.00
[  881.421476] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  881.421481] usb 2-2: Product: Silicon-Power32G
[  881.421484] usb 2-2: Manufacturer: UFD 3.0
[  881.421487] usb 2-2: SerialNumber: P1401199070B448DB6271C52
[  882.030925] usb-storage 2-2:1.0: USB Mass Storage device detected
[  882.031062] scsi host0: usb-storage 2-2:1.0
[  882.031129] usbcore: registered new interface driver usb-storage
[  882.033782] usbcore: registered new interface driver uas
[  883.098834] scsi 0:0:0:0: Direct-Access     UFD 3.0  Silicon-Power32G PMAP PQ: 0 ANSI: 6

Listing of lsusb -t -v and dmesg when USB3 hub plugged in:

[vader ~]# lsusb -t -v
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
    |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=ax88179_178a, 5000M
        ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 2: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M
        ID 2109:3431 VIA Labs, Inc. Hub
        |__ Port 4: Dev 14, If 0, Class=Hub, Driver=hub/4p, 480M
            ID 0409:005a NEC Corp. HighSpeed Hub
    |__ Port 5: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 13d3:56b2 IMC Networks 
    |__ Port 5: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 13d3:56b2 IMC Networks 
    |__ Port 6: Dev 5, If 0, Class=Vendor Specific Class, Driver=, 12M
        ID 06cb:0081 Synaptics, Inc. 
    |__ Port 7: Dev 7, If 0, Class=Wireless, Driver=btusb, 12M
        ID 0bda:b023 Realtek Semiconductor Corp. RTL8822BE Bluetooth 4.2 Adapter
    |__ Port 7: Dev 7, If 1, Class=Wireless, Driver=btusb, 12M
        ID 0bda:b023 Realtek Semiconductor Corp. RTL8822BE Bluetooth 4.2 Adapter

[ 1042.505231] usb 1-2: new high-speed USB device number 24 using xhci_hcd
[ 1042.646987] usb 1-2: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 2.88
[ 1042.646995] usb 1-2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1042.646999] usb 1-2: Product: USB2.0 Hub
[ 1042.649894] hub 1-2:1.0: USB hub found
[ 1042.650058] hub 1-2:1.0: 4 ports detected
[ 1042.938621] usb 1-2.4: new high-speed USB device number 25 using xhci_hcd
[ 1043.029102] usb 1-2.4: New USB device found, idVendor=0409, idProduct=005a, bcdDevice= 1.00
[ 1043.029109] usb 1-2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1043.030332] hub 1-2.4:1.0: USB hub found
[ 1043.030434] hub 1-2.4:1.0: 4 ports detected

I’m out of ideas at this point and any help would be appreciated!

My problem was similar. Here is how I solved:

In GRUB add to cmdline:
usbcore.autosuspend=-1

then sudo update-grub and reboot

to check:
cat /sys/module/usbcore/parameters/autosuspend
should return -1
default was 2

@jrichard326 Thanks for the reply! Unfortunately that doesn’t seem to have changed what I’m seeing…dmesg is still not reporting any changes when unplugging/plugging in a USB3 device into one of the hub’s USB3 ports.

Validated that autosuspend is also set via cat /sys/module/usbcore/parameters/autosuspend:

[vader ~]# cat /sys/module/usbcore/parameters/autosuspend 
-1

An update:

So I’m not sure exactly what happened, but in my messing around trying to figure this out I unplugged everything, including the hub from power and the USB cable…just to sort of look it over closely (it’s usually hidden, mounted under my desk). When I plugged JUST the USB cable (no power) and ran dmesg I noticed this time it properly detected as a USB 3.0 Hub. I then re-plugged everything back in (including power) and everything is being properly discovered - USB3 devices on the USB3 ports are working, all USB2 devices, etc.

To see if things “stick” I performed a reboot and everything is still working as it should. No clue what in the world fixed this, but it’s working. I’ll be scratching my head on this one for a while and will report back if I ever figure out what actually resolved this issue.

It could be that your firmware detects the devices at an early stage and the USB 3.0 features are activated later in the boot process. So it’s detected as USB 2.0 first. If a device is already connected it won’t change to USB 3.0 speed, later-on. For this reason I always boot first and then connect the devices to make sure USB 3.0 speed is supported.