我是靠谱客的博主 舒服树叶,最近开发中收集的这篇文章主要介绍minimal之udev,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先给出udev的主页:http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html

 

1.启动错误信息

使用NFS挂载minimal根文件系统,启动时出现mount nbd*设备失败信息。

分析应该是NFS文件系统注册了多个nbd*设备(可以从/sys/block/目录下查看到),而udev在coldplug处理阶段,会去mount这些设备,导致出现失败信息。

"etc/udev/rules.d/60-persistent-storage.rules"中有这么几行

"etc/udev/rules.d/local.rules"中有这么几行

"etc/udev/scripts/mount.sh"中有这么几行

显然可以在mount.blacklist中解决这个问题,如下所示

主要增加了最后一行。。。

 

2.udev的coldplug模式

内核在启动时已经检测到了系统的硬件设备,并把硬件设备信息通过sysfs内核虚拟文件系统导出。sysfs文件系统由系统初始化脚本挂载到/sys上。

udev是用户空间程序而且在内核启动后才start,因此需要基于sysfs文件系统来模拟热插拔事件。在boot 时,内核在sysfs下为所有的硬件设备创建名为uevent的文件,当udev启动时,它可以读取/sys下面所有的uevent文件并为每个冷插拔设备产生热插拔事件,然后udev再读取这些事件,生成对应的硬件设备文件。由于没有实际的硬件插拔动作,所以这一过程被称为coldplug。

 

3.udev的启动流程

详见"etc/rcS.d/S03udev"脚本。

对该脚本的分析有一点需要注意,就是shell编程中命令的成功执行用'0'表示,而执行失败用'1'表示,在命令行可以使用"echo $?"来获得上一个命令的返回值。与C编程最相悖的是,条件测试语句(譬如if then else)以'0'为真,'1'为假。

 

4.write udev rules

详见udev源码包的"docs/writing_udev_rules/index.html"

"find /sys -name dev" 可以找到需要为之建立规则的硬件设备。

利用udevinfo工具可以获得建立规则时需要的一些详细匹配信息。

 

最后

以上就是舒服树叶为你收集整理的minimal之udev的全部内容,希望文章能够帮你解决minimal之udev所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部