Manjaor连接wifi失败,wifi设备状态为unclaimed

文章描述了作者在使用Manjaro系统时遇到WiFi无法连接的问题,经过两波排查,确定是firmware版本不匹配导致。通过nmtui、nmcli、ifconfig等工具进行软件网络排查,然后使用lshw、lsmod、lspci等命令检查硬件驱动。最终发现是由于系统升级导致的firmware版本问题,通过降级firmware解决了问题。
摘要由CSDN通过智能技术生成

一、背景

      在一个很平常的日子,远程连接我的NUC一直失败,怀疑是网络没连接上,问题是前一晚还是好好的啊,费解。

      博主的NUC安装的是Manjaor系统,登录上去查看发现wifi果然是没连接。本以为直接nmtui 连接下wifi就好了,没想到事情远没这么简单。。。

二、第一波软件网络排查过程

1、nmtui连接wifi

      图形界面上没有wifi模块,也没有wifi列表,根本连接不了。。。

2、nmcli 查看wifi列表

# nmcli device wifi list
# 

      没错,wifi列表是空的,我去。。

3、ifconfig

      ifconfig发现只有docker0eth0,根本没有wifi模块。。emmm,看起来像是wifi驱动没起来啊,无线网卡都没加载出来。

4、重启大法

1、难道是网络管理的问题,重启
sudo systemctl restart NetworkManager # 失效
2、难道是网卡设备加入了黑名单
cd /etc/modprobe.d # 失效,是空的
3、我特么直接reboot
# 失效+10086

      第一波排查基本可以锁定是wifi设备没起来,可能是硬件也可能是驱动。一般来说驱动可能性大一些。

      搜索了一圈,发现有建议是升级内核版本。不至于吧,毕竟昨天还是能用的。

      博主linux内核版本5.15,看起来像是同样的问题,但是升级内核这种事,非必要还是算了,继续找问题。。

建议升级内核的:Manjaro not detecting WiFi adaptor Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01)

三、第二波硬件驱动排查过程

首先是排查的命令先介绍下:

lshw用户查看硬件的一些信息,这些信息主要来自于/proc里面。
lsmod用于显示已载入系统的模块,读取的是/proc/modules文件内容,以友好的方式显示输出。输出内容有四列。
lspci显示系统中所有的pci总线或者连接到该总线的设备。

具体参考:常见命令的补充

1、lshw -C network

      查看网络设置,发现wifi设置:product: Alder Lake-P PCH CNVi WiFi 状态为unclaimed,未认领的。

好家伙,驱动绝对有问题。

2、lsmod | grep wi

iwlwifi               454656  1 iwlmvm
# 发现已经加载了iwlmvm模块,这个模块是无线网卡驱动。
# modprobe是linux的一个命令,可载入指定的个别模块,或是载入一组相依的模块。
sudo modprobe iwlmvm
# reboot 重启,无效

# 重新加载一下iwlmvm原始文件
ls /lib/modules/5.15.102-1-MANJARO/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko.xz
sudo modprobe /lib/modules/5.15.102-1-MANJARO/kernel/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko.xz
sudo modprobe iwlwifi
# reboot 重启,无效

      看来iwlwifi无线网卡驱动是已经有的,但是重新应用发现还是不行,那又是为什么呢?

3、lspci -k | grep -C 3 Wi

00:14.3 Network controller: Intel Corporation Alder Lake-P PCH CNVi WiFi (rev 01)
	DeviceName: Onboard - Ethernet
	Subsystem: Intel Corporation Wi-Fi 6E AX211 160MHz
	Kernel modules: iwlwifi

# 相比于其他硬件设备,少了一行: 意思是驱动没起来
 Kernel driver in use: xxx

4、探测系统启动信息,查看驱动加载情况

# dmesg是一种程序,用于检测和控制内核环缓冲。程序用来帮助用户了解系统的启动信息
sudo dmesg | grep iwl

发现wifi模块输入错误如下:
xxao-66.ucode failed with error
no suitable firmware
need xxx version but not found # 这句记不清楚啦

      锁定是firmware的版本有问题。formware是什么呢?

表示运行在非“控制处理器”(指不直接运行操作系统的处理器,例如外设中的处理器,或者被用于bare metal的主处理器的其中一些核)中的程序。这些程序很多时候使用和操作系统所运行的处理器完全不同的指令集。这些程序以二进制形式存在于Linux内核的源代码树中,生成目标系统的时候,通常拷贝在/lib/firmware目录下。当driver对device进行初始化的时候,通过request_firmware()等接口,在一个用户态helper程序的帮助下,可以把指定的firmware加载到内存中,由驱动传输到指定的设备上。

      看起来很复杂,反正就是它的问题了,而且错误提示是版本不对。ok,找到正确的版本应该就可以。

5、查看当前安装的firmware版本

pacman -Qi linux-firmware

Version         : 20230210.xxxx  # 0210的版本

      0210版本看起来也没什么问题,身边同事也是一样的Manjaor系统,我俩的firmware是一样的版本,他就没啥问题。why???

6、遇事不决,可问google

参考:Iwlwifi firmware issue after upgrade kernel to 515

      文章的这个博主的内核版本也是5.1.5,发生日期也是3月份相同的问题,靠降级firmware解决了这个问题。降级?意思是我的机器最近升级了呗。。。。主要问题应该就在这儿了。

7、降级firmware

      本来想重新安装个低版本,发现网都没有,fuck,从本地缓存找吧。

# 进入pacman缓存,找到之前安装的包
cd /var/cache/pacman/pkg
# 本地安装0117版本
sudo pacman -U linux-firmware-20230117.7e4f0ed-1-any.pkg.tar.zst
# 查看firmware版本是否符合预期
pacman -Qi linux-firmware
# reboot

8、重新查看,发现wifi起来了,重新连接wifi即可。

nmcli connection up 你的wifi名字

四、原因

      博主在想会因为什么原因导致这种包会升级呢?明显不是我们常用的包。。。非常有可能是系统性升级带来的,查询pacman发现:

pacman -Suy: 更新源对应的包
pacman -S --help
	-u, --sysupgrade     upgrade installed packages (-uu enables downgrades)

      果然,因为执行过pacman -Suy导致的系统性升级软件包。。无语。以后还是注意下,优先是单个包的升级,一把唆是不对的。。

# pacman升级单个包
sudo pacman -S package_name1 package_name2 ..

end

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值