Ubuntu24.04网络图标消失导致无法上网--排查得到原因:内核和驱动版本不匹配
@水墨不写bug
c++
//
// _oo0oo_
// o8888888o
// 88" . "88
// (| -_- |)
// 0\ = /0
// ___/`---'\___
// .' \\| |// '.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ''\---/'' |_/ |
// \ .-\__ '-' ___/-. /
// ___'. .' /--.--\ `. .'___
// ."" '< `.___\_<|>_/___.' >' "".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `_. \_ __\ /__ _/ .-` / /
// =====`-.____`.___ \_____/___.-`___.-'=====
// `=---='
//
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// 佛祖保佑 永无BUG
// 佛曰:
// 写字楼里写字间,写字间里程序员;
// 程序人员写程序,又拿程序换酒钱。
// 酒醒只在网上坐,酒醉还来网下眠;
// 酒醉酒醒日复日,网上网下年复年。
// 但愿老死电脑间,不愿鞠躬老板前;
// 奔驰宝马贵者趣,公交自行程序员。
// 别人笑我忒疯癫,我笑自己命太贱;
// 不见满街漂亮妹,哪个归得程序员?
一、背景
在部署一个新项目之后,突发奇想更新了内核?从结果来看是这样,这就导致我的Ubuntu24.04的内核版本直接跃迁到了linux-modules-6.17.0-14-generic,这是一个比24.04的官方内核新的版本。
而官方的24.04内核版本是:
bash
linux-modules-6.8.0-55-generic
这就导致了我的在新内核linux-modules-6.17.0-14-generic中无法识别网络模块的驱动。
于是就会出现这样的状况,运行一般的解决方法时,不起作用,仍然上不了网,这些方法包括:
1、重启网络服务
bash
sudo service NetworkManager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state#删除网络当前状态文件
sudo service NetworkManager start
sudo gedit /etc/NetworkManager/NetworkManager.conf
#在运行完上一行的命令后会弹出一个文本文件,将其中的false改成true
sudo service network-manager restart
2、Dock不稳定引起的问题
参考这篇文章:
问题描述: 1.有时开机WiFi图标消失,不能联网,重启后又恢复正常。2.锁屏一段时间,解锁后任务栏(Dock)消失。
解决方法:禁用 Dash to Dock扩展。
之前一直以为是 驱动 问题,但更换了好几次附加驱动,依旧没有用。之后一次偶然机会,我发现了"GNOME 扩展"的一个提示:扩展可能会引起性能和稳定性问题。如果您遇到系统问题建议禁用所有扩展。如图:

