I finally gave up on ever getting my old Broadcom BCM4401 wireless card to work under Linux, so I went out and bought an Intel 3945ABG card (which is actually one of the cards Dell ships with my laptop model, just not the one I happened to get (through no fault of my own)). Out-of-the-box support from the stock ipw3945
driver. Plays nice with the Network Manager and the proprietary nVidia driver. Suspend works. Sweet.
Having taken a moment to appreciate this vast improvement in my computing situation, I will now proceed to bitch. Every now and then—say every 3rd or 4th time I suspend—the wireless card doesn’t come on after I resume. All I have to do is “rmmod ipw3945; modprobe ipw3945
” and it comes back fine (which is better than manually fussing with the ESSID, which I have often had to do in the past).
I filed a bug on this and one of the maintainers suggested I add the module to the “suspend blacklist”. I politely asked both the maintainer and Google what and where the “suspend blacklist” is, but I’ve gotten no answers. There’s a bunch of scripts in /etc/acpi
that seem relevant, but from what I can tell, they should already being doing what I want to hack them to do. Which might mean they’re not even being used anywhere anyway…
At less frequent intervals—say every 9th or 10th time I suspend—the module is “busy” when I try the unload/reload step and I have to reboot to get things back in order. I can’t figure out how to find out which process has a lock on the module either…
Bah!