As every user has options with gnu/linux you can also see this howto. The instructions there will let you keep restricted modules working.
This howto will install the latest svn snapshot of the madwifi-ng driver for pci devices based on the atheros chipset. The difference between this and the other howto on madwifi in this section is the other will update to the latest madwifi-old module and this installs madwifi-ng.
The newer features found in the -ng version can be found here.
This update is not necessary unless
1. your pci device is not working with current version that comes with breezy.
2. Or you can use if you removed restricted modules to use latest nvidia/fglrx drivers
3. You build a custom kernel but note these instructions do not include steps to properly make and install when using custom kernel. I can add these later as I'm not sure of all steps and currently don't have a custom kernel to work with. If somebody else wants to post some instructions, I'll edit them into the original post.
Note: madwifi does not currently support USB devices with the atheros chipset and the roadmap shows it will be sometime before USB support is built into the driver(version 2.0). You can watch progress at www.madwifi.org
The atheros driver that comes with Breezy is part of the restricted-modules package. This will need to be removed before you can install the latest driver. All modules in this package will be removed and may affect areas such as your graphic driver. If you need to use a module in this package then you will also have to recompile and install that module. There are howtos on the latest nvidia and fglrx in the tips and tricks section.
Here are the modules in the restricted-module package
Currently the following modules are included:
- madwifi (Atheros)
- fglrx (ATI)
- fcdsl, fcdsl2, fcdslsl, fcdslslusb, fcdslusb, fcdslusb2, fcdslusba,
fcpci, fcpcmcia, fcpcmcia_cs, fcusb, fxusb (AVM ISDN)
- ltmodem (Winmodem)
HOWTO: latest fglrx
HOWTO: latest nvidia
You will need a working internet connection to complete this howto.
Basic knowledge of moving around in the terminal is required
1. Remove the following package
2. Install the following packages
sudo apt-get --purge linux-restricted-modules-`uname -r`
sudo apt-get install build-essential linux-headers-`uname -r` gcc-3.4 subversion sharutils
move into the directory that was created
sudo svn checkout http://svn.madwifi.org/trunk madwifi-ng
There is an error that comes up if you don't follow this step first.
towards the bottom is a line line that needs to be modified.
sudo gedit Makefile.inc
change this line and remove the -Werror part so line now looks like this.
This will not affect driver in anyway, it's just something in the way ubuntu built the kernel for breezy which will prevent installing the driver.
Note: I and others have been able to build, install, and use this driver with no problems but as provided by marcantonio, see about setting up file to ensure gcc-3.4 is used to build driver in this post.
There will be some warnings but you can ignore those. Look for any errors as these will need to be addressed before moving on to next step.
You may get this warning
You should remove with option r
It seems that there are modules left from previous MadWifi installations.
You should consider removing them before you continue, or else you might
experience problems during operation. Remove old modules?
[l]ist, [r]emove, [i]gnore or e[x]it (l,r,i,[x]) ?
If all goes well your last few lines should look like this.
1.3 Insert module
(export MODULEPATH=/lib/modules/2.6.15-8-686/net; depmod -ae)
echo "KERNELRELEASE=2.6.15-8-686" > ./install.log
echo "DESTDIR=" >> ./install.log
1.4 Create the interface
sudo modprobe ath_pci
You should now have the latest madwifi driver working. Just configure your network and connect.
wlanconfig ath0 create wlandev wifi0 wlanmode sta
If it does not then try to restart your network
or reboot after completing the next step.
sudo /etc/init.d/networking restart
2.0 Configure for boot
Edit Feb 4th: With latest driver, this part is no longer needed. Kept in howto for historical reference.
When you reboot the interface will not be set up. Add a line like this for the interface in the /etc/network/interfaces
pre-up wlanconfig ath0 create wlandev wifi0 wlanmode sta
iface ath0 inet dhcp
pre-up wlanconfig ath0 create wlandev wifi0wlanmode sta
If you want to uninstall this module just move back to the directory
sudo make uninstall
If you want to use wpa encryption with -ng driver you will need latest wpasupplicant. See instructions here.