Score:0

Set USB3 Ports to USB2

gr flag

There are 4 USB3 Gen1 ports on my motherboard's rear IO panel that needs to be running in USB2 mode in order to use more than 32 USB devices on this machine.

The BIOS settings does not appear to work (setting XHCI Gen1 to 0) because lsusb -t in Ubuntu shows the ports to be 5000M.

Is there a way in Ubuntu to set these USB3 ports to work as USB2?

Output of lsusb:

USB3 Gen1 ports still appear as USB3 Gen1 (5000M), while USB2 ports are identified as USB2 (480M) as expected.

$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 1: Dev 84, If 0, Class=Hub, Driver=hub/4p, 5000M
            |__ Port 4: Dev 91, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 3: Dev 101, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 1: Dev 96, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 4: Dev 102, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 99, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
            |__ Port 2: Dev 86, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 4: Dev 97, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 92, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 3: Dev 94, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 1: Dev 90, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
            |__ Port 3: Dev 88, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 2: Dev 95, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 3: Dev 98, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 1: Dev 93, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 4: Dev 100, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
            |__ Port 1: Dev 85, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 1: Dev 87, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 89, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
        |__ Port 2: Dev 4, If 0, Class=Hub, Driver=hub/4p, 5000M
            |__ Port 1: Dev 6, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 3: Dev 21, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 1: Dev 10, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 4: Dev 28, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 15, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
            |__ Port 2: Dev 9, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 3: Dev 31, If 0, Class=Hub, Driver=hub/3p, 5000M
                    |__ Port 1: Dev 39, If 0, Class=Mass Storage, Driver=uas, 5000M
                |__ Port 1: Dev 16, If 0, Class=Hub, Driver=hub/3p, 5000M
                    |__ Port 1: Dev 24, If 0, Class=Mass Storage, Driver=uas, 5000M
                |__ Port 4: Dev 38, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 23, If 0, Class=Hub, Driver=hub/3p, 5000M
                    |__ Port 1: Dev 33, If 0, Class=Mass Storage, Driver=uas, 5000M
            |__ Port 3: Dev 14, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 1: Dev 22, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 29, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 3: Dev 36, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 4: Dev 42, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
            |__ Port 4: Dev 20, If 0, Class=Hub, Driver=hub/4p, 5000M
                |__ Port 3: Dev 43, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 1: Dev 30, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 4: Dev 45, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
                |__ Port 2: Dev 37, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 31, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 1: Dev 32, If 0, Class=Hub, Driver=hub/4p, 480M
                |__ Port 3: Dev 36, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 2: Dev 33, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 35, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 4: Dev 37, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 5, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 1: Dev 7, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 4: Dev 15, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 2: Dev 10, If 0, Class=Hub, Driver=hub/4p, 480M
                |__ Port 2: Dev 16, If 0, Class=Hub, Driver=hub/3p, 480M
                |__ Port 3: Dev 17, If 0, Class=Hub, Driver=hub/3p, 480M
                |__ Port 1: Dev 13, If 0, Class=Hub, Driver=hub/3p, 480M
    |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 3, If 2, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
    |__ Port 5: Dev 42, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 46, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 43, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 4: Dev 51, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 2: Dev 47, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 3: Dev 49, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 1: Dev 45, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 4: Dev 48, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 4: Dev 54, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 2: Dev 52, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 3: Dev 53, If 0, Class=Mass Storage, Driver=usb-storage, 480M
            |__ Port 1: Dev 50, If 0, Class=Mass Storage, Driver=usb-storage, 480M
        |__ Port 2: Dev 44, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 7: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 8: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M

However, it seems that lsusb shows 36 USB storage drives, does this mean the USB3 ports are already running as USB2 ones?

$ lsusb -t | grep storage -c
36
ChanganAuto avatar
us flag
XHCI is still USB3.x regardless of the "gen" setting. Now, if the firmware offers the possibility of disabling XHCI that may work for what you want, it should force the fallback EHCI (USB2.0)
WinEunuuchs2Unix avatar
in flag
@ChanganAuto It might be helpful to post an answer rather than a comment. USB 1, USB 1.1, USB 2, USB 3 and USB 4 all have subset names like XHCI and EHCI that can be confusing.
ChanganAuto avatar
us flag
@WinEunuuchs2Unix Do you think it could work? I'm not sure, hence just a comment with the suggestion. If the OP confirms it works I might post an answer later. Not really on the mood of posting answers though: https://meta.askubuntu.com/questions/19843/correct-answer-deleted
it flag
Possibly a stupid question but... is adding a USB 2.0 card out of the question? I know that would cost money, and a no cost solution would certainly be preferable, but that could/should solve the issue for a small investment in time and money.
WinEunuuchs2Unix avatar
in flag
@ChanganAuto Mitch and the other mods are nice guys. You are just new here and after they read you many insightful posts they will let you go your own way even if you rant an rave to burn it all down or something. (well OK not to that extreme)
cocomac avatar
cn flag
I realize that this doesn't answer the question... but why exactly do you need more than 32 devices plugged in at once...?
Athena Wisdom avatar
gr flag
@MacGuffin There is a PCIe slot on the motherboard that can accommodate the USB 2.0 card, and this was my contingency plan if theres no simple software-based solution.
Athena Wisdom avatar
gr flag
@cocomac Looking to use USB-connected devices as an initial trial, before shucking them and moving the entire system into a rack mountable chassis.
Athena Wisdom avatar
gr flag
@ChanganAuto Is it possible to check from within Ubuntu whether it has been been fallen back to EHCI?
ChanganAuto avatar
us flag
Yes, if it shows EHCI instead of XHCI where the latter would be expected using normal settings.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.