Trying to breathe some extra life into my computer now that we’re past the windows 10 EoL and I’m trying to install Mint
So far everything seems to be working fine except that some of my USB ports don’t seem to be working.
They work in Windows, they work in the BIOS but once I’m up and running in with some of them just stop.
My motherboard is a gigabyte ga-990fxa-u3 (Rev 4.0) running the latest bios version
It has some USB 3.0 ports, and some 2.0, I’m not home right now to double check but I believe it’s the 2. ports that aren’t working.
I played around with Linux a little bit well over a decade ago but I’m essentially a total Linux noob
Anyone got any thoughts about what’s going on with these ports or how to fix it?
EDIT: I got it working, after a bit of fiddling with every just about every setting in the BIOS here’s what worked for me, reading your comments, and a lot of googling, I found this solution courtesy of a guy named David A. Jayne in the reviews of the Amazon page for the motherboard
OK, so here are the step-by-step instructions if you need them:
*** Step 1: Updating the BIOS settings ***
- Reboot your computer, and press the “Delete” key (not to be confused with backspace) when the Gigabyte logo shows on your monitor to enter the BIOS settings. This can flash by pretty quickly, so sometimes it’s easier to just repeatedly press delete while the computer restarts until the BIOS settings page shows (see attached screenshot).
- Use the right arrow key to move over to the “Peripherals” tab.
- Use the down arrow key to highlight “IOMMU Controller” near the bottom. Press enter, and a box will pop up allowing you to select “Enabled” or “Disabled”. Use the up or down arrow keys to highlight “Enabled” and press enter. Your screen should now look exactly like the screenshot I have provided, the “IOMMU Controller” option showing that it is enabled.
- Press the F10 key to save and exit.
Your computer will now reboot. If you have not yet been able to install Linux (and you probably haven’t, if you have a USB mouse and keyboard) do so now. Don’t plug your mouse or keyboard into any blue USB ports, as these are USB 3.0 ports and will not yet work. Once Linux has installed (or if it was already installed) boot your computer into Linux and proceed to Step 2.
*** Step 2: Editing /etc/default/grub ***
- Once you see your Linux desktop, open a command prompt from the start menu. This is usually prominently featured on the start menu, looking like a little black monitor screen. It may be under “Accessories” and will probably be labeled “Terminal”.
- At the command prompt, enter the following exactly: sudo nano /etc/default/grub
- You will be prompted to enter your password. Please do so. A simple-to-use text editor (nano) will open, and you should see a fair amount of text inside. If the file is empty, press ctrl-x to exit and Google search for instructions for your particular distro.
- There is probably already a line that says GRUB_CMDLINE_LINUX=“”, and you will just need to add “iommu=soft” between the quotes. Use the arrow keys to position the cursor between the quotes and add the appropriate text until the line looks exactly like the following: GRUB_CMDLINE_LINUX=“iommu=soft”
If there is no similar line already there, you may add it anywhere in the file. If there is a pound sign (#) at the beginning of the line, it will need to be deleted.
- Once the GRUB_CMDLINE_LINUX line has been edited, press ctrl-o to save it, and then ctrl-x to exit nano.
- You need to enter one more command to finalize the new configuration, but it varies by distribution.
If you are on a Debian-based distribution (Debian, Ubuntu, Mint…), enter this command in the terminal window: sudo update-grub
If you are on a Red Hat based distribution (RHEL, Fedora, CentOS, Mandriva…), enter this command in the terminal window: sudo grub2-mkconfig --output=/boot/grub2/grub.cfg
Some information will print in the terminal window. If it says there were errors, go back to the beginning of Step 2 and try to figure out what you did wrong.
*** Step 3: Reboot your computer ***
- There should be a prominent option on your start menu to shutdown or reboot your computer. You should usually use this, however, if you want to be fancy. you can enter “sudo shutdown -r now” in the terminal window to reboot.
Once you are rebooted, Linux should now be able to access the USB 3.0 ports and will boot much faster as well.
I did find that after that the 3.0 ports still didn’t work, but thanks to @[email protected] I still had one more thing to try and instead of “iommu=soft”, I tried “iommu=pt” and that did the trick.
Thank you all for your help in figuring this out!
And if anyone wants to explain what any of that all means, I’d love to hear it, because I have no clue.
I’m glad you figured it out! Thank you for sharing your solution.
I had this problem specifically dealing with the way that IOMMU maps devices conflicting with a really old USB root hub. I had to set something like intel_iommu=off for my case.
Would you be willing to share the output of your dmesg ?
My google-fu definitely seems to be pointing to it being a IOMMU issue.
Not currently home with the computer, I’ll play with a couple settings when I get in and if it doesn’t get me anywhere I’ll definitely share that output
Sounds good! Basically, the problem I had boiled down to a super old driver no kernel dev wants to touch with a ten foot pole and they’re just kinda hoping it’ll die a death to irrelevancy, but there are a few systems out there that do still use it.
The rest of the design moved on to more advanced architecture.
Had the same problem ages ago, as the other said, iommu 100%.
iommu=pton the kernel variables at grub or systemd-boot, and you’re ready to go!Edit: fx6300 on an 990x gaming, from gigabyte too, at the time.
I put a more detailed explanation of what I did up in the original post, but I ended up needing to turn iommu on
Which sort of flipped things around so that the 3.0 ports no longer worked but the 2.0 ones did
And I had to make a small edit to get/default/grub
Thank you for your help!
My family still runs two of this mobo, but older revisions. I remember hearing about bugs with IOMMU but I can’t recall any USB or other problems.
IOMMU can be disabled in BIOS; it seems that it would only be useful if passing devices through to a virtual machine? Is that a valid assessment?
Yeah, it seems its used for passing devices to virtualized environments, but it seems, on these old bulldozer motherboards, the usb devices are virtualized (I have read a long time ago, could be wrong).
There’s a few different ways for you to probe for info on your USB devices:
lsusb- lists pretty much everything usb related, including root hubs on your motherboardFor a more readable
lsusboutput you canlsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/nullin my experience it can be helpful to slap asudoon the beginning as well because sometimes certain devices can’t be polled without root privileges.usb-devices- similar to lsusb but produces much more detailed (but less human readable) informationfind /sys/bus/usb/devices/usb*/ -name dev- produces a list of where the system saves information on usb devices. Each of the listed folders will hold a lot of files with a wealth of information on each usb device, but be very careful and do not edit these files.You can also do this to see what the system is doing in the background and then try plugging and unplugging devices from the offending usb ports:
watch "dmesg | tail -20"You’ll at least be able to see if the system is registering anything at all when trying to use those ports, or if it’s as though the system doesn’t see them at all.
I have a similar issue on my Lenovo ThinkBook but the ports don’t work in any OS despite being enabled in the UEFI. I still haven’t figured out what is wrong with them, but it seems they may just be toast. Thankfully the USB-C ports still work and I can just connect a hub to one of those.
Open your machine and look at these ports.
Are they directly connected to the motherboard, or on the front of a case extended by a cable?
They’re directly on the motherboard
The ones on the front of the case are working, and I’m 99% sure they’re connected to a 3.0 header
I’m not currently home so not able to confirm that right now
Your North and South (if you have one )bridge chip?
From the gigabyte website, so hopefully this is the info you’re looking for
North Bridge: AMD 990FX South Bridge: AMD SB950
Try going into your BIOS settings and disabling IOMMU for the USB and Chipset settings. Boot and see if it works then.
I put a more detailed explanation of what I did up in the original post, but I ended up needing to turn iommu on
Which sort of flipped things around so that the 3.0 ports no longer worked but the 2.0 ones did
And I had to make a small edit to get/default/grub
And everything went off without a hitch from there
Thank you for your help!


