Procrastiblog

January 27, 2007

Linux Wireless: Almost There

Filed under: Linux, Tech — Chris @ 11:44 pm

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!

Advertisement

2 Comments

  1. I don’t know where to find the “suspend blacklist” either (I suspect that’s not its True Name), but with pm-utils the relevant scripts go in /etc/pm/sleep.d; for example in there I have 11airo (11 puts it after the network stop/start script in /usr/lib/pm-utils/sleep.d/) that currently looks like this
    [this is meant to be in html code and pre, but blogger doesn’t allow these tags]

    #!/bin/bash

    . /usr/lib/pm-utils/functions

    case “$1” in
    hibernate|suspend)
    rmmod airo;
    logger airo removed
    ;;
    thaw|resume)
    # will this be forced anyway when the network is restarted?
    # modprobe airo
    # logger airo installed
    ;;
    *)
    ;;
    esac

    exit $?

    I haven’t finished messing about with it yet, but something like that should work.

    Comment by Jón — July 18, 2007 @ 9:34 am

  2. Thanks for the tip, Jón. My wireless situation has more or less stabilized.

    Comment by Chris — July 18, 2007 @ 1:26 pm


RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Blog at WordPress.com.

%d bloggers like this: