收起左侧

未识别到网卡驱动处理心得

0
回复
22
查看
[ 复制链接 ]

6

主题

4

回帖

0

牛值

江湖小虾

最近我拿一台NEC8安装飞牛系统,发现无法识别到有线网卡,这怎么回事呢?

我先安装了windows10系统,发现在这个系统下,网卡是可以正常工作的,说明硬件本身是没有问题的。

但是到飞牛,或者说是linux环境,这个网卡就识别不到了。

飞牛调试如下:
210529eo9urm2m8fwwxzfx.jpeg

发现系统是找到的了这个网卡的,但是安装驱动的时候,报错了。

尝试手动加载模块,不行,无效。百度搜索到的方法是修改网卡的型号,但是这种方式,不仅有风险,而且也比较麻烦。

经过查阅资料,我发现e1000e这个驱动,是可以识别到我这个型号的网卡的,既然如此,那么根本不需要修改,一定是别的原因导致的。

要解决飞牛系统(Linux内核)无法识别网卡的问题,核心矛盾在于:Windows能正常使用网卡,但Linux因「驱动签名验证」或「Secure Boot」限制导致驱动加载失败。以下是针对性解决方案,直接定位关键问题:

一、先明确:为什么Windows能正常,Linux不能?

Windows和Linux对BIOS/UEFI设置的敏感度不同,尤其是**Secure Boot(安全启动):

  • Windows:支持微软签名的驱动,即使Secure Boot开启,也能加载经过认证的驱动(如Intel官方网卡驱动);
  • Linux:若Secure Boot开启,未签名的驱动(如部分第三方或自定义驱动)会被内核拒绝加载,导致硬件无法识别。

dmesg日志明确提示「驱动签名缺失」Module verification failed: signature and/or required key missing),这是核心原因

二、下一步:解决「驱动签名验证失败」问题

1. 检查BIOS中的「Secure Boot」设置

操作

  • 重启有问题的电脑,按 F2/Del进入BIOS/UEFI设置
  • 找到Secure Boot选项(通常在「Security」或「Boot」菜单下);
  • Secure Boot设置为Disabled(关闭);
  • 保存设置并重启,进入飞牛系统。

预期结果: 若之前的驱动加载失败是因Secure Boot阻止未签名驱动,关闭后e1000e驱动应能正常加载,网卡可识别。

但是也失败了,这说明不是安全启动引起的。

于是定位到了问题:网卡NVM(非易失性存储器)校验和错误NVM Checksum Is Not Valid),导致Linux驱动(e1000e)严格校验失败

那么如何修复这个问题呢?

经过一系列的折腾,发现,英特尔有一个叫BootUtil的工具

Windows 10 下使用 BootUtil 修复网卡步骤:

  1. 下载 Windows 版 BootUtil
  2. 解压文件
    • 解压缩下载的 ZIP 文件到任意目录(例如 C:\BootUtil
  3. 以管理员身份运行命令提示符
    • Win + X
    • 选择 "命令提示符(管理员)" 或 "Windows PowerShell(管理员)"

直接在window10环境下进行操作,直接运行,确定网卡编号

Port Network Address Location Series WOL Flash Firmware Version

==== =============== ======== ======= ===

1 D017C2201F59 0:31.6 Gigabit N/A FLASH Not Present

执行网卡重置命令:BootUtil.exe -NIC=1 -defcfg

重启电脑后,问题消失,可以正常识别到网卡。

本质是NVM的校验出错,这个时候最好的办法就是重置网卡,恢复出厂设置即可

校验和字(字0x3F,NVM字节0x7E和0x7F)用于确保基本NVM映像是一个有效的映像。这个字的值应该计算使得在加上所有字(0x00-0x3F)/字节(0x00-0x7F),包括校验和字本身之后,总和为0xBABA。16位累加寄存器的初始值应为0x0000,并且在每次加法之后忽略进位位。
收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则