文章目录
  1. 5G网卡
  2. 2.4G网卡
  3. 固件&驱动
  4. 鸣谢

我一直希望软路由可以直接提供无线功能 而不是非得依赖于AP,所以我在NetKit固件内置了所需的网卡驱动 但随之而来的是5G网卡温度过高 2.4G网卡因USB供电不足而时常掉线,所以我打算再优化下内部布局 以及实现5V的独立供电。

我机器内置的5G网卡是公版QCA9880 2.4G网卡是RT3070l+6669放大器。

5G网卡

QCA9880旧版布局

由于机器的minipcie接口是半高的 而且位于msata硬盘接口的下方 无法安装全高的公版QCA9880 所以原先的操作 是使用FPC软排线将其延长 放置于硬盘一侧。

QCA9880新版布局

为解决QCA9880散热问题 我将其贴在一侧的金属外壳上 使用导热硅脂填充空隙 并在后方放置泡沫海绵施加压力,虽然FPC排线被我折成了诡异的形状 但与机器的链接还是稳定的。

2.4G网卡

RT3070l旧版布局

原先RT3070l我是随意塞在了角落 使用单个板载usb2.0接口连接,但随之而来的是无线极不稳定 掉线成为日常。

网卡掉线时Openwrt给出的错误
RT3070l新版布局

为解决RT3070l掉线问题,我与QCA9880一样 将其固定在边框 以增强其散热,同时在外壳开孔 增加了一个USB typec接口单独对其提供5V供电;外部供电的负极直接连通金属外壳 省一根线的同时实现了接地。

typec母口是从小米4c手机尾插副板上切下来的 使用焊锡 将其牢牢固定在外壳内侧;3mm的后壳还是有点厚的 开孔废了我挺大劲。

当然我也考虑过直接内置一个DC转5V的模块对网卡供电,但是这要往主板上进行飞线 我不太愿意,再者后续我可以对这Typec接口实现完整的usb功能。

固件&驱动

由于3070l网卡的驱动在openwrt的主线版本(R19.07)中存在bug 所以我移植了R18版中的驱动mac80211,但是 tmd这破网卡在外部供电+旧版驱动的情况下还是会掉线。

我在后续的排查中 终于得出了这破网卡稳定工作的配置。

1.一定要关闭 802.11w 管理帧保护,将其从可选 改为已禁用。不然你可以搜索到该SSID信号 但永远无法建立连接,导致这的主要原因是该网卡型号太旧了 不支持ieee80211w。

2.无线信道选择 6 (一天左右掉线)或 12 (个人更推荐) 带宽选择20MHz 其它信道会在几小时后引发错误 导致网卡掉线 (原因不明),因为驱动程序缺陷可以设置并应用40MHz带宽但无法正确协商;无线的地区建议选择AU 以开启该网卡离谱的36dBm传输功率。

3.由于这网卡年代久远 所以802.11G和802.11N的模式下的传输速度半斤八两 (现阶段) ,但我个人推荐使用802.11N模式 至少相对而言协议更新一点 而且如果以后驱动程序完善802.11N则可以协商到150Mbps.

鸣谢

https://bugzilla.kernel.org/show_bug.cgi?id=193481