Qualcomm Atheros QCA6174
The Qualcomm Atheros QCA6174 is a 802.11ac Wireless Network Adapter which is used in some laptops.
To make it work it needs the kernel driver and firmware.
Activate at least cfg80211 (CONFIG_CFG80211) and mac80211 (CONFIG_MAC80211).
[*] Networking support ---> [*] Wireless ---> <M> cfg80211 - wireless configuration API [ ] nl80211 testmode command [ ] enable developer warnings [ ] cfg80211 certification onus [*] enable powersave by default [ ] cfg80211 DebugFS entries [ ] support CRDA [ ] cfg80211 wireless extensions compatibility <M> Generic IEEE 802.11 Networking Stack (mac80211) [*] Minstrel [*] Minstrel 802.11n support [ ] Minstrel 802.11ac support Default rate control algorithm (Minstrel) ---> [ ] Enable mac80211 mesh networking (pre-802.11s) support -*- Enable LED triggers [ ] Export mac80211 internals in DebugFS [ ] Trace all mac80211 debug messages [ ] Select mac80211 debugging features ----
Minstrel and its 802.11n support is a rate control algorithm. Some wireless drivers might require it enabled.
In case the wireless configuration API (CONFIG_CFG80211) is built into the kernel (
<*>) instead as a module (
<M>), the driver won't be able to load regulatory.db from /lib/firmware resulting in broken regulatory domain support. Please set CONFIG_CFG80211=m or add regulatory.db and regulatory.db.p7s to CONFIG_EXTRA_FIRMWARE.
Enable Atheros 802.11ac wireless cards support (CONFIG_ATH10K) and Atheros ath10k PCI support (CONFIG_ATH10K_PCI) as modules
Device Drivers ---> [*] Network device support ---> [*] Wireless LAN ---> [*] Atheros/Qualcomm devices <M> Atheros 802.11ac wireless cards support <M> Atheros ath10k PCI support
Set it as a module
<M> as shown here. After changes on kernel configuration do not forget to rebuild the kernel.
After rebuilding the kernel and reboot the selected options could be verified (needs Kernel/IKCONFIG support) like
zgrep 'ATH10K' /proc/config.gz
lspci should then display the adapter like:
02:00.0 Network controller : Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32) Subsystem: Bigfoot Networks, Inc. QCA6174 802.11ac Wireless Network Adapter [1a56:1535] Flags: bus master, fast devsel, latency 0, IRQ 141 Memory at ed200000 (64-bit, non-prefetchable) [size=2M] Capabilities:  Power Management version 3 Capabilities:  MSI: Enable+ Count=8/8 Maskable+ 64bit- Capabilities:  Express Endpoint, MSI 00 Capabilities:  Advanced Error Reporting Capabilities:  Virtual Channel Capabilities:  Device Serial Number 00-00-00-00-00-00-00-00 Capabilities:  Latency Tolerance Reporting Capabilities:  L1 PM Substates Kernel driver in use: ath10k_pci Kernel modules: ath10k_pci
In case the driver is built into the kernel (
<*>) instead of as a module (
<M>), then the firmware needs to be built into the kernel as well.
Do not forget to rebuild the kernel after changing its configuration.
The Qualcomm Atheros Killer N1525 Wireless-AC requires Linux firmware files.
Find out more on GitHub kvalo/ath10k-firmware.
Network interface name (optional)
Network device names such as eth0 or wlan0 as provided by the kernel are normally changed on system boot (see dmesg) by the /lib/udev/rules.d/80-net-name-slot.rules udev rule.
To keep the classic naming this rule can be overwritten with an equally named empty file in the /etc/udev/rules.d directory:
After a reboot with the new kernel or after loading the modules, the device can be checked for availability by using following methods:
- Using the /sys file system
- Using the ip command
- Using the ifconfig command
- Using the iw command
/sys file system
Get the device name by listing the /sys/class/net directory contents using ls -al or the tree command (provided by the app-text/tree package):
/sys/class/net/ ├── enp2s14 -> ../../devices/pci0000:00/0000:00:1e.0/0000:02:0e.0/net/enp2s14 ├── lo -> ../../devices/virtual/net/lo ├── sit0 -> ../../devices/virtual/net/sit0 └── wlp8s0 -> ../../devices/pci0000:00/0000:00:1c.0/0000:08:00.0/net/wlp8s0
To obtain the device name and verify that the wireless card is detected, execute the following ip command:
3: wlan0: ...
The ifconfig command is provided through the sys-apps/net-tools package. Use ifconfig -a to list all detected network cards, even those that are not enabled/active yet:
A network card can be activated as follows:
ifconfig -v wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill WARNING: at least one error occurred. (-1)
In this example, enabling the wireless card failed as a radio frequency kill state is set (usually to keep power consumption at bay and not connect by accident to a wireless network).
If the wireless network card driver supports the nl80211 stack, then the iw command as offered by the net-wireless/iw package can show the detected wireless cards:
phy#0 Interface wlan0 ifindex 4 type managed
- https://gist.github.com/harrykipper/d1bedb234c4af0692f7ccd33329a02d7 - Unofficial patch to increase TX rate to more moderate speeds.
- Official upstream ath10k-firmware by Kalle Valo on GitHub
- Kernel drivers on cateee.net
- patchwork.kernel.org — Patchwork ath10k project mail archive.