Skip to content

Instantly share code, notes, and snippets.

@smoser
Created September 13, 2011 02:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smoser/1213005 to your computer and use it in GitHub Desktop.
Save smoser/1213005 to your computer and use it in GitHub Desktop.
dkms and ath_pci madwifi setup
#
# https://gist.github.com/1213005
#
svn co http://svn.madwifi-project.org/madwifi/branches/madwifi-0.9.4/
mver="0.9.4"
name="madwifi"
_outrev=$(cd madwifi-0.9.4 && svn info | grep "^Revision:" | cut -d: -f 2)
revno=$(echo $_outrev)
vrev="$mver+$revno"
kver="$(uname -r)"
vlib_d="/var/lib/dkms/${name}/"
sudo apt-get update -y </dev/null
sudo apt-get install -y subversion dkms linux-headers-${kver} </dev/null
mkdir dkms_main_tree dkms_source_tree
echo 2.0.0 > dkms_main_tree/dkms_dbversion
rsync -a "$name-$mver/" --delete dkms_source_tree/
cat > dkms_source_tree/dkms.conf <<EOF
PACKAGE_NAME="${name}"
PACKAGE_VERSION="${vrev}"
EOF
cat >> dkms_source_tree/dkms.conf <<"EOF"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="ath_pci"
BUILT_MODULE_LOCATION[0]="ath"
DEST_MODULE_LOCATION[0]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[1]="ath_hal"
BUILT_MODULE_LOCATION[1]="ath_hal"
DEST_MODULE_LOCATION[1]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[2]="wlan_acl"
BUILT_MODULE_LOCATION[2]="net80211"
DEST_MODULE_LOCATION[2]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[3]="wlan_ccmp"
BUILT_MODULE_LOCATION[3]="net80211"
DEST_MODULE_LOCATION[3]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[4]="wlan"
BUILT_MODULE_LOCATION[4]="net80211"
DEST_MODULE_LOCATION[4]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[5]="wlan_scan_ap"
BUILT_MODULE_LOCATION[5]="net80211"
DEST_MODULE_LOCATION[5]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[6]="wlan_scan_sta"
BUILT_MODULE_LOCATION[6]="net80211"
DEST_MODULE_LOCATION[6]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[7]="wlan_tkip"
BUILT_MODULE_LOCATION[7]="net80211"
DEST_MODULE_LOCATION[7]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[8]="wlan_wep"
BUILT_MODULE_LOCATION[8]="net80211"
DEST_MODULE_LOCATION[8]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[9]="wlan_xauth"
BUILT_MODULE_LOCATION[9]="net80211"
DEST_MODULE_LOCATION[9]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[10]="ath_rate_sample"
BUILT_MODULE_LOCATION[10]="ath_rate/sample"
DEST_MODULE_LOCATION[10]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[11]="ath_rate_amrr"
BUILT_MODULE_LOCATION[11]="ath_rate/amrr"
DEST_MODULE_LOCATION[11]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[12]="ath_rate_minstrel"
BUILT_MODULE_LOCATION[12]="ath_rate/minstrel"
DEST_MODULE_LOCATION[12]="/kernel/drivers/net/wireless"
BUILT_MODULE_NAME[13]="ath_rate_onoe"
BUILT_MODULE_LOCATION[13]="ath_rate/onoe"
DEST_MODULE_LOCATION[13]="/kernel/drivers/net/wireless"
MAKE[0]="make modules KERNDIR=/lib/modules/$kernelver"
AUTOINSTALL="yes"
EOF
tar -Scvzf "$name-$vrev-source-only.dkms.tar.gz" \
dkms_source_tree/ dkms_main_tree/
# the 'madwifi-0.9.4+${revno}-source-only.dkms.tar.gz' should be
# able to be taken elsewhere
## Now, load it to dkms
sudo dkms ldtarball --archive=$name-$vrev-source-only.dkms.tar.gz
## Now, you can build a debian source package
### read /usr/share/doc/dkms/HOWTO.Debian for more info
sudo dkms mkdsc -m madwifi -v $vrev
## see LP: #928007, you need kver=$(uname -r)
sudo dkms remove $name/$vrev -k $kver
sudo dkms build $name -v $vrev -k $kver
sudo dkms install $name -v $vrev -k $kver
# edit /etc/modprobe.d/blacklist-ath_pci.conf to have:
blacklist ath5k
sudo rmmod ath_pci ath5k
sudo modprobe ath_pci
## maybe a bug in dkms
## after a new kernel upgrade, wifi wasn't present.
## I had to:
for act in remove build install; do
sudo dkms $act madwifi/0.9.4+$revno -k $(uname -r)
done
-----
Bug covering bad ath5k performance in karmic is at [1].
Combined instructions on getting functional driver at [2] with [3] to build
dkms. Added script madwifi-ath-speed-down to lower rate on ifup to
/etc/NetworkManager/dispatcher.d .
I *did* do a 'make install-tools' to put files in /usr/local/bin
switched blacklist from ath_pci to ath5k in
/etc/modprobe.d/blacklist-ath_pci.conf
--
[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/439011
[2] http://dimitar.me/?p=616
[3] http://blog.rtg.in.ua/2008/11/madwifi-hal-dkms-mini-how-to.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment