Gigabyte motherboards, Linux and IOMMU

Posted by Howard Richardson (comments: 3)

This is the story of my spending two whole afternoons trying to fix a software problem which never really existed.

After some Windows issues on PC, I reset my BIOS settings to "Optimised Defaults" and had to reinstall my Linux partition again (Opensuse Leap 42). Booting into my fresh Linux system I then found USB and onboard ethernet were both not working, churning out to the console hundreds of nonsense errors like "device descriptor read/64, error -32" and "device not accepting address".

After trying every possible combination of usbcore module options, plugging things in and out and into different ports and playing with all the USB options mentioned in the BIOS, I stumbled across the answer totally by chance the next day... Gigabyte motherboards have a mysterious BIOS option called IOMMU, which is disabled by default. Without it switched on Windows will work fine with USB and ethernet, but Linux will churn out all those strange errors and refuse to even give you a mouse pointer or network connection with which to fix things. One simple BIOS setting changed and everything magically starts working again.

God only knows what IOMMU actually is, but I'm putting this down in writing here so I remember in future to make sure it's on. Hope maybe this helps some others solve this problem too. It seems to just exist on Gigabyte boards.

Go back

Add a comment

Comment by jnowat |

I had this exact same problem, but can't install AMD GPU drivers on the mobo, while it works fine on other mobos. I'm definitely getting rid of this Gigabyte mobo because of this issue. I'm *hoping* it's only a Gigabyte issue.

Comment by Tector |

I wish I had read this earlier. I had the same problem and spent a lot of time trying to figure it out. There isn't a lot of information on the net about this.

Comment by Howard |

Glad I could help somehow. This one drove me crazy for ages till I found the answer! Gigabyte motherboards are generally very good, but the documentation for linux is very hit and miss.