Hi all,
After my discussion on Using 5/10 Mhz channels with IPQ-4019 with ath10k
I managed to get ath10k working with 5/10 Mhz and seems there are a lot of details and there is no place where it is organized so I figured I would write a guide and summarize it in one place so in the future people don't need to gather all this information along with misinformation.
Introduction
Lower than 20Mhz is supported by ath10k based devices with appropriate FW, there are 3 main variants of the ath10k FW:
- Qualcomm provided FW that can be found in
- Candela Tech’s (CT) FW which is based on 10.1 or 10.4 code base from Qualcomm with changes done by CT
- DD-WRT provided by BrainSlayer FW, it is loosely based on CT codebase with changes by BrainSlayer
Only DD-WRT FW fully supports all chipsets, CT supports some chips that have the 5/10Mhz builtin (mainly industrial versions). It is recommended to use DD-WRT only.
OpenWRT (since ver 19) moved to using CT FW and driver (ath10k-ct) by default so if you are using a recent version you are already using CT FW.
Steps with openwrt:
-
Download openwrt 23.05.2 source from github (other versions of OpenWRT might be OK but I tested with it. Kernel version 5.15)
-
Apply the following patches from arden project:
-
https://github.com/aredn/aredn/blob/main/patches/701-extended-spectrum.patch
-
https://github.com/aredn/aredn/blob/main/patches/742-5-and-10mhz-ath10k-ct-support.patch
-
https://github.com/aredn/aredn/blob/main/patches/743-mac80211-ath10k.patch
-
Build openwrt
-
Download dd-wrt FW from here (IPQ4019 for example) - https://svn.dd-wrt.com/export/HEAD/src/router/mac80211/ath10k-firmware-38eeda3ae6f90fde5546bdd48ee4ff3090f238c0/ath10k/QCA4019/hw1.0/firmware-5.bin
-
Copy to /lib/firmware/ath10k/ct-firmware-5.bin inside the device
-
add in /etc/config/wireless under the wifi-device - option "chanbw" "10"
-
reboot and enjoy
More information about chanbw - https://openwrt.org/docs/guide-user/network/wifi/basic
Supported chipsets:
I only tested 8Devices Habanero which uses Qualcomm IPQ4019 but per BrainSlayer others should be also compatible.
If you managed to get it working with other devices/chips let me know and I will add it to this list.
If it doesn't then maybe your chipid isn't whitelisted by BrainSlayer and he needs to add it. Follow the next section and then post it on forum.openwrt.org and mention BrainSlayer
How to obtain chipid:
- Do dmesg | grep ath10k and look for the following line
- [ 34.588386] ath10k_ahb a800000.wifi: wmi print 'ChipType 1100 ChipTypeID 30 BoardID 11 P 48/48 V 16 K 144 PH 176 T 186 msdu-desc: 2500 sw-crypt: 0 ct-sta: 0 half/quarter'