Fixing the WiFi on Acer 5100


One downfall of linux is the newest, latest greatest, or off the beaten track hardware tends not to run out of the box. Such is the case with the acer aspire 5100 wireless atheros card. To get it working with ubuntu in perticular 7.04 go throught the following steps


Download the ndiswrapper-1.48.tar.gz and windows_driver.zip files


Extract both files and you should have two folders ndiswrapper-1.48 and windows_driver


From a console type
sudo apt-get install build-essential to install the needed programs to compile everything


sudo echo ath_pci >> /etc/modprobe.d/blacklist to remove the old wifi modules
sudo echo ath_hal >> /etc/modprobe.d/blacklist and stop them from loading
sudo echo wlan >> /etc/modprobe.d/blacklist


Edit the file /boot/grub/menu.lst with your favorite text editor and near the end of the file you will find several lines that start with the word "kernel" at the end of each of those lines you need to type pci=assign-busses


A sample of a line in the file is just below to go by kernel version and some other info may be different in your case



Install your kernel headers. Since you may have upgraded your kernel I cant give you the the exact file to download, but I can help you figgure it out. In a terminal type in


uname -a
And you will probably get a result similiar to
Linux davinci-laptop 2.6.20-16-generic .........
the 2.6.20-16-generic in the output is the kernel version so we can use this to help narrow down which file you need to install to get your kernel headers type in


apt-cache search linux | grep header | grep 2.6.20-16-generic replace the 2.6.20-16-generic with what you get from the output of uname -a


The output of the above command should give you one file as output for example when I ran that command I got
linux-headers-2.6.20-16-generic - Linux kernel headers for version 2.6.20 on x86/x86_64


The portion of the output on the left is the file name you install using the command
sudo apt-get install linux-headers-2.6.20-16-generic


Once the kernel headers are installed ok we can move on to installing the new driver. Go into the ndiswrapepr directory you extrated from before using a terminal and then type the command
sudo make; sudo make install to compile and install it


Now in the same terminal window go into folder windows drivers/Drivers/XP-x64 and type in the command
sudo ndiswrapper -i net5211.inf


reboot


Upon reboot go into a terminal and type
lsmod | grep ath


If you get any output from that command the old modules are still loading and you have to type
sudo rmmod ath_pci
sudo rmmod ath_hal
sudo rmmod wlan


try the lsmod | grep ath command again and make sure you get no output once that is confirmed type in
sudo modprobe ndiswrapper


This will load the new driver. You can confirm the wireless card is up and running by running the following commands


ifconfig
iwconfig


Both commands should show all your network interfaces and in the list there should be a wlan, wlan0 or something similiar. Configure your wireless network card like you would any other using system->administration->network tool. Once up and running and you know it works good (I done it first try) you can add the new ndiswrapper and have it automatically load upon start up. Otherwise you will have to type "sudo modprobe ndiswrapper" every time you want to use it. You can do so by typing


sudo echo ndiswrapper >> /etc/modules


You should now be up and running for every boot up. If upon reboot it doesnt work, redo the lsmod | grep ath command to make sure the old driver is still stopped from loading. Making sure all 3 modules...ath_pci ath_hal wlan are all entered into the /etc/modprobe.d/blacklist file


I didnt have too too much troubles but i found sometimes the blacklist file didnt stop the old modules from loading. To help this I created a little shell script on the desktop that I double click when I want the wireless activated. In that file I have



This script has to be run as root


A lot of frigging around but it appears to be the only working solution to getting the wireless card up and running until a better one gets implemented into the next version of the kernel