Atheros madwifi

From openSUSE

In openSUSE, starting with version 10.1, the MadWiFi driver for Atheros wireless cards are not included in the distribution as it's HAL module is only available as proprietary. However, it is still possible to use this driver.


Contents

Installation using YaST (All versions)

You can use 1-click-install that will install the latest version: Install madwifi

There are driver packages for openSUSE available directly from the MadWifi project. They can be installed from their repository by adding it as an installation source in YaST, by first opening up YaST, select Installation Source, click Add and select "Specify URL..." and enter the following into the URL field and press OK:

Version:
10.3
http://madwifi.org/suse/10.3
Version:
10.2
http://madwifi.org/suse/10.2
Version:
10.1
http://madwifi.org/suse/10.1

YaST will now download the package information. When it's done, click on Finish and enter Software Management, then search for madwifi, and you should see a list of packages appear. You need to install madwifi (If it's already installed, right click on it and select Update) and madwifi-kmp-<your kernel flavor>.

To find out which one of the madwifi-kmp-* packages you need, you can open up a terminal and type in

  uname -r

You should now see something like: 2.6.16.21-0.13-<kernel flavor>

Right click on the corresponding madwifi-kmp package and select Install, and click on Accept and wait for the packages to be downloaded and installed.

Open up a terminal window, and just run:

  modprobe ath_pci

and the card should have been detected. Click on the network manager icon in the system tray and configure your wireless network. Assuming that you are running DHCP this should be all you have to do!

Installation using Zypper (Command line)

  zypper -v sa http://madwifi.org/suse/`python -c "import platform;print platform.dist()[1]"` madwifi
  zypper install madwifi madwifi-kmp-`uname -r | awk -F- '{print $3}'`

Open up a terminal window, and just run:

  modprobe ath_pci

and the card should have been detected. Click on the network manager icon in the system tray and configure your wireless network. Assuming that you are running DHCP this should be all you have to do!

Installation using the Smart Package Manager

  smart channel --add madwifi type=rpm-md \
  baseurl=http://madwifi.org/suse/`python -c "import platform;print platform.dist()[1]"`
  smart update madwifi
  smart install madwifi madwifi-kmp-`uname -r | awk -F- '{print $3}'`

Open up a terminal window, and just run:

  modprobe ath_pci

and the card should have been detected. Click on the network manager icon in the system tray and configure your wireless network. Assuming that you are running DHCP this should be all you have to do!

Compile it yourself using the sources

1. Make sure you have installed the kernel-source and the C++ compiler. If not, please install them using YaST.

2. Download the current drivers from this location [1].

3. Unpack the archive in a temporary folder.

4. Open up a terminal window.

4. Switch to the temporary folder, and type in:

  make

5. Now compile it:

  make install

6. You can load the kernel modules using:

  modprobe ath_pci

You can also use the ndiswrapper to install your driver if this doesn't work.

Power Management and madwifi

Add this file to the power management script directory to ensure that wireless works after suspending. In openSUSE 10.3, it's in the /etc/pm/sleep.d directory, and in openSUSE 10.2, it's in the /etc/pm/power directory. You can call it 60madwifi. You'll also need to make it executable. It's run by root, so be careful about adding things to it.

#!/bin/bash
case $1 in
    hibernate)
        /etc/init.d/network stop
        /sbin/modprobe -r ath_pci
        ;;
    suspend)
        /etc/init.d/network stop
        /sbin/modprobe -r ath_pci
        ;;
    thaw)
        /sbin/modprobe ath_pci
        /etc/init.d/network start
        ;;
    resume)
        /sbin/modprobe ath_pci
        /etc/init.d/network start
        ;;
    *)  echo "madwifi power management script called incorrectly."
        ;;
esac