QCA9880 小记
OpenWrt 下 QCA9880 使用.
参考资料
https://www.kdaye.com/ap-5ghz-ath10k/
https://blog.stdio.io/?p=913
https://wireless.wiki.kernel.org/en/users/Drivers/ath10k/firmware
https://blog.keybrl.com/boring-2018-11-02-router1-hardware/更新
1
19.01.30 初始
导语
有时间再整理.,这一拖就到现在了.
入的是 QCA9880 3x3 1300Mbps.放到现在除了不是 wifi6 以外也非常够用了.
使用场景区分,大概有两种
- Openwrt + QCA9880
- 对 AP 有更多掌控,有 web 的管理,复杂的配置更方便.
- 代价是如果有路由以外的需求,就必须使用虚拟机了,还附带编译的坑.
- Linux + QCA9880
- 宿主机直接驱动 QCA9880,这样在驱动上受到限制少(DFS 等),没有虚拟化的坑.
- 代价是一切都是命令行,如果有路由需求就玩完了.
考虑到后面还有路由等需求,最后还是暂定 Openwrt + QCA9880.虚拟化选择 kvm 通过 pve 管理.
编译
前置条件
- 宿主机已经识别 QCA9880,可以通过
lspci
查看. - 已经设置了 PCI 直通.Pve 的 PCI 直通详情见 Proxmox VE 合集
Openwrt 的编译流程就不说了.详情见wsl2 编译 Openwrt x86_64_kvm
具体来说要 QCA9880 对应 make menuconfig
选项有
Firmware
- ath10k-firmware-qca988x
- ath10k-firmware-qca988x-ct
- ath10k-firmware-qca988x-ct-full-htt
Kernel modules -> Wireless Drivers
- kmod-ath10k
- Enable LED support
- Enable thermal sensors and throtting support (选了编译不过)
- kmod-ath10k-ct
- Enable LED support
- kmod-ath10k-ct-smallbuffers
介绍
ath10k firmware 的介绍
关于 ath10k-ct 和 ct-Firmware 的介绍.简略看了一下比官方固件多了一些功能,特别是支持 802.11r,如果有组 mesh 的需要,只能用 ct.
ct 与 ct-full-htt 的区别是 ct-full-htt 多了 CT-HTT-MGT 支持,在一些 github 的介绍中说 ct-full-htt 或许会工作更好.
至于 kmod-ath10k-ct-smallbuffers 是为低内存的路由准备的,其他与 kmod-ath10k-ct 保持一致.
组合
到底组合有两种
- ath10k-firmware-qca988x-ct/ct-full-htt + kmod-ath10k-ct
- ath10k-firmware-qca988x + kmod-ath10k
测试,编译后安装对应 ipk 组合,用 iperf3 测吞吐,ping 一段时间测稳定.
结果
- firmwaret ct / ct-full-htt 的区别不大.选 ct-full-htt 就行.
- 两组的吞吐量差距不大,ct 好一点.
- 可能是我硬件的关系 ct 有时 ping 会丢包,非 ct 不会.
最后我暂时没有组 mesh 的需要,选择了 ath10k-firmware-qca988x + kmod-ath10k 的组合.
题外话
- 查看了一下 firmware 对应的 Makefile,发现非 ct 的 firmware 在19年有一次更新.而根据 ct 的介绍页面,ct 的 firmware 这两年就没更新过,可能是这个区别.
结束语
驱动起 QCA9880 并不麻烦,但是没接触过 Openwrt 是真的难.
后面还有一篇 rtl8812au 和 rt3070 的水文…