Acer laptop, Intel 2200BG, wireless "disabled by hardware switch" irrespective of switch position
I have the problem that on my old Acer Travelmate292 the wireless hardware switch has stopped working a couple releases ago. It worked fine in Windows.
BIOS is at the latest version, the switch is indeed in the "on" position, but this is not recognized by Ubuntu.
Earlier it was possible to switch it on in Windows, and reboot to Ubuntu, and it would work, but I have since deleted my Windows installation, so this workaround is not viable anymore.
rfkill list all
says hard-blocked yes, soft-blocked no, so rfkill unblock all
(as suggested in other similar questions) does not work.
How can I get a functioning wireless back? :-(
Solution 1:
I decided to answer my own question with the solution I found at least, not least because, while there are many similar questions (and answers) around for the Intel 2200BG chip, none concerned the acerhk
module and Acer hardware.
The way I solved this is by installing the acerhk
module. This Hotkeys module also controls the function of the wireless hardware switch.
This module was removed in a previous release (9.10?) which is probably why the hardware switch stopped working in the first place. Even the source package was removed from the standard repositories a while back. Luckily, I found a recent version on Launchpad, including a PPA.
1) Install acerhk-source
:
sudo add-apt-repository ppa:cogito-16/ppa
sudo apt-get update
sudo apt-get install acerhk-source
2) Like the README.Debian in usr/share/doc/acerhk-source
says, do
sudo module-assistant auto-install acerhk
3) Load the module according to your model in this rfswitch.SF model matrix. For me, this was
sudo modprobe acerhk force_series=290 usedritek=1 verbose=1
sudo echo 1 > /proc/driver/acerhk/wirelessled
This will to everything you need. Your wireless hardware switch should work now.
4) To make this change permanent after reboot, you have to do as explained here:
Create the config file
echo 'options acerhk force_series=290 usedritek=1 verbose=1' | sudo tee /etc/modprobe.d/acerhk.conf
Edit /etc/rc.local
echo 1 > /proc/driver/acerhk/wirelessled
exit0
and /etc/modules
as root an add an entry for the module
acerhk
When I think this has stumped me for >1 year (I don't use this laptop very often anymore), and I probably wasted 2+ solid days searching for a solution, it was pretty simple in the end. I hope this will help you, too.
NB: You can also get acerhk
source from its homepage, but this didn't compile for me with the current kernel - make
just sat there and did nothing, probably the reason why it got kicked out of the standard repos.