How to Restore USB 2.0 Functionality After Upgrading to Ubuntu 18.10 – USB, XHCI-HCD

18.10usbxhci-hcd

I recently upgraded to Ubuntu 18.10 (Cosmic Cuttlefish), and now only my USB 3.0 ports seem to work. My motherboard's USB 2.0 ports work well in Windows still, and dmesg shows that the ports are still detected.

Here's a diff of dmesg before and after a USB thumb drive is plugged into the non-working port:

> [ 5272.705639] usb 3-1: new high-speed USB device number 19 using ehci-pci
> [ 5272.833637] usb 3-1: device descriptor read/64, error -32
> [ 5273.069634] usb 3-1: device descriptor read/64, error -32
> [ 5273.305620] usb 3-1: new high-speed USB device number 20 using ehci-pci
> [ 5273.433632] usb 3-1: device descriptor read/64, error -32
> [ 5273.673630] usb 3-1: device descriptor read/64, error -32
> [ 5273.781632] usb usb3-port1: attempt power cycle
> [ 5274.225630] usb 3-1: new high-speed USB device number 21 using ehci-pci
> [ 5274.641614] usb 3-1: device not accepting address 21, error -32
> [ 5274.769604] usb 3-1: new high-speed USB device number 22 using ehci-pci
> [ 5275.185593] usb 3-1: device not accepting address 22, error -32
> [ 5275.185632] usb usb3-port1: unable to enumerate USB device
> [ 5275.573592] usb 7-1: new full-speed USB device number 52 using ohci-pci
> [ 5275.761543] usb 7-1: device descriptor read/64, error -32
> [ 5276.061610] usb 7-1: device descriptor read/64, error -32
> [ 5276.353580] usb 7-1: new full-speed USB device number 53 using ohci-pci
> [ 5276.513580] usb 7-1: device descriptor read/64, error -32
> [ 5276.781579] usb 7-1: device descriptor read/64, error -32
> [ 5276.889555] usb usb7-port1: attempt power cycle
> [ 5277.389577] usb 7-1: new full-speed USB device number 54 using ohci-pci
> [ 5277.809580] usb 7-1: device not accepting address 54, error -32
> [ 5277.993586] usb 7-1: new full-speed USB device number 55 using ohci-pci
> [ 5278.409573] usb 7-1: device not accepting address 55, error -32
> [ 5278.409667] usb usb7-port1: unable to enumerate USB device

And a diff of dmesg before and after the same USB thumb drive is plugged into a working USB 3.0 port:

> [ 5581.365588] usb 8-1.4: new high-speed USB device number 12 using xhci_hcd
> [ 5581.466252] usb 8-1.4: New USB device found, idVendor=0781, idProduct=5575, bcdDevice= 1.26
> [ 5581.466257] usb 8-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> [ 5581.466260] usb 8-1.4: Product: Firebird USB Flash Drive
> [ 5581.466263] usb 8-1.4: Manufacturer: SanDisk
> [ 5581.466265] usb 8-1.4: SerialNumber: 4C532000061107116072
> [ 5581.467387] usb-storage 8-1.4:1.0: USB Mass Storage device detected
> [ 5581.467752] scsi host8: usb-storage 8-1.4:1.0
> [ 5582.470727] scsi 8:0:0:0: Direct-Access     SanDisk  Cruzer Glide     1.26 PQ: 0 ANSI: 5
> [ 5582.471390] sd 8:0:0:0: Attached scsi generic sg3 type 0
> [ 5582.472628] sd 8:0:0:0: [sdd] 62530624 512-byte logical blocks: (32.0 GB/29.8 GiB)
> [ 5582.473669] sd 8:0:0:0: [sdd] Write Protect is off
> [ 5582.473676] sd 8:0:0:0: [sdd] Mode Sense: 43 00 00 00
> [ 5582.474130] sd 8:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
> [ 5582.482806]  sdd: sdd1
> [ 5582.484907] sd 8:0:0:0: [sdd] Attached SCSI removable disk

This is consistent across my webcam, mouse, and USB drives. My motherboard is a Gigabyte GA-990FXA-UD3, and I've fiddled with settings in the BIOS about workarounds for legacy USB devices, but it didn't seem to have any effect.

How might I approach getting my USB ports back? If this is a bug, where would I submit a bug report?

Best Answer

  1. In the BIOS, set IOMMU to "Enabled"

    That gets the USB 2.0 ports working, but now the USB 3.0 ports don't work.

  2. In the BIOS, check the USB setting. It should probably be set to "legacy", but if it's already set that way, try another setting, and see if the USB 3.0 ports work again.

  3. In the terminal...

    • sudo -H gedit /etc/default/grub
    • Input your password
    • Then find the line that says:

      GRUB_CMDLINE_LINUX=""

    • Then make it this:

      GRUB_CMDLINE_LINUX="iommu=soft"

    • Save the file
    • Then run this in the terminal...

      sudo update-grub

    • Reboot

Source: Gigabyte GA-990FXA-UD3 USB ports not working

Related Question