Go back –> ath10k
Backports project can be used to run latest ath10k driver on older kernels. For normal users it's recommended to use official backports releases or the ones provided by the distro.
Here are simple instructions how to install ath10k from a backports release:
make defconfig-ath10k
make
sudo make install
$ lsmod | grep compat compat 36104 6 iwldvm,iwlwifi,ath10k_pci,ath10k_core,mac80211,cfg80211
$ dmesg | grep backport [ 23.210662] Loading modules backported from Linux version next-20140221-0-gfaa2e6f [ 23.210665] Backport generated by backports.git backports-20140221-0-g8e94650
See backports documentation for more info.
If the host kernel is v3.2 or older, even when using backports projects, hostapd is forced to use cooked monitor interface (mon.wlan0) in AP mode. This might create some performance issues and that's why it's recommended to port the commit below to the host kernel so that hostapd does not need to use cooked monitor interface.
commit 6e3e939f3b1bf8534b32ad09ff199d88800835a0 Author: Johannes Berg <johannes.berg@intel.com> Date: Wed Nov 9 10:15:42 2011 +0100 net: add wireless TX status socket option
For developers wanting to make changes to ath10k it's possible to create backports releases on your own:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
cd backports
COPYING MAINTAINERS # This just defines some macros, simply take it include/linux/bitfield.h include/linux/average.h drivers/net/wireless/Kconfig drivers/net/wireless/Makefile include/linux/ieee80211.h include/linux/pci_ids.h include/linux/ath9k_platform.h include/uapi/linux/nl80211.h include/net/cfg80211.h include/net/cfg80211-wext.h include/net/ieee80211_radiotap.h include/net/lib80211.h include/net/mac80211.h include/net/regulatory.h include/net/codel.h include/net/codel_impl.h include/net/codel_qdisc.h include/net/fq.h include/net/fq_impl.h net/Makefile net/Kconfig net/wireless/ net/mac80211/ drivers/net/wireless/ath/ drivers/net/wireless/mac80211_hwsim.c drivers/net/wireless/mac80211_hwsim.h
./gentree.py --verbose --clean --git-revision master \ --copy-list copy-list.ath ../ath ../backports-output
cd ../backports-output/
sed -i s/CPTCFG_MAC80211_LEDS=y/CPTCFG_MAC80211_LEDS=n/ defconfigs/ath10k
make defconfig-ath10k
make -j 10
To run ath10k:
lsmod | grep cfg80211
sudo modprobe -r ath9k
sudo modprobe -r mac80211 cfg80211
sudo insmod compat/compat.ko sudo insmod net/wireless/cfg80211.ko sudo insmod net/mac80211/mac80211.ko sudo insmod drivers/net/wireless/ath/ath.ko sudo insmod drivers/net/wireless/ath/ath10k/ath10k_core.ko sudo insmod drivers/net/wireless/ath/ath10k/ath10k_pci.ko
[ 2162.207812] ath10k_pci 0000:05:00.0: PCI INT A disabled [ 2165.136293] ath10k_pci 0000:05:00.0: BAR 0: assigned [mem 0xf0000000-0xf01fffff 64bit] [ 2165.136320] ath10k_pci 0000:05:00.0: BAR 0: set to [mem 0xf0000000-0xf01fffff 64bit] (PCI address [0xf0000000-0xf01fffff]) [ 2165.136343] ath10k_pci 0000:05:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 [ 2165.136365] ath10k_pci 0000:05:00.0: setting latency timer to 64 [ 2165.140502] ath10k: MSI-X didn't succeed (1), trying MSI [ 2165.140606] ath10k_pci 0000:05:00.0: irq 44 for MSI/MSI-X [ 2165.140660] ath10k: MSI interrupt handling [ 2165.175112] ath10k: Hardware name qca988x hw2.0 version 0x4100016c [ 2166.343783] ath10k: UART prints disabled [ 2166.348550] ath10k: firmware 999.999.0.636 booted [ 2166.358939] ath10k: htt target version 2.1 [ 2166.362076] ath: EEPROM regdomain: 0x0 [ 2166.362080] ath: EEPROM indicates default country code should be used [ 2166.362083] ath: doing EEPROM country->regdmn map search [ 2166.362086] ath: country maps to regdmn code: 0x3a [ 2166.362089] ath: Country alpha2 being used: US [ 2166.362091] ath: Regpair used: 0x3a [ 2166.364798] cfg80211: Calling CRDA for country: US
To unload ath10k and backports:
sudo rmmod drivers/net/wireless/ath/ath10k/ath10k_pci.ko sudo rmmod drivers/net/wireless/ath/ath10k/ath10k_core.ko sudo rmmod drivers/net/wireless/ath/ath.ko sudo rmmod net/mac80211/mac80211.ko sudo rmmod net/wireless/cfg80211.ko sudo rmmod compat/compat.ko