linux开机时驱动的加载流程
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开机时驱动的加载流程相关推荐
- linux Pci字符驱动基本加载流程
今天有朋友问我linux系统Pci字符驱动加载流程,简单整理了一下,顺便做个记录. 首先说下需要包含的头文件: 一个完整的字符驱动一般包含下面这些头文件: #include <linux/typ ...
- linux gpio按键驱动程序,Linux GPIO Key 驱动的加载
gpio-keys是基于input子系统实现的一个通用的GPIO按键驱动,基于platform来实现,位于drivers/input/keyboard/gpio_keys.c,这个文件是硬件无关的,而 ...
- macbook卡在进度条开不了机_【macbook开机时进度条加载不进去怎么办?】-看准网...
匿名用户 作者:王子链接:imac进度条不动,一个小时了-? - 知乎用户的回答 - 知乎来源:知乎著作权归作者所有,转载请联系作者获得授权.转载:无限菊花?無法開機的MacBook Or iMac( ...
- linux驱动加载流程分析
linux驱动加载流程分析 内核是如何加载驱动的,有些是编译到内核里面,有些事编译成ko,让系统自动加载.总的说来,在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载. 静态加载就是把驱动 ...
- camera驱动开机加载流程
camera驱动 图片不好上传,可以跟着源码去看,MT6735下面的 也可以查看有道云链接:点击打开链接 一.模块加载函数 模块加载函数位于kd_sensorlist.c文件中,kd_sensorli ...
- android wifi驱动加载流程
本文基于android 7.0 海思 Hi3798MV200 平台 WiFi驱动加载流程: 一..进入高级设置,无线设置界面(WifiSettings.java)打开WiFi开关(SwitchBar) ...
- linux centos fedora audio root 普通用户声卡驱动安装 加载 声音
linux centos fedora Audio root 及普通用户声卡及声音的问题 大家用linux大部分当作服务器用的,谁用这玩意听歌,看电影啊,毕竟是玩吗,玩来玩去,声音给浪丢了,那也不能 ...
- oracle10 64位odbc,图文教你64位win10添加oracle odbc驱动时提示无法加载oracle如何解决...
现在电脑已成为我们工作生活的一部分,相信大家在操作电脑时一定会遇到这样那样的问题,64位win10添加oracle odbc驱动时提示无法加载oracle如何解决这个问题就是我们经常会遇到的,这样的问 ...
- 解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面
解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面 关闭unattended-upgrade 在/etc/apt/apt.conf.d目录下,查找包含Unattended- ...
- linux如何确定共享库路径,摘录Linux下动态共享库加载时的搜索路径详解
对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似"error while loading shared libraries"这样的错误,这是典型的因为需要的动态库不在动态链接器 ...
最新文章
- base64 解码
- python3怎么使用pyrex_Win Python Pyrex 扩展
- Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头
- Windows 2008 R2阿里云安全基线检查
- mysql 过滤单引号_python实现mysql的单引号字符串过滤方法
- cognos 7在IE7中不显示左边的树形菜单的解决
- 游戏设计阻力探秘之扩展空间
- Android-Universal-Image-Loader学习笔记(一)
- 分段衰减衰减系数_吉林省松花江干流氨氮综合衰减系数分段研究
- mysql输入20万数据_mysql生成20万条数据(连表插入)
- Ceph Calamari监控配置
- JavaEE——No.2 套接字编程(TCP)
- 中国 省会 地级市 经纬度 city array
- JAVA程序设计题解与上机指导 第四版 第8章 Java的图形用户界面设计 8.2 创建“My JFrame”
- 基于Python通过Chrome的Cookie登录百度账户
- 退役感言 [Away From OI]
- 如何用无线路由器接服务器主机,路由器上再接一个路由器如何连接设置【详解】...
- 清明节游戏服务器维护,《梦幻西游2》4月1日维护公告:清明活动开启
- oracle游标简介
- 正则数据解析酷狗与天气案例