base之modules
来源:互联网 发布:用户画像需要哪些数据 编辑:程序博客网 时间:2024/05/17 23:07
因为想知道poky的base版本在启动阶段加载了哪些驱动模块,所以花时间研究了一下。
1.通过ipkg管理系统查阅信息(以rfcomm.ko为例):
"/usr/lib/ipkg/info/kernel-module-rfcomm.control"
"/usr/lib/ipkg/info/kernel-module-rfcomm.list"
"/usr/lib/ipkg/info/kernel-module-rfcomm.postinst"
"/usr/lib/ipkg/info/kernel-module-rfcomm.postrm"
从"status"文件中查阅到:
status为"install ok installed"说明postinst执行成功,通过"build/tmp/cross/bin/arm-poky-linux-gnueabi-depmod-2.6"在/lib/modules/`uname -r`下建立了相关的dep及map信息。
2.关于update-modules
它是"/usr/sbin"下一可执行脚本程序
主要完成的工作就是把"/etc/modutils"目录下的"*.conf"文件的内容集中到"/etc/modules.conf",把其他文件的内容集中到"/etc/modules"。
系统在启动阶段会调用"/etc/rcS.d/S20modutils.sh"
即根据"/etc/modules"中的内容自动加载驱动模块。可见通过update-modules工具可以实现模块在启动阶段的自动加载,当然了事前还必须在"/etc/modutils"目录下放置相应文件,譬如"/etc/modutils/rfcomm"。
3.关于rootfs在板上第一次启动的初始化问题
poky环境下构建出来的rootfs在板上第一次启动,调用到"/etc/rcS.d/S20modutils.sh"时,"/etc/modules"还不存在,因此那些在构建时被指定为自动加载模式的驱动模块在这个时候失去了正常的加载机会,怎么办???(惊恐ing)。
呵呵,update-modules中有一段代码需要在这时补充说明一下:
这里的"first_time"用来定义构建出来的rootfs第一次在板子上启动的时刻,因为"/etc/modules"必定会在第一次启动时创建出来,而之后的每次启动,"/etc/modules"都是已经存在的了,"first_time"必不为"1"。这段代码就是专为第一次启动的初始化问题设计的。但是系统如何保证在第一次启动的时候必定会调用到update-modules呢? 这个是由update-modules这个软件包本身来提供支持的。
"/usr/lib/ipkg/info/update-modules.postinst"
再看"status"文件中的信息
显然系统在执行到"/etc/rcS.d/S98configure"时就会调用update-modules。一切尽在不言中。。。
4.关于"/etc/modutils"和"/etc/modprobe.d"
"/meta/packages/linux/linux-openmoko_2.6.22.5.bb"中定义了一些变量
"/meta/classes/kernel.bbclass"中也定义了一些变量
"module_autoload_*"表示为这些模块提供自动加载功能。
"module_conf_*"表示为这些模块提供配置文件。
对于autoload:在"/etc/modutils"目录下创建相应文件并构造"postinst"。
对于modconf:如果内核主版本为2.6,则在"/etc/modprobe.d"下创建".conf"文件;否则在"/etc/modutils"下创建".conf"文件。原因在分析"module-init-tools-3.2.2"软件包的"modprobe.c"源码后可知:
modprobe参考了"/lib/modules"目录下的"modules.alias"、"modules.symbols"。
modprobe参考了"/lib/modules"目录下的"modules.dep"。
modprobe参考了"/etc/modprobe.conf"文件及"/etc/modprobe.d"目录。
- base之modules
- [Modules] -- base版本modules修改默认控制器
- WildFly9 包含 modules/modules/base 中的包的方法
- Node.js之Modules
- saltstack 之modules自定义
- joomla学习之mod_gk_weather Modules
- 【React Native】之Native Modules
- nodejs之node-modules理解
- modules
- Modules
- Modules
- modules
- base之sysvinit
- base之ipkg
- base之fstab
- base之string_piece
- 【数据库】【base】 之 乱码
- 《HTML之base标签》
- CSS项目总结
- 第七章 问题7.7和7.8
- SQL语句
- c#,winform,treeview,选中节点,选中相应的全部子节点,取消节点,取消父节点,小技巧
- vc 建立kvm开发环境
- base之modules
- 需求管理之软件需求分析关注什么
- gridview列内容自动换行的方法
- insert 与select的结合使用
- 连接多行数据
- 通过小故事学习网络硬件协议
- 负载均衡--大型在线系统实现的关键(上篇)(转)
- Qt 出现“undefined reference to `vtable for”原因总结
- log4j相关