用于排查 Intel 8265/8275 等无线网卡在 Linux 下出现日志报错、速度慢、掉线或假死的问题。先确认网卡型号、内核版本和固件,再一次只改一个参数;这些命令是排查流程,不代表某个参数对所有硬件都有效。
原笔记最具体的场景是 802.11n 上行速度只有约 20 Mbps,留下了发送聚合、蓝牙共存和省电设置三条排查方向,但没有前后测速输出。下面保留对应命令,并把如何比较结果、如何撤回改动补齐。
适用场景
- Intel 无线网卡识别正常,但连接速度低或抖动大。
iwlwifi内核日志出现报错或 firmware 加载异常。- 802.11n 模式下上行吞吐过低。
- 需要临时重载驱动验证问题是否和参数有关。
1. 诊断命令
uname -a
lspci -nnk | grep -i -A3 'network\|wireless\|0280'
# 检查软硬锁状态
rfkill list all
# 检查内核 iwlwifi 日志
sudo dmesg | grep -i -E 'wlp|iwl'
# 查看信号与连接详情
iw dev
iw dev wlp1s0 link
iwconfig wlp1s0wlp1s0 是原记录中的接口名,换机器时先看 iw dev 输出。iwconfig 来自旧的 wireless-tools,系统没装时可以使用 iw 查询连接和省电状态。连接显示的 bitrate 是无线链路速率,不等于应用实际吞吐;还要记录同一 AP、频段、信号和测试方向,避免把换频段的结果归因于驱动参数。
2. 先核对参数,再选择一项验证
先检查当前内核支持的选项,以及配置目录里有没有重复设置:
modinfo -p iwlwifi | grep -E '11n_disable|bt_coex_active|swcrypto'
grep -R '^options iwlwifi' /etc/modprobe.d如果 /etc/modprobe.d/iwlwifi.conf 已存在,修改前先备份,且不要覆盖之前的备份:
sudo cp -a /etc/modprobe.d/iwlwifi.conf /etc/modprobe.d/iwlwifi.conf.before-test发送聚合:11n_disable=8
原记录用追加配置的方式测试:
# 旧记录:针对部分 802.11n 吞吐异常,11n_disable=8 表示 enableTXaggregation,
# 不是“启用天线聚合”;必须以当前硬件和内核行为验证:
echo "options iwlwifi 11n_disable=8" | sudo tee -a /etc/modprobe.d/iwlwifi.confiwlwifi 的参数位定义中,值 8 对应 IWL_ENABLE_HT_TXAGG,也就是发送帧聚合。当前实现本来就可能默认启用它,所以不能只看参数名称,就认定设置后一定能提升速度。
tee -a 每执行一次就追加一行;文件里已有该参数时,应编辑已有行,不要重复运行来回堆叠设置。
蓝牙共存:bt_coex_active=0
原来的另一条命令是:
echo "options iwlwifi bt_coex_active=0" | sudo tee -a /etc/modprobe.d/iwlwifi.conf它关闭 Wi-Fi/蓝牙共存处理。驱动源码的 bt_coex_active 说明记录了部分平台因共存问题无法关联 AP 的情况,但这不能推出“不用蓝牙就应该关闭”。先恢复上一项实验,再比较蓝牙开启、关闭及这项参数的影响,记录 Wi-Fi 和蓝牙两边的表现。
临时关闭省电
原记录使用:
sudo iwconfig wlp1s0 power off使用 iw 时,对应查询和设置为:
iw dev wlp1s0 get power_save
sudo iw dev wlp1s0 set power_save off这是当前接口的运行时设置,重新连接或网络管理器重新应用连接配置后可能变化,测试前后都要查询。恢复时设置回实验前记录的值;原先为 on 时用 sudo iw dev wlp1s0 set power_save on。
原笔记还把 swcrypto=1 标记为“严重掉速”。它涉及软件加密,但记录没有对照数据,不能把这个判断推广到所有硬件,也不应把它与上述参数同时加入一次实验。
3. 手动干预重启驱动
先在本地控制台或有线连接上操作。卸载无线驱动会断开经这张网卡建立的 SSH 会话;下面针对使用 iwlmvm 的设备,先用 lsmod | grep -E 'iwlmvm|iwldvm|iwlwifi' 确认实际依赖。
sudo modprobe -r iwlmvm iwlwifi
sudo modprobe iwlwifi
sudo modprobe iwlmvm卸载 iwlwifi 前要确认 iwlmvm 等依赖模块和 NetworkManager 状态;远程 SSH 会随无线断开,不能无条件使用 modprobe -r --force。在本地控制台或有线连接上操作更稳妥。重新加载后再次执行 iw dev wlp1s0 link、dmesg 和吞吐测试,确认参数是否真的生效。
4. 比较吞吐与恢复配置
重载或重启后读取实际参数,再查看有没有新增的固件错误:
sudo cat /sys/module/iwlwifi/parameters/11n_disable
sudo cat /sys/module/iwlwifi/parameters/bt_coex_active
sudo dmesg | grep -i -E 'iwl|firmware'在同一局域网另一台机器启动 iperf3 服务端,从无线客户端测两个方向:
iperf3 -c HOST -t 30
iperf3 -c HOST -t 30 -RHOST 填服务端的局域网地址。完整的服务端准备和结果读取见iperf3 网络测试文章。每次只改一项,保持位置、AP 和频段一致;既看速率,也看重连、掉线和内核错误是否变化。
参数没有改善或出现新问题时,从配置文件中移除本次添加的选项,保留发行版原有设置,再按同样方式重载或重启。若该文件在实验中没有其他新改动,也可以恢复前面的备份。配置已打包进 initramfs 的系统还需要按发行版方式更新 initramfs,避免重启后继续读取旧值。