Atheros madwifi
From openSUSE
In openSUSE, the MadWiFi driver for Atheros wireless cards are not included in the distribution as its HAL module is only available as
proprietary. However, it is still possible to use this driver.
Contents |
Pre-Installation
- Discover what cards or wireless devices are supported. I recommend this very informative page [1].
- Known your openSUSE version (10.3, 11.0, or 11.1).
- In example, if you installing openSUSE 11.0, your openSUSE version would be "11.0" not just "11".
- Known your kernel type. In openSUSE KERNEL_TYPE is one of the following: default, ec2, pae, ppc64, trace, vanilla, or xen.
$ uname -r
- After executing above command it will print out kernel version and kernel type, i.e: 2.6.27.29-0.1-default, 2.6.27.29-0.1 is kernel version and default is kernel type.
Installation
Installing MadWifi Program and Kernel Module
MadWifi requires two packages to be installed MadWifi program and MadWifi kernel module which is available directly from the MadWifi project. They can be installed from their repository by adding it as an installation source.
You can use one of the following installation methods depending on your preferences: YaST, zypper, Smart or compiling from source. First, make sure you are connected to Internet, get a cable plug in to a router/DSL or Cable modem some where and get connected.
Using YaST (All versions)
- Add MadWifi repositories.
- Open the YaST Control Center.
- Select Software Repositories.
- Click Add and select Specify URL....
- Enter one of the following into the URL field, depending on your version,
| Version: 11.1
| http://madwifi-project.org/suse/11.1 |
| Version: 11.0
| http://madwifi-project.org/suse/11.0 |
| Version: 10.3
| http://madwifi-project.org/suse/10.3 |
- Click OK, YaST will now download the package information.
- Click Finish, when it's done.
- Install MadWifi program and Kernel Module.
- Select Software Management in the YaST Control Center
- Search for madwifi, and you should see a list of packages appear.
- Install (or update, if necessary) madwifi and madwifi-kmp-<KERNEL_TYPE>. Pick one of the madwifi-kmp-* based on your kernel type.
- Click on Accept and wait for the packages to be downloaded and installed.
| Version: 10.3
| If you see dependency fails then click solve during the update, and accept. |
| Version: 11.0
| It will shows by default the first module and the pae modules green checked. Accept these and it will load error free. |
- Continue to the next step: loading madwifi kernel module.
Using Zypper (Command line)
- Add MadWifi repositories. Replace OPENSUSE_VERSION with version number of your current openSUSE.
$ sudo zypper -v ar http://madwifi-project.org/suse/<OPENSUSE_VERSION> madwifi
- Install MadWifi program and kernel module. Replace KERNEL_TYPE with your kernel type.
$ sudo zypper install madwifi madwifi-kmp-<KERNEL_TYPE>
- Continue to the next step: loading madwifi kernel module.
Using the Smart Package Manager
- Add MadWifi repositories. Replace OPENSUSE_VERSION with version number of your current openSUSE.
$ sudo smart channel --add madwifi type=rpm-md baseurl=http://madwifi-project.org/suse/<OPENSUSE_VERSION>
- Install MadWifi program and kernel module. Replace KERNEL_TYPE with your kernel type.
$ sudo smart update madwifi $ sudo smart install madwifi madwifi-kmp-<KERNEL_TYPE>
- Continue to the next step: loading madwifi kernel module.
Compiling it yourself using the sources
- Make sure you have installed the kernel-source and the C++ compiler. If not, please install them using YaST.
- Download the current drivers from this location [2].
- Unpack the archive in a temporary folder.
- Open up a terminal window.
- Switch to the temporary folder, and type in,
$ sudo make $ sudo make install
- Continue to the next step: loading madwifi kernel module.
You can also use the ndiswrapper to install your driver if this doesn't work.
Loading MadWifi Kernel Module
- Open a terminal window, and execute this command,
$ sudo /sbin/modprobe ath_pci
- Check if your module is loaded,
$ sudo /sbin/modprobe -l | grep ath
After kernel module is loaded your wireless card should have been detected. Click on the KNetworkManager icon or KInternet in the system tray and configure your wireless network. Assuming that you are running DHCP this should be all you have to do. Some versions of Suse will not have the icon in tray, so do a search "knetworkmanager" or "kinternet" and then open and run this utility and configure your wifi device.
Do not forget to disconnect or disable the wired connection that has been established before or you will have a conflict with DHCP and common network masks.
- KInternet
- Under Kinternet system tray, right click >> settings >> various, and roll the eth0 to ath0.
- When you are using WEP with kinternet (traditional ifup method), set or add the variable
WIRELESS_AP='off'
in the /etc/sysconfig/network/ifcfg-ath0 file. - When you are using WEP with kinternet (traditional ifup method), set or add the variable
| Note: For the ath_pci and ath_hal to work for the AR242x, you must have to reboot. |
Power Management
To ensure that wireless works after suspending to disk or to RAM follow this procedures,
- Create (or open) a file named config in the /etc/pm/config.d directory
- Add the following line:
SUSPEND_MODULES="ath_pci"
If the steps described above does not work, you may try adding the following file to the power management script directory.
- Create a file named 60madwifi in this directory,
| Version: 10.3,11.0
| /etc/pm/sleep.d/ |
| Version: 10.2
| /etc/pm/power/ |
- Contents of 60madwifi is,
#!/bin/bash
case $1 in
hibernate|suspend)
/sbin/rmmod ath_pci ath_rate_sample ath_hal
;;
thaw|resume)
/sbin/modprobe ath_hal
/sbin/modprobe ath_rate_sample
/sbin/modprobe ath_pci
;;
*) echo "madwifi power management script called incorrectly."
;;
esac
- Make file 60madwifi executable.
| Version: 10.3,11.0
|
$ sudo chmod +x /etc/pm/sleep.d/60madwifi |
| Version: 10.2
|
$ sudo chmod +x /etc/pm/power/60madwifi |
WiFi LEDs blinking
Follow this link to enable WiFi LEDs blinking.
See Also
Passed QA check: Fsundermeyer 14:31, 16 June 2009 (UTC)

