Thursday, August 5, 2010

Wireless issues on Eeepc under linux

I was running into issues with network-manager (nm-applet) on my Eepc, where at one point I disabled the wireless networking by right clicking on it, but when I attempted to re-enable it, the check box was grayed out.  Restarting and killing the applet did nothing.  In addition, when I tried to connect using iwconfig and iwlist, I was getting errors with "network down".  It seems that at least in my case, the issue was that the interface wlan0 was "down", the solution being "ifconfig wlan0 up".  However, when I tried running that command, I would get the error "SIOCSIFFLAGS unkown error 132".  After some amount of googling, it appears that this error is because of a hardware off switch on the laptop for the wireless.  Confusingly, the Eeepc only had a key combo to disable the wireless, and I was under the impression that it wasn't working under linux, as most of the other hardware hotkey combos didn't.  By pressing Fn-F2, I was able to toggle the Wireless card, and I noticed the little wireless light went on and off.  Surprisingly, it was very inconsistent.  If I pressed it once, sometimes the light and error wouldn't change.  Other times, It would change the light, but get a different error message from ifconfig.  The light sometimes would indicate that it was on, sometimes indicate that it was off.  I figured out that if I pressed it four times and tried ifconfig between each press, at least one of the times it would run without an error.

Turning on the hardware switch meant that the wlan0 interface was "up", allowing me to run iwlist and iwconfig.  However, the issue still remained with network-manager.  Although I assume that the box was initially greyed out because of the hardware switch, it wouldn't un-grey out even when the wireless was back up.  I realized that it was saving the "enabled" state in a configuration file somewhere.  After editing /var/lib/NetworkManager/NetworkManager.state and setting "WirelessEnabled=true", I restarted nm-applet (/etc/init.d/network-manager restart), and suddenly wireless worked again.  Although all the information you need to solve this problem is online, it took several levels of indirection to find it, and a lot of slogging through Ubuntu bug-reports.  I figured I'd compile all the information together here.

No comments:

Post a Comment