在Linux开机时驱动的加载过程中总结过驱动的加载方式,会涉及到initramfs文件中的驱动,因此在驱动升级的时候要考虑到initramfs文件中的驱动是否也对应的升级到对用的版本,这是本文想记录的一个点。

linux开机时先去加载initramfs文件中的驱动,具体的流程如下图所示。
因此我们需要注意的是在系统中升级完驱动后,要保证initramfs中的驱动进行更新。检查initramfs文件中是否包含我们要升级的驱动,如果不存在升级的驱动,则无需更新initramfs文件,检查命令为lsinitrd initramfs-xxx.img | grep module;

以i40e驱动为例,加入我们采用make&make install的方式在当前的环境上编译升级驱动时,i40e驱动的makefile文件自动会为我们执行dracut --force命令去同时更新initramfs文件使i40e驱动更新。

而当我们为其他的现场环境编译驱动时,这时无法直接在线程环境上make&make install命令去安装,而一般我们采用编好的i40e.ko驱动文件去替换掉原有的i40e.ko文件。
这时更新驱动的流程如下:

(1)将i40e驱动拷贝到/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/i40e文件夹下,替换系统原有的i40e.ko.xz文件;(升级系统原有的驱动)
(2)执行depmod –a重新生成模块依赖关系;
(3)执行modinfo i40e查看相关信息是否与当前替换的版本信息一致;
(4)如果当前环境下可以成功执行rmmod i40e卸载当前环境下的驱动,则执行modprobe i40e加载驱动即可生效,无需重启;
(5)执行dracut --force命令重新生成initramfs文件(该文件中包含有老版本的i40e驱动,如果不进行更新则重启后依然后加载老版本的驱动);

(6)如果无法卸载当前环境下的i40e驱动,则重启后生效;

一次Linux驱动升级的问题记录相关推荐

  1. Linux驱动之 原子操作

    Linux驱动之 原子操作学习记录: 概念: 原子操作是指在执行过程中不会被别的代码所中断的操作,即它是最小的执行单位. 最简单的原子操作就是一条条的汇编指令(不包括一些伪指令,伪指令会被汇编器解释成 ...

  2. 嵌入式Linux驱动大全问世,十年磨一剑,视频!服务!新老客户都有大折扣!

    对于学习嵌入式Linux,韦东山老师整理了三条学习路线,适合与不同阶段的学员. 三条嵌入式学习路线 路线一:单片机路线 使用KEL.HAL库来快速的掌握单片机开发 路线二:深入学习单片机/RTOS/U ...

  3. 由dgl 升级到0.9.0引起的nvidia显卡驱动升级和docker升级

    背景 由于需要用到dgl库中最新的采样器,必须将dgl升级到0.9.0版本.dgl本身升级很方便,一个pip命令搞定,可惜升级完不能用,报错信息说需要更高的pytorch版本,于是又将pytorch升 ...

  4. linux内核升级图文攻略

    一.Linux内核概览 Linux是一个一体化内核(monolithic kernel)系统. 设备驱动程序可以完全访问硬件. Linux内的设备驱动程序可以方便地以模块化(modularize)的形 ...

  5. linux内核升级图文攻略(转)

    一.Linux内核概览 Linux是一个一体化内核(monolithic kernel)系统. 设备驱动程序可以完全访问硬件. Linux内的设备驱动程序可以方便地以模块化(modularize)的形 ...

  6. Linux驱动入门篇(一):Hello, world

    学习Linux驱动有半年的时间了,但是临近毕业,由于各种事务的耽误,很多东西遗忘,现在写此博客以记录重新学习的历程. 首先,自然是从最简单的内核模块,Hello, world开始啦. 1 #inclu ...

  7. 嵌入式linux硬件成本,嵌入式Linux驱动和固件有何区别?供应商是如何用固件压缩成本的?...

    原标题:嵌入式Linux驱动和固件有何区别?供应商是如何用固件压缩成本的? 作为一个驱动开发者, 你可能发现你面对一个设备必须在它能支持工作前下载固件到它里面. 硬件市场的许多地方的竞争是如此得强烈, ...

  8. linux 模块化编译,手把手教Linux驱动1-模块化编程 module

    大家好,从本篇起,一口君将手把手教大家如何来学习Linux驱动,预计会有20篇关于驱动初级部分知识点.本专题会一直更新,有任何疑问,可以留言或者加我微信. Linux的开发者,遍布世界各地,他们相互之 ...

  9. linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  10. linux更新nvidia驱动程序,[下载]NVIDIA显卡Linux驱动更新304.60

    [IT168 资讯]虽然距离中指门已经过去好几个月了,但看到NVIDIA对Linux显卡驱动的频繁更新就不免又会关联一下,当然这两者不一定有必然的联系. ▲NVIDIA显卡Linux驱动更新304.6 ...

最新文章

  1. ifix如何设画面大小_ifix5.1环境下的ifix服务器、客户端配置
  2. 扩容是元素还是数组_02 数组(附ArrayList源码分析)
  3. 计算机基础知识菜鸟教程,机器学习基础知识整理归纳
  4. python 两个数据框合并计算_一文掌握Excel、SQL、Python【数据合并】大法!
  5. c语言简单选择对字符串数组排序,简单了解C语言中直接插入排序与直接选择排序实现...
  6. AI论文解读:基于Transformer的多目标跟踪方法TrackFormer
  7. 1.4 Arithmetic Progressions
  8. 详解,c/c++输入输出缓冲区,以及scanf回车的问题
  9. 初创团队配置_咨询整理(熊猫TV首席架构师)
  10. c语言答辩ppt案例,c语言ppt例子课题了答辩ppt成品中南民族大学.ppt
  11. 【jvm jdk】锁状态位之偏向锁
  12. EasyCVR对接大华SDK,视频回放无法播放的排查过程及解决方法
  13. 易基因|3文一览:DNA甲基化及组学测序在斑马鱼中的科学研究成果
  14. Leo写的前言 自由与规则—— 程序员羊皮卷 连载 8
  15. AI具备创造力入选Science年度十大科学突破
  16. word如何首页和目录不编辑页码
  17. ctrl键频繁失灵,但不是键盘本身的问题,换个键盘同样失灵
  18. kermit的安装和配置
  19. 专转本-计算机二级习题2
  20. 数据分析京东笔记本电脑

热门文章

  1. linux IPC socket(2)
  2. MFC中打开一个获取路径的对话框
  3. 修改/etc/resolv.conf又恢复到原来的状态
  4. HDU 2577 How to Type (DP,经典)
  5. java提高篇(十三)-----字符串
  6. 生活养生--转载微博
  7. Fedora17安装QQ2012手记
  8. Yarn的原理与资源调度
  9. Python 常用函数Logging
  10. 《Arduino开发实战指南:机器人卷》一1.3 安装Arduino Uno驱动