ARE YOU OR DO YOU KNOW A SERIOUSLY HARDCORE LINUX PERSON?

If so, I need their help. Please forward this around, I have a problem and I’d really like a workaround or fix.

THIS IS INTENSELY GEEKY. You have been warned.

I have a shiny new USB 2.0 Audio-compatible device, a TASCAM US-800. It validates as a generic USB 2.0 Audio device under OSX, and all the I/O ports are available. With drivers, it works also under Windows XP, to which my studio system can dual-boot. (Motherboard: Gigabyte GA-G31M-ES2L MB, BIOS version FI 2010/08/12.)

I plug it into my studio system when booted to Ubuntu (10.04 LTS (Lucid Lynx), 2.6.32-35-generic, all patches applied) and the Ubuntu machine falls over dead right after acknowledging the USB device. If I’m in Gnome the whole thing dies almost immediately; if I’m in a text console I have more time. The task queue fills because CPU0 soft-hangs.

Again, the exact same machine in exact same configuration, booted to Windows XP, works fine.

What appears to happen is some sort of interrupt fuckery (“ata3: lost interrupt (Status 0x58)”) and the USB hub controller loses an interrupt and doesn’t realise it, or, looking at the call stack and audio.c, maybe has an extra interrupt mapped to it somehow? With predictably hilarious, by which I mean disastrous, results.

Here is a syslog dump from a boot-through-dying session. It’s pretty typical. The adventures start at 15:41:29. Note the call stack. Note also “BUG: soft lockup – CPU#0 stuck for 61s! [khubd:29].”

This appears to be the most closely-related kernel bug report. It’s acknowledged as a bug but hasn’t been touched in a year. 🙁 I am not convinced it’s identical, in part because the workaround described down at the bottom (booting with noacpi) does not work for me.

I really, really, really want to be able to use this hardware on my Linux DAW. I can, yes, use it with my MacBook and Garage Band, or CUBASE on the same hardware as the Linux DAW, and shuffle files over. But both of those options kinda suck.

Anybody have a workaround? Or a dev machine that can analyse this? Pretty-please?