Linux开机加载驱动时,涉及到了initramfs文件中包含的驱动以及硬盘中包含的驱动两个部分;而系统启动后手动加载驱动时只会用到硬盘中的驱动库,与initramfs无关。首先介绍下initramfs文件生成的原理及流程,然后在介绍下开机加载的流程及本地验证步骤。
一、 initramfs文件生成原理
1、 镜像安装时生成initramfs文件
在安装镜像时,会去扫描所安装的服务器中在位的设备,系统会将扫描到的设备的驱动以及默认常用的一些驱动包含在initramfs文件中;解压initramfs文件后生成的目录文件如下所示:
(解压initramfs文件的命令:
/usr/lib/dracut/skipcpio initramfs.xxx.img | zcat | cpio -ivd)

Initramfs中包含的驱动ko文件在目录lib/modules/下,具体包含的ko可依次查看。

注意:安装镜像的时候先生成initramfs文件,然后才会去执行post脚本,如果想在post脚本中去更改驱动或者一些依赖关系的话,无法写入initramfs文件中。

2、 主动更新构建initramfs文件
当我们想去更改模块的依赖关系,或者替换掉原有的ko,如果此时原有的ko已经存在于initramfs中,那么如果单纯的替换掉ko依然不会生效,需要使用dracut –force命令重新构建initramfs文件,使其写入到initramfs文件中。(具体原有后续介绍)
二、 开机加载驱动的流程
Linux系统开机后,首先加载initramfs文件中包含的驱动程序,如果相应的设备对应的驱动不在initramfs文件包含范围内,那么会去硬盘中存储的驱动库中去寻找匹配的驱动进行加载;硬盘中驱动库的位置即为:/lib/modules/“uname -r”/;所以相应的驱动只要在硬盘的驱动库或者initramfs中至少存在一个就可以正常加载,一旦在initramfs中加载成功,无论硬盘中的驱动库中存在的驱动版本是否相同都不会重新去加载。

linux开机时驱动的加载流程相关推荐

  1. linux Pci字符驱动基本加载流程

    今天有朋友问我linux系统Pci字符驱动加载流程,简单整理了一下,顺便做个记录. 首先说下需要包含的头文件: 一个完整的字符驱动一般包含下面这些头文件: #include <linux/typ ...

  2. linux gpio按键驱动程序,Linux GPIO Key 驱动的加载

    gpio-keys是基于input子系统实现的一个通用的GPIO按键驱动,基于platform来实现,位于drivers/input/keyboard/gpio_keys.c,这个文件是硬件无关的,而 ...

  3. macbook卡在进度条开不了机_【macbook开机时进度条加载不进去怎么办?】-看准网...

    匿名用户 作者:王子链接:imac进度条不动,一个小时了-? - 知乎用户的回答 - 知乎来源:知乎著作权归作者所有,转载请联系作者获得授权.转载:无限菊花?無法開機的MacBook Or iMac( ...

  4. linux驱动加载流程分析

    linux驱动加载流程分析 内核是如何加载驱动的,有些是编译到内核里面,有些事编译成ko,让系统自动加载.总的说来,在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载. 静态加载就是把驱动 ...

  5. camera驱动开机加载流程

    camera驱动 图片不好上传,可以跟着源码去看,MT6735下面的 也可以查看有道云链接:点击打开链接 一.模块加载函数 模块加载函数位于kd_sensorlist.c文件中,kd_sensorli ...

  6. android wifi驱动加载流程

    本文基于android 7.0 海思 Hi3798MV200 平台 WiFi驱动加载流程: 一..进入高级设置,无线设置界面(WifiSettings.java)打开WiFi开关(SwitchBar) ...

  7. linux centos fedora audio root 普通用户声卡驱动安装 加载 声音

    linux  centos fedora Audio root 及普通用户声卡及声音的问题 大家用linux大部分当作服务器用的,谁用这玩意听歌,看电影啊,毕竟是玩吗,玩来玩去,声音给浪丢了,那也不能 ...

  8. oracle10 64位odbc,图文教你64位win10添加oracle odbc驱动时提示无法加载oracle如何解决...

    现在电脑已成为我们工作生活的一部分,相信大家在操作电脑时一定会遇到这样那样的问题,64位win10添加oracle odbc驱动时提示无法加载oracle如何解决这个问题就是我们经常会遇到的,这样的问 ...

  9. 解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面

    解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面 关闭unattended-upgrade 在/etc/apt/apt.conf.d目录下,查找包含Unattended- ...

  10. linux如何确定共享库路径,摘录Linux下动态共享库加载时的搜索路径详解

    对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似"error while loading shared libraries"这样的错误,这是典型的因为需要的动态库不在动态链接器 ...

最新文章

  1. base64 解码
  2. python3怎么使用pyrex_Win Python Pyrex 扩展
  3. Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头
  4. Windows 2008 R2阿里云安全基线检查
  5. mysql 过滤单引号_python实现mysql的单引号字符串过滤方法
  6. cognos 7在IE7中不显示左边的树形菜单的解决
  7. 游戏设计阻力探秘之扩展空间
  8. Android-Universal-Image-Loader学习笔记(一)
  9. 分段衰减衰减系数_吉林省松花江干流氨氮综合衰减系数分段研究
  10. mysql输入20万数据_mysql生成20万条数据(连表插入)
  11. Ceph Calamari监控配置
  12. JavaEE——No.2 套接字编程(TCP)
  13. 中国 省会 地级市 经纬度 city array
  14. JAVA程序设计题解与上机指导 第四版 第8章 Java的图形用户界面设计 8.2 创建“My JFrame”
  15. 基于Python通过Chrome的Cookie登录百度账户
  16. 退役感言 [Away From OI]
  17. 如何用无线路由器接服务器主机,路由器上再接一个路由器如何连接设置【详解】...
  18. 清明节游戏服务器维护,《梦幻西游2》4月1日维护公告:清明活动开启
  19. oracle游标简介
  20. 正则数据解析酷狗与天气案例

热门文章

  1. openfire源码解读--用户登录
  2. 小米华为鸿蒙,华为鸿蒙比小米MIUI快,老外上手出结果
  3. weblogic安装升级配置
  4. 输入法或搜索类软件评价
  5. linux /dev/null 中有数据
  6. openstack相关资料集结
  7. internet与Internet的区别
  8. 简述RHEL7新特性(二)
  9. 关于在win8下开发c或者c++时,某些特殊情况
  10. Flash互动网站设计学习-Flash发展历史