Qualcomm Atheros QCA6174
- Review/update limitations in the #Firmware section
To make it work it needs the kernel driver and firmware.
[*] 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.
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:
/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.