设备启动顺序导致OpenWrt找不到网卡错误

       先说结论,固态硬盘和U盘存在新旧不同版本OpenWrt,错误的启动顺序看上去像正常从U盘启动,但实际从固态硬盘启动了旧版本的系统内核,从U盘启动了新版本Openwrt的其他程序,二者不一致导致网卡等无法正确驱动。只有在机器存在多个不同版本OpenWrt固件时存在这个问题,启动时注意U盘启动顺序,或手动选择U盘启动。

一、问题现象

       起因是最近考虑升级x86软路由的OpenWrt版本,自己的机器系统存在固态硬盘里,而非U盘。升级方式就是重装,采用的方法是找一个U盘中写入OpenWrt镜像,然后从U盘启动后用dd命令写入镜像到机器的固态硬盘里。机器之前应该设置了U盘优先,所以重启后没有手动选择启动项,插入U盘后正常启动到了新版系统命令行,但ifconfig看不到网卡。

二、分析问题

       机器的网卡是Realtek RTL8168,之前一直运行稳定。用lspci -v命令查看可以看到正确的网卡信息,但未加载显示驱动。用dmesg | grep -i eth查看没有任何信息输出。期间走了一些弯路,一开始以为是镜像的驱动集成问题,又找了其他版本镜像问题依旧,这时候感觉应该不是镜像问题。

       回到原点,搜索了解dmesg的用途,知道dmesg命令会读取缓冲区中的信息,主要记录了包括内核初始化时的信息、系统调用的结果信息、设备的插拔信息等,所以网卡驱动的加载或者加载出错的信息在dmesg应该必须留痕,dmesg | grep -i eth找不到说明有问题。

       用笨方法一行行阅读dmesg返回信息,发现kmodloader: no module folders for kernel version 5.4.175这行比较醒目,想到之前搜索网卡驱动是kmod-r8168,这个kmodloader肯定是大大有关。搜索了解到kmodloader用于加载kmod,这时候才注意到5.4.175并非U盘中的新版本。反过来,注意dmesg信息第一行Linux version确实也是旧版本。kmodloader加载时到/lib/modules/目录中找是否有系统版本号命名目录,系统版本不匹配所以无法加载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值