Linux H97 & Linux (was "MSI and Linux") : Beware... and do your homework first.
#1
Folks -

Part an unfettered rant, part a warning to do your research on compatilbilty.

I've run into an issue with a new motherboard (MSI H97M-G43/Haswell) and every kernel version I've tried. No matter what I do, the USB sybsystem (xhci_hcd) crashes completely when I connect more than one PCTV USB tuner (combination of 290e and 460e). I'm not alone, and the issue - or variants of it - seems to affect Ubuntu, Debian, Arch, Fedora and Red Hat, at least. What's odd is that it all works perfectly on a previous iteration of the board (MSI H77M-G43/Ivy Bridge), which is why I went for this one. Something's changed, perhaps the move to the H97 chipset, perhaps some vendor microcode.

Code:
Nov  8 17:42:17 Server kernel: [   95.306697] xhci_hcd 0000:00:14.0: xHCI host not responding to stop endpoint command.
Nov  8 17:42:17 Server kernel: [   95.306706] xhci_hcd 0000:00:14.0: Assuming host is dying, halting host.
Nov  8 17:42:17 Server kernel: [   95.306837] xhci_hcd 0000:00:14.0: HC died; cleaning up

It seems to be a kernel driver bug that's been around for a couple of years. What's irritating is (a) it hasn't been fixed (welcome to the world of FOSS, I know!) and (b) there seems to be no way to work around it on MSI boards. From what I can see, on Gigabyte (at least), you can tell the mobo to switch off xHCI and step back to EHCI, effectively presenting the ports as USB2 instead: all is then good. However, MSI doesn't have that option; I tried re-compiling the kernel with EHCI and xHCI as modules, and then blacklisting the latter, but that just turned all my USB ports off, which really didn't help.

The final straw is MSI's response this morning: "we didn't test such systems... and the chipest (sic) vendor didn't supply us the drivers for Linux system. We suggest you use the normal system on the MB, such as win 7 or win 8" (my emphasis). In other words, 'tough luck, we're wedded to Seattle's finest and that's the end of it'.

GrumbleGripeMoanComplain. While I don't have a problem with a vendor selectively supporting OSes, they could have said so...

https://forum-en.msi.com/index.php?topic=184705.0

https://bugs.launchpad.net/ubuntu/+sourc...ug/1313279

</rant>
Reply
#2
Maybe a stupid thing to say, I don't know, but ...

As USB3 is fast enough, tried to hook them both up via a HUB on one USB port? Don't know if it makes a difference as the kernel still sees both devices, but maybe the only one physical port used helps? (still a work around / stupid I know)
Reply
#3
Actually, not a dumb idea. I might look into that - thanks for the thought.

I was also considering disabling the USB host on the motherboard and seeing if I could then fit a card-based USB2 controller instead. Sadly, this board doesn't have PCI slots, only PCIe, and so all the USB daughtboards seem to be USB3... USB2/PCI is old technology... and I fear that adding more USB3 simply moves the problem around the chassis...!

EDIT

Hmmm... http://www.amazon.co.uk/dp/B003GSALRU/re...52RH2CZL2A

... which clearly has a VT6212L (http://www.via.com.tw/en/products/periph...b/vt6212l/) chip. So it has its own onboard host controller, albeit some of the ports must be sharing something to get > 4 ports out of this HC.

I'll dig out an old USB2 hub this weekend and give j1nx's suggestion a go, though. I'm not finished yet... damn you, computers, you've never beaten me before...!
Reply
#4
(2014-11-12, 14:05)Prof Yaffle Wrote: ... damn you, computers, you've never beaten me before...!

This sounds soooooo like me Rofl
Reply
#5
Okay, an update... I took the coward's way out (or, the correct route - you decide Smile ) and swapped out the motherboard for a Gigabyte H97M-D3H. I decided that it was much the same cost as a new (diagnostic) USB3 hub, and was almost guaranteed to work somehow.

The good news is that the OS booted and remounted my ZFS array without a hiccup. You gotta love UUIDs and Linux... it didn't even notice that the entire guts of the machine had changed, along with all the drive ordering. I was fully expecting to have to resync umpteen TB of data... again. Happy man.

The bad news is that the same xHCI issue exists on this mobo as well. I thus suspect it's an incompatibility with the H97 chipset - which is ironic, given that the maintainer of xHCI works for Intel AFAICT.

The best news is that, as expected (okay, it said as much in the user manual before I ordered this one...), you can simply switch off xHCI in the BIOS and everything reverts to EHCI (USB2) instead. Okay, I lose USB3, but that's no real loss - even a 1080p HD TV stream doesn't need much more than 10-15Mbps, so a single USB2 header easily copes with a couple of streams without breaking a sweat.

Anyway, all up and running on 3.13.0-39, which is the current kernel for 'buntu 14.04.1
Reply

Logout Mark Read Team Forum Stats Members Help
H97 & Linux (was "MSI and Linux") : Beware... and do your homework first.1