博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个linux 驱动升级的小问题记录
阅读量:6509 次
发布时间:2019-06-24

本文共 1753 字,大约阅读时间需要 5 分钟。

重复踩了两次坑,所以简单记录下。

内核 3.10.

在修改了驱动的gro实现之后,进行驱动版本的升级,make && make install 之后,发现tg3的驱动,没有生效。

相同功能的代码在i40e下的驱动能生效,仔细对比install的过程,发现i40e的makefile中会默认调用

cmd_initrd := $(shell \                if which dracut > /dev/null 2>&1 ; then \                    echo "dracut --force"; \                elif which update-initramfs > /dev/null 2>&1 ; then \                    echo "update-initramfs -u"; \                fi )

也就是会默认更新initramfs,

而在tg3中的makefile中,进行install,只是:

ifneq ($(BCM_KVER), 2.4)install: default tg3.4.gzelseinstall: $(BCM_DRV) tg3.4.gzendif        mkdir -p $(PREFIX)/$(BCMMODDIR);        install -m 444 $(BCM_DRV) $(PREFIX)/$(BCMMODDIR);        @if [ "$(PREFIX)" = "" ]; then /sbin/depmod -a ;\        else echo " *** Run '/sbin/depmod -a' to update the module database.";\        fi        install -m 444 tg3.4.gz $(PREFIX)/usr/share/man/man4;\

这样的话,initramfs没有更新,驱动加载的还是老的。这个是第一个小坑。

第二个小坑是,i40e的驱动也不是每台设备都升级成功了,后来才发现,那台没有升级成功的设备的内核,是我之前修改过的,在编译内核之后,我将对应的img进行了改名,

即如下操作:

mv /boot/vmlinuz-3.10.0 /boot/vmlinuz-3.10.0-327mv /boot/initramfs-3.10.0.img /boot/initramfs-3.10.0-327.img

这个操作,导致了在i40e模块升级的时候,更新的initramfs名字为initramfs-3.10.0.img,而不是对应的 /boot/initramfs-3.10.0-327.img,从而也失败了。

 

那么问题来了,initfamfs里,究竟哪些驱动升级后必须加进去,哪些不必须呢?比如网卡驱动,其实可以不加进去,在systemd中将原来的网卡驱动卸载,然后加载新的驱动就行。

initramfs里面,一开始要查看里面的数据,还按照文件格式各种解压,后来发现前辈已经帮我们做好了,就是lsinitrd命令,

lsinitrd /boot/initramfs-3.10.0.img |grep -i i40edrwxr-xr-x   2 root     root            0 Mar 22 14:16 usr/lib/modules/3.10.0/updates/drivers/net/ethernet/intel/i40e-rw-r--r--   1 root     root      8160823 Mar 22 14:16 usr/lib/modules/3.10.0/updates/drivers/net/ethernet/intel/i40e/i40e.ko

这个lsinitrd就是一个脚本。而制作initramfs文件,一般使用 mkinitrd,或者直接调用 dracut。

 

转载于:https://www.cnblogs.com/10087622blog/p/10577094.html

你可能感兴趣的文章
webpack入门(二)what is webpack
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>
眠眠interview Question
查看>>
RPC-client异步收发核心细节?
查看>>
#define WIN32_LEAN_AND_MEAN 的作用
查看>>
仿余额宝数字跳动效果 TextCounter
查看>>
你必须知道的.net学习总结
查看>>
Axure8.0 网页 or App 鼠标滚动效果
查看>>
大家好,新年快乐。
查看>>
Android学习路线
查看>>
Linux下的redis的持久化,主从同步及哨兵
查看>>
在相同的主机上创建一个duplicate数据库
查看>>
Date15
查看>>
从Date类型转为中文字符串
查看>>
基于multisim的fm调制解调_苹果开始自研蜂窝网调制解调器 最快2024年能用上?
查看>>
mupdf不支持x64_Window权限维持(七):安全支持提供者
查看>>
labview如何弹出提示窗口_LabVIEW开发者必读的问答汇总,搞定疑难杂症全靠它了!...
查看>>
hikariconfig mysql_HikariConfig配置解析
查看>>
mysql批量数据多次查询数据库_mysql数据库批量操作
查看>>
jquery 乱码 传参_jquery获取URL中参数解决中文乱码问题的两种方法
查看>>