共计 2861 个字符,预计需要花费 8 分钟才能阅读完成。
前言
一直有台笔记本平常架设了一些小服务在上面, 上下班随时带着方便日常解决家里电脑与公司电脑环境不一致的问题, 编码采用统一的服务 系统用的 archlinux gnome 桌面环境. 笔记本没有网口一直用的 wifi 平常都是用的 vscode ssh 远程在上面操作. 直到最近两个月, 感觉ssh远程敲命令都是一卡一卡的, 找了半天发现公司千兆的内网环境, 我笔记本只能跑到100多kb的速度. 为此我还怀疑了公司的路由器半天… 甚至偷偷重启了好几次… 最终确定… 是俺们的电脑问题;
固件相关
网卡硬件信息 lspci -nnk | grep 0280 -A3
01:00.0 Network controller [0280]: Intel Corporation Wireless 8265 / 8275 [8086:24fd] (rev 78)
Subsystem: Intel Corporation Device [8086:9010]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
网卡状态 rfkill list all
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
内核启动日志
sudo dmesg | grep -i -E 'wlp|iwl'
# out
[ 3.025707] iwlwifi 0000:01:00.0: loaded firmware version 36.ad812ee0.0 8265-36.ucode op_mode iwlmvm
[ 3.281255] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AC 8265, REV=0x230
[ 3.338869] iwlwifi 0000:01:00.0: base HW address: d4:6d:6d:fb:aa:68
[ 3.413352] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[ 3.417310] iwlwifi 0000:01:00.0 wlp1s0: renamed from wlan0
[ 8.373670] wlp1s0: authenticate with b0:95:8e:ca:81:6c
[ 8.383052] wlp1s0: send auth to b0:95:8e:ca:81:6c (try 1/3)
[ 8.388350] wlp1s0: authenticated
[ 8.389860] wlp1s0: associate with b0:95:8e:ca:81:6c (try 1/3)
[ 8.399493] wlp1s0: RX AssocResp from b0:95:8e:ca:81:6c (capab=0x411 status=0 aid=5)
[ 8.402484] wlp1s0: associated
[ 8.567569] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
iwl模块加载情况
lsmod | grep iwl
# out
iwlmvm 487424 0
mac80211 1163264 1 iwlmvm
iwlwifi 421888 1 iwlmvm
cfg80211 1036288 3 iwlmvm,iwlwifi,mac80211
一番查下来驱动正确的加载了各项正常, 网速特别慢 笔记本距离 ap 直线距离十米 中间无墙, 手机连接wifi也可以跑满带宽, 这就很神奇.
运行环境
安装 iwconfig
工具
sudo pacman -S wireless_tools
查看wifi网络设备状态
iwconfig wlp1s0
# out
wlp1s0 IEEE 802.11 ESSID:"nuotuo_5G"
Mode:Managed Frequency:5.22 GHz Access Point: B0:95:8E:CA:81:6C
Bit Rate=650 Mb/s Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=45/70 Signal level=-65 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:12 Invalid misc:5987 Missed beacon:0
发现 Tx excessive retries:12 以及 Invalid misc:5987 很高
参考 archlinux 相关讲解 iwlwifi
#蓝牙共存 此修改无太大影响
echo "options iwlwifi bt_coex_active=0" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
# 无用 并且会严重降低速率
echo "options iwlwifi 11n_disable=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
echo "options iwlwifi swcrypto=1" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
# 修改后从参数稳定性情况来说有一定改善
# 在 802.11n 模式下遇到上行速度慢的问题,例如 20Mbps,请尝试启用天线聚合:
echo "options iwlwifi 11n_disable=8" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
失败总结
然而即便设置了天线聚合 依旧无法解决这个问题 网速提升不明显 甚至还有一定程度的掉速
忙活了一整个下午最终让我搜索到了这个bug反馈 bugzilla.kernel.org bug是(2019-05-25 23:06)创建的直到现在(2021-6-16 15:11:52)最新内核问题依旧
现在最新的可能的解决办法是bugzilla.kernel.org archlinux 用户可以安装由 mikezackles 创建的aur包linux-beacon 然鹅我用 yay 安装了半天一直卡在签名那里. 大概是因为网络问题吧…
yay -S linux-beacon
#out
...
:: PGP 密钥需要导入:
-> ABAF11C65A2970B130ABE3C479BE3E4300411886, 需要: linux-beacon
-> 647F28654894E3BD457199BE38DBBDC86092693E, 需要: linux-beacon
-> A2FF3A36AAA56654109064AB19802F8B0D70FC30, 需要: linux-beacon
==> 导入? [Y/n]
:: 正在用 gpg 导入密钥...
然后我就放弃了,打算买个USB有线网卡用着吧, 总结就是 即便内核中有 iwlwifi intel 维护的wifi驱动, 但对旧硬件,或者一些比较特殊条件下遇到的问题,一般都没人解决, ps: linux 对桌面的支持真的很滞后.