Friday, September 22, 2006

IRQ, PCI, Linux, Broadcom, Nvidia

(If the title looks like gibberish, move along.)

Oh, woe. Woe. Woe!

The setup: a Dell Inspiron 6400, an nVidia GeForce Go 7300, a built-in Broadcom BCM4401 wireless chip, and Ubuntu Dapper 6.06 with the latest kernel patches (2.6.15-27-686 SMP PREEMPT).

The only way I've gotten the Broadcom to work is with a custom-compiled version of ndiswrapper and bcmwl5.inf. The free driver that's shipped with the kernel could but doesn't support the particular variant of the wireless chip that I have (code no 4311). (Support has been checked into CVS and will eventually trickle down to peons like me.)

I currently have the graphics card running under a proprietary driver (nvidia-glx) that was installed by Automatix. Previously, I was running a stock driver that caused the display to die on Suspend. (Now, the display only occassionally dies on Suspend.)

Since I installed the graphics driver several days ago, my PC has started periodically crashing, hard. Since this morning, my PC has started crashing hard and often. (It occurs to me that the hardware has gotten itself stuck in some crash-erific state and that possibly a solution is to somehow reset the hardware. However, this strategy, should it succeed, would still leave me facing intermittent crashes in the future.)

Here's the thing: the nVidia driver and ndiswrapper share IRQ 169. Here's the log of the crash:


Sep 22 11:33:25 localhost kernel: [17179867.804000] [__report_bad_irq+42/160] __report_bad_irq+0x2a/0xa0
Sep 22 11:33:25 localhost kernel: [17179867.804000] [handle_IRQ_event+61/112] handle_IRQ_event+0x3d/0x70
Sep 22 11:33:25 localhost kernel: [17179867.804000] [note_interrupt+135/240] note_interrupt+0x87/0xf0
Sep 22 11:33:25 localhost kernel: [17179867.804000] [__do_IRQ+253/272] __do_IRQ+0xfd/0x110
Sep 22 11:33:25 localhost kernel: [17179867.804000] [do_IRQ+25/48] do_IRQ+0x19/0x30
Sep 22 11:33:25 localhost kernel: [17179867.804000] [common_interrupt+26/32] common_interrupt+0x1a/0x20


This invariably happens after I bring up the wireless connection.

Egads! What to do?! Live without Suspend? Live without Wireless? Can you call that living?

SIDE NOTE: "Aha!" I thought, "I have an old, reliable Orinoco card. Let's try that!" But... is it possible my laptop doesn't have PC Card slot? What gives? What is this PC Card-shaped slot that the card won't slide into? What is its purpose other than to make me angry?

P.S. I have heard complaints about similar problems from students running other Linux versions/distros.

1 comment:

Anonymous said...

On dapper I used bcm43xx-fwcutter instead of ndiswrapper. Somewhat better 'cause it doesn't rely on wine. This stopped working on edgy beta; Haven't tried lately though (i.e., with the real non-beta Edgy).