NOTE: this page is for archival only, see the note at the end of the page.

Go back –> ath10k

ath10k backports releases

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.

Compiling custom ath10k backports

For developers, or users wanting to try out the bleeding edge ath10k, it's possible to compile backports on your own:

  1. Clone the backports tree:
    • git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/backports.git
  2. Clone the ath.git containing latest ath10k:
    • git clone https://github.com/kvalo/ath.git
  3. Go to the backports tree:
    • cd backports
  4. create file copy-list.ath with this content:
    • COPYING
      MAINTAINERS
      
      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
      
      net/Makefile
      net/Kconfig
      net/wireless/
      net/mac80211/
      
      drivers/net/wireless/ath/
      drivers/net/wireless/mac80211_hwsim.c
      drivers/net/wireless/mac80211_hwsim.h
  5. Create the backports output tree:
    • ./gentree.py --verbose --clean --git-revision master \
          --copy-list copy-list.ath ../ath ../backports-output 
  6. Go to the backports output tree:
    • cd ../backports-output/
  7. At the time of this writing mac80211 led support failed to compile, disable that:
    • sed -i s/CPTCFG_MAC80211_LEDS=y/CPTCFG_MAC80211_LEDS=n/ defconfigs/ath10k
  8. Create .config:
    • make defconfig-ath10k
  9. Compile modules:
    • make -j 10

To run ath10k:

  1. First check if there are drivers using cfg80211 running:
    • lsmod | grep cfg80211
  2. Remove all such drivers, for example:
    • sudo modprobe -r ath9k
  3. unload mac80211 and cfg80211:
    • sudo modprobe -r mac80211 cfg80211
  4. Make sure that ath10k firmware is installed. The location depends on distro, for example on Ubuntu it's /lib/firmware:
    • $ ls -l /lib/firmware/ath10k/QCA988X/hw2.0/
      total 508
      -rwxr-xr-x 1 root root   2116 Oct 22 11:01 board.bin*
      -rw-r--r-- 1 root root 254564 Oct 22 11:01 firmware-2.bin
      -rwxr-xr-x 1 root root 249093 Oct 22 11:01 firmware.bin*
      -rwxr-xr-x 1 root root   5402 Oct 22 11:01 otp.bin*
      $
  5. Now you can load the all backported modules:
    • 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
  6. Now ath10k is loaded and can be used normally:
    • [ 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

This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v9, v8, v7, v6, v5, v4, v3, v2, v1