Qualcomm Atheros QCA6174
- Review/update limitations in the #Firmware section
To make it work it needs the kernel driver and firmware.
[*] Networking support ---> [*] Wireless ---> <*> cfg80211 - wireless configuration API [ ] nl80211 testmode command [ ] enable developer warnings [ ] cfg80211 regulatory debugging [ ] cfg80211 certification onus [*] enable powersave by default [ ] cfg80211 DebugFS entries [ ] use statically compiled regulatory rules database [ ] cfg80211 wireless extensions compatibility <*> 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.
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.
At the time of writing, =sys-kernel/linux-firmware-20161205 doesn't seem to work with the Atheros wireless card. One manual step is still required to update to a working firmware. First backup the previous one.
mv /lib/firmware/ath10k/QCA6174/hw3.0/board.bin /lib/firmware/ath10k/QCA6174/hw3.0/board.bin.bak
Then download the working one.
wget https://github.com/FireWalkerX/ath10k-firmware/raw/master/QCA6174/hw3.0/board-2.bin -O /lib/firmware/ath10k/QCA6174/hw3.0/board.bin
This is what you should end up having.
94f69f28b8901bc7e655347decc26d4bb9cd8cd1ec5e60c44a9bdd9a4023017e /lib/firmware/ath10k/QCA6174/hw3.0/board.bin 1a8d225818b46986fc4f615594fbe448fa820618590d6902c8f844bb37cda667 /lib/firmware/ath10k/QCA6174/hw3.0/board.bin.bak
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:
/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