Ubuntu 22.04下Intel Wireless-AC 9260网卡唤醒后无法启用(SIOCSIFFLAGS输入输出错误)
我碰到过不少朋友遇到类似的Intel无线网卡WoWLAN唤醒后硬件异常的问题,结合你的Intel Wireless-AC 9260和Ubuntu 22.04环境,给你几个针对性的排查和修复思路:
1. 先尝试重置无线网卡硬件状态
你遇到的SIOCSIFFLAGS Input/output error大概率是唤醒后网卡硬件没完成正确初始化,先试试用rfkill重置网卡状态:
sudo rfkill block wifi sudo rfkill unblock wifi
之后再尝试启用网卡,或者用NetworkManager的命令重新连接:
nmcli device connect wlp4s0
很多时候这种简单的硬件重置就能解决临时的接口异常。
2. 调整WoWLAN的配置参数
你当前用的命令是iw phy0 wowlan enable magic-packet disconnect,可以试试去掉disconnect参数——部分Intel网卡在“断开连接时唤醒”的模式下,唤醒后容易出现状态紊乱:
sudo iw phy0 wowlan disable sudo iw phy0 wowlan enable magic-packet
重新设置后再测试休眠→唤醒的完整流程,看是否还会出现网卡消失的情况。
3. 更新Intel无线网卡驱动
Intel Wireless-AC 9260依赖iwlwifi驱动,Ubuntu 22.04默认的固件版本可能存在WoWLAN的兼容性bug,试试重装并更新linux-firmware:
sudo apt update && sudo apt install --reinstall linux-firmware
重启系统后再测试唤醒功能,新固件往往能修复这类硬件层面的唤醒异常。
4. 让NetworkManager接管WoWLAN配置
手动用iw设置的WoWLAN参数可能和NetworkManager的自动管理逻辑冲突,试试让NetworkManager来接管:
新建(或编辑)NetworkManager的配置文件/etc/NetworkManager/conf.d/wowlan.conf,添加以下内容:
[device] wifi.wake-on-wlan=magic
然后重启NetworkManager服务:
sudo systemctl restart NetworkManager
之后不要再用iw手动配置WoWLAN,让系统统一管理,避免参数冲突。
5. 临时禁用网卡高级特性排查
部分Intel无线网卡的802.11n/ac特性在唤醒后会出现兼容性问题,你可以临时禁用这些特性来测试:
编辑/etc/modprobe.d/iwlwifi.conf,添加一行配置:
options iwlwifi 11n_disable=1 swcrypto=1
更新initramfs并重启系统:
sudo update-initramfs -u sudo reboot
如果这样能解决问题,再逐步调整参数(比如只禁用11ac:11ac_disable=1),找到不影响日常使用的最优解。
另外补充一下:你用ethtool无法设置WOL是正常的——ethtool主要针对有线网卡,无线网卡的唤醒(WoWLAN)本身就是通过iw工具配置的,不用纠结这个点。
备注:内容来源于stack exchange,提问作者maousi