所以我就尝试先把Dash to Dock这个扩展给禁用了,结果这两个问题就再也没出现过了。
安装Dash to Dock扩展后,Dock栏就能实现类似Windows的点击最大化/最小化功能。我系统刚装好就迫不及待地安装了这个扩展,结果却遇到了问题。这让我意识到,在美化系统前应该先熟悉原生环境,否则出现问题都难以定位。不过作为桌面系统,Linux确实会遇到各种问题,但正是通过不断发现问题、解决问题,整个生态才能逐步完善。当然,如果不想折腾,Windows确实是更省心的选择。
版权声明:本文为CSDN博主「w--s」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:Ubuntu 24.04开机WiFi图标消失,解锁后任务栏(Dock)消失的一种解决方法
二、排查环境
那么接下来我就开始排查当前的环境问题:
bash
(base) ddsm@ddsm-Lenovo-ThinkBook-16p-Gen-4:~/桌面$ echo "=== 1. 网络接口列表 ==="
ip a
echo -e "\n=== 2. PCI 网卡设备 ==="
lspci -nn | grep -i net
echo -e "\n=== 3. USB 网卡设备 ==="
lsusb
echo -e "\n=== 4. NetworkManager 设备状态 ==="
nmcli device status
echo -e "\n=== 5. 网卡驱动与固件错误 ==="
sudo dmesg | grep -iE "firmware|fail|error|net|eth|wlan|enp|mlan" | tail -40
echo -e "\n=== 6. 内核网络模块加载情况 ==="
lsmod | grep -E "r816|r8125|e1000|igb|iwl|ath|b43|brcm|mt76|rtl"
echo -e "\n=== 7. 连通性测试(到网关和公网IP)==="
ping -c2 8.8.8.8
ping -c2 $(ip route | grep default | awk '{print $3}' | head -1)
echo -e "\n=== 8. DNS 配置 ==="
which lshw >/dev/null && sudo lshw -C network || echo "lshw 未安装,跳过"
=== 1. 网络接口列表 ===
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
=== 2. PCI 网卡设备 ===
00:14.3 Network controller [0280]: Intel Corporation Raptor Lake PCH CNVi WiFi [8086:51f1] (rev 01)
=== 3. USB 网卡设备 ===
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 27c6:659a Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Bus 003 Device 003: ID 30c9:00a9 Luxvisions Innotech Limited Integrated RGB Camera
Bus 003 Device 004: ID 30fa:0400 USB Optical Mouse
Bus 003 Device 005: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 002: ID 17ef:38ac Lenovo USB
=== 4. NetworkManager 设备状态 ===
DEVICE TYPE STATE CONNECTION
lo loopback 连接(外部) lo
=== 5. 网卡驱动与固件错误 ===
[ 0.145335] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145336] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS01._PLD], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145338] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145339] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145359] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS02._UPC], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145361] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145362] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145363] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS02._PLD], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145364] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145365] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145386] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS03._UPC], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145387] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145388] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145389] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS03._PLD], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145391] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145392] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145412] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS04._UPC], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145414] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145415] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 0.145416] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.XHCI.RHUB.SS04._PLD], AE_ALREADY_EXISTS (20250404/dswload2-326)
[ 0.145417] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20250404/psobject-220)
[ 0.145419] ACPI: Skipping parse of AML opcode: Method (0x0014)
[ 1.030015] NetLabel: Initializing
[ 1.030015] NetLabel: domain hash size = 128
[ 1.030015] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 1.030024] NetLabel: unlabeled traffic allowed by default
[ 1.030048] NET: Registered PF_MCTP protocol family
[ 1.062679] NET: Registered PF_INET protocol family
[ 1.078242] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 1.078250] NET: Registered PF_XDP protocol family
[ 1.156820] drop_monitor: Initializing network drop monitor service
[ 1.156943] NET: Registered PF_INET6 protocol family
[ 1.157282] NET: Registered PF_PACKET protocol family
[ 1.247410] RAS: Correctable Errors collector initialized.
[ 1.261308] PM: genpd: Disabling unused power domains
[ 3.105260] systemd[1]: Mounting snap-firmware\x2dupdater-210.mount - Mount unit for firmware-updater, revision 210...
[ 3.106418] systemd[1]: Mounting snap-firmware\x2dupdater-216.mount - Mount unit for firmware-updater, revision 216...
[ 3.282832] wmi_bus wmi_bus-PNP0C14:02: [Firmware Bug]: WQA1 data block query control method not found
[ 3.282838] wmi_bus wmi_bus-PNP0C14:02: [Firmware Bug]: WQA5 data block query control method not found
[ 3.282840] wmi_bus wmi_bus-PNP0C14:02: [Firmware Bug]: WQA9 data block query control method not found
=== 6. 内核网络模块加载情况 ===
=== 7. 连通性测试(到网关和公网IP)===
ping: connect: 网络不可达
ping: usage error: 需要目标地址
=== 8. DNS 配置 ===
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 127.0.0.53
options edns0 trust-ad
search .
=== 9. NetworkManager 日志(最近30行)===
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0785] Loaded device plugin: NMAtmManager (/usr/lib/x86_64-linux-gnu/NetworkManager/1.46.0/libnm-device-plugin-adsl.so)
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0791] Loaded device plugin: NMWifiFactory (/usr/lib/x86_64-linux-gnu/NetworkManager/1.46.0/libnm-device-plugin-wifi.so)
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0795] Loaded device plugin: NMWwanFactory (/usr/lib/x86_64-linux-gnu/NetworkManager/1.46.0/libnm-device-plugin-wwan.so)
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0797] manager: rfkill: Wi-Fi enabled by radio killswitch; enabled by state file
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0799] manager: rfkill: WWAN enabled by radio killswitch; enabled by state file
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0799] manager: Networking is enabled by state file
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0806] settings: Loaded settings plugin: ifupdown ("/usr/lib/x86_64-linux-gnu/NetworkManager/1.46.0/libnm-settings-plugin-ifupdown.so")
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0807] settings: Loaded settings plugin: keyfile (internal)
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0807] ifupdown: management mode: managed
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.0808] ifupdown: interfaces file /etc/network/interfaces doesn't exist
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 generate[1020]: Permissions for /etc/netplan/01-network-manager-all.yaml are too open. Netplan configuration should NOT be accessible by others.
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3772] dhcp: init: Using DHCP client 'internal'
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3775] manager: (lo): new Loopback device (/org/freedesktop/NetworkManager/Devices/1)
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3784] device (lo): state change: unmanaged -> unavailable (reason 'connection-assumed', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3786] device (lo): state change: unavailable -> disconnected (reason 'connection-assumed', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3790] device (lo): Activation: starting connection 'lo' (d745fb8d-aa60-4c98-8250-0ea89d932d7f)
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3797] failed to open /run/network/ifstate
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3801] bus-manager: acquired D-Bus service "org.freedesktop.NetworkManager"
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 systemd[1]: Started NetworkManager.service - Network Manager.
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3807] device (lo): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3809] device (lo): state change: prepare -> config (reason 'none', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3810] device (lo): state change: config -> ip-config (reason 'none', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3813] device (lo): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3817] modem-manager: ModemManager available
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3823] device (lo): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3824] device (lo): state change: secondaries -> activated (reason 'none', sys-iface-state: 'external')
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3827] device (lo): Activation: successful, device activated.
4月 20 19:19:59 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776683999.3830] manager: startup complete
4月 20 19:20:20 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776684020.4701] agent-manager: agent[5eeba4105534b4ff,:1.39/org.gnome.Shell.NetworkAgent/120]: agent registered
4月 20 19:20:38 ddsm-Lenovo-ThinkBook-16p-Gen-4 NetworkManager[909]: <info> [1776684038.9215] agent-manager: agent[7df91f6fc8984172,:1.79/org.gnome.Shell.NetworkAgent/1000]: agent registered
=== 10. 硬件信息(如已安装 lshw)===
*-network UNCLAIMED
description: Network controller
product: Raptor Lake PCH CNVi WiFi
vendor: Intel Corporation
physical id: 14.3
bus info: pci@0000:00:14.3
version: 01
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix cap_list
configuration: latency=0
resources: iomemory:620-61f memory:6203194000-6203197fff
(base) ddsm@ddsm-Lenovo-ThinkBook-16p-Gen-4:~/桌面$
初步分析:
无线网卡(Intel Raptor Lake PCH CNVi WiFi,芯片 ID 8086:51f1)状态为 UNCLAIMED,表示系统没有加载驱动或缺少固件,因此 NetworkManager 看不到任何无线设备,只有回环接口 lo,所以无法上网。
具体原因:
网卡本身被 PCI 识别到(lspci 能看到),但 lshw 显示 *-network UNCLAIMED。
内核没有加载对应的驱动模块(iwlwifi),也没有任何网络接口(ip a 只有 lo)。
这是 Intel AX200/AX210 系列无线网卡,Ubuntu 24.04 内核自带 iwlwifi 驱动,但缺少固件文件(iwlwifi-ty-a0-gf-a0-*.ucode 等)或固件未正确安装。
于是通过U盘安装了网络模块:linux-firmware
三、但是仍然无法上网,于是进一步确认环境
bash
(base) ddsm@ddsm-Lenovo-ThinkBook-16p-Gen-4:~$ echo "=== 1. 当前内核版本 ==="
uname -r
echo -e "\n=== 2. 检查 iwlwifi 模块文件是否存在 ==="
ls -l /lib/modules/$(uname -r)/kernel/drivers/net/wireless/intel/iwlwifi/
echo -e "\n=== 3. 查看模块依赖关系 ==="
modinfo iwlwifi | grep -E "depends|filename"
echo -e "\n=== 4. 检查相关内核模块是否已加载 ==="
lsmod | grep -E "iwlwifi|cfg80211|mac80211"
echo -e "\n=== 5. 查看 dmesg 中与 iwlwifi 相关的错误 ==="
sudo dmesg | grep -i iwl
echo -e "\n=== 6. 检查是否安装了 linux-modules-extra 包 ==="
dpkg -l | grep linux-modules-extra | grep $(uname -r | cut -d- -f1)
echo -e "\n=== 7. 查看内核符号错误详情 ==="
sudo dmesg | grep -i "unknown symbol"
=== 1. 当前内核版本 ===
6.17.0-14-generic
=== 2. 检查 iwlwifi 模块文件是否存在 ===
ls: 无法访问 '/lib/modules/6.17.0-14-generic/kernel/drivers/net/wireless/intel/iwlwifi/': 没有那个文件或目录
=== 3. 查看模块依赖关系 ===
modinfo: ERROR: Module iwlwifi not found.
=== 4. 检查相关内核模块是否已加载 ===
=== 5. 查看 dmesg 中与 iwlwifi 相关的错误 ===
=== 6. 检查是否安装了 linux-modules-extra 包 ===
=== 7. 查看内核符号错误详情 ===
(base) ddsm@ddsm-Lenovo-ThinkBook-16p-Gen-4:~$
四、问题根源已经彻底明确
当前内核版本是 6.17.0-14-generic,但
/lib/modules/6.17.0-14-generic/kernel/drivers/net/wireless/intel/iwlwifi/
目录不存在,modinfo iwlwifi 也找不到模块。说明这个内核没有安装对应的驱动模块包(例如
linux-modules-extra-6.17.0-14-generic),甚至可能这个内核本身就是不完整的。
因此,无线网卡无法被驱动,NetworkManager 只能看到 lo 回环接口。
重要提示:Ubuntu 24.04 官方仓库默认内核是 6.8.x,官方仓库没有 6.17 的 linux-modules-extra 包,因此即使下载也找不到。所以更可行的是切换到官方内核。
到这里,问题及就完全清晰了
因此需要下载以下 3 个 .deb 包(从 Ubuntu Packages 搜索):
bash
linux-image-6.8.0-55-generic(或更新的 6.8.x 版本,注意版本号一致)
linux-modules-6.8.0-55-generic
linux-modules-extra-6.8.0-55-generic
下载方法(在 Windows 上,因为无法联网,只能到Windows上下载用U盘copy到ubuntu24.04)
访问 https://packages.ubuntu.com/noble/linux-image-6.8.0-55-generic
选择 amd64 架构,下载 .deb 文件。
同样方法搜索 linux-modules-6.8.0-55-generic 和 linux-modules-extra-6.8.0-55-generic 并下载。
将所有 .deb 复制到 U 盘。
在 Ubuntu 上安装:
插入 U 盘,进入挂载目录。
按顺序安装(注意依赖关系):
bash
sudo dpkg -i linux-modules-6.8.0-55-generic*.deb
sudo dpkg -i linux-modules-extra-6.8.0-55-generic*.deb
sudo dpkg -i linux-image-6.8.0-55-generic*.deb
重启系统,在 GRUB 菜单中选择 6.8.0-55-generic 启动(通常新内核会被设为默认)。
启动后,无线网卡应该可以正常识别。
至此,问题解决。
这告诉我们一个道理,非必要不更新!这次问题完全是因为我更新了新版本内核导致原来的驱动无法被识别。
完~
