把老笔记本装成Linux后,我发现系统自带的驱动救了我一命
昨晚又把那台2015年的老笔记本翻出来了,本来想装个轻量Linux当下载机,结果卡在无线网卡驱动上折腾到三点。等等,先别笑,我知道这话题老,但我这次踩的坑可能很多人没注意。
先说结论:装Linux前一定要先把lspci -nn和lsusb的输出存下来,不然装完发现没网,你连网卡型号都查不了。我第一次就是犯了这错,装完才发现WiFi列表是空的,只能靠手机热点USB共享网络救急。
具体过程:
- 原系统还在的时候,我跑了
lspci -nn | grep -i net,记下了网卡是[8086:3165],Intel的。 - 装的是Debian 12,装完发现
iwlwifi固件没带全,dmesg里刷了一屏firmware: failed to load iwlwifi-7265D-29.ucode。 - 解决办法其实简单,但前提是你得有网。我用手机USB共享网络,然后
apt install firmware-iwlwifi,重启,WiFi出来了。
但真正让我记一笔的是后面:我发现系统自带的firmware-iwlwifi包里的固件版本比网卡需要的旧,加载成功后dmesg还是报iwlwifi 0000:03:00.0: loaded firmware version 29.4063824552.0 op_mode iwlmvm,看起来正常,但实际连接5G频段会掉线。我又去翻了Intel官网的固件仓库,手动下了新版iwlwifi-7265D-29.ucode放到/lib/firmware,覆盖后modprobe -r iwlwifi && modprobe iwlwifi,这才稳。
这里有个细节:别直接覆盖,先把旧的备份成.bak,不然万一新版不兼容,你连回滚都回不了。我就是先cp备份再覆盖的,后来真回滚了一次——新版在我这台机器上蓝牙和WiFi会抢资源,dmesg里能看到Bluetooth: hci0: command 0xfc05 tx timeout。
最后我是把蓝牙在/etc/modprobe.d/blacklist.conf里禁了,反正下载机也用不上。
另外吐槽一句:这台机器BIOS里有个Wireless Radio Control选项,默认开着,装Linux后会导致WiFi偶尔被硬件开关关掉,rfkill list能看到Soft blocked: yes,但Hard blocked也变过。我进BIOS关掉这个选项后才彻底消停。
所以我的判断是:老机器装Linux,驱动问题八成不是Linux的锅,是固件版本和BIOS设置对不上。先查型号,再对固件,最后看BIOS,这个顺序能省你两小时。
问一句:你们装Linux时有没有遇到过那种dmesg里报错但功能正常的玄学情况?我这次WiFi就是,报错但能用,搞得我都不敢乱动。
