Wifi 停止工作,“未知符号 wireless_nlevent_flush”

Wifi 停止工作,“未知符号 wireless_nlevent_flush”

截至今天下午,我的 Dell XPS 13 上的 WiFi 停止工作(运行内核为 4.4.0-1-amd64 的 Debian sid)。lspci检测到我的 wifi 卡,但ifconfig -a仅显示环回接口。

我尝试插入最近在这台笔记本电脑上使用的 USB wifi 适配器,但它也没有被识别为网络接口。在启动过程中和插入 USB WiFi 加密狗后,都会出现以下消息dmesg

cfg80211: Unknown symbol wireless_nlevent_flush (err 0)

cfg80211听起来它将用于配置 802.11(即 wifi),所以我怀疑这个内核模块没有正确加载。事实上,如果我尝试这样做,modprobe cfg80211我会收到以下错误:

modprobe: ERROR: could not insert 'cfg80211':? Unknown symbol in module, or unknown parameter (see dmesg)

并检查dmesg我看到与上面相同的消息。

谷歌搜索"unknown symbol wireless_nlevent_flush"产生的结果为零,尽管谷歌搜索wireless_nlevent_flush似乎暗示它与wext某种方式有关。一页建议rfkill必须先加载cfg80211,但rfkill已经加载了。如果有任何建议,我将非常感激。

答案1

您的cfg80211模块和正在运行的内核不兼容。内核中的内部编程接口变化相当频繁,因此当您升级内核时,需要保持模块同步。 (例外是一些专门维护的树外模块,以便在大范围的内核版本上工作。)

如果自上次重新引导后升级了内核软件包,则您可能有一个正在运行的内核,该内核不再与磁盘上的内核版本匹配,因此modprobe正在尝试加载更新内核的模块。确保不要卸载linux-image-…与正在运行的内核对应的软件包。您可以使用以下命令检查正在运行的内核版本uname -r;根据 Debian 的软件包命名约定,linux-image-$(uname -r)应该安装该软件包。

如果您已删除该软件包,则需要重新安装或重新启动。要重新安装,请检查 中是否仍然有该软件包/var/cache/apt/archives。如果没有,请在以下位置查找该包快照.debian.org(与匹配的版本版本包的linux-image-…版本,即 的第二列dpkg -l,它并不总是与名称中包含的版本完全相同)。

相关内容