本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅,这些用户包括 Linux 最终用户、设备驱动开发人员、设备测试人员和系统管理员等等。
来自黄 懋
, 软件工程师, IBM,原文链接
http://www.ibm.com/developerworks/cn/linux/l-cn-udev/index.html
下面对此文做摘录。
什么是 udev?
udev
是 Linux2.6
内核里的一个功能,它替代了原来的 devfs
,成为当前 Linux
默认的设备管理工具。udev
以守护进程的形式运行,通过侦听内核发出来的 uevent
来管理 /dev
目录下的设备文件。不像之前的设备管理工具,udev
在用户空间 (user space)
运行,而不在内核空间 (kernel space)
运行。
使用 udev
的好处:
我们都知道,所有的设备在 Linux
里都是以设备文件的形式存在。在早期的 Linux
版本中,/dev
目录包含了所有可能出现的设备的设备文件。很难想象 Linux
用户如何在这些大量的设备文件中找到匹配条件的设备文件。现在 udev
只为那些连接到 Linux
操作系统的设备产生设备文件。并且 udev
能通过定义一个 udev
规则 (rule)
来产生匹配设备属性的设备文件,这些设备属性可以是内核设备名称、总线路径、厂商名称、型号、序列号或者磁盘大小等等。
动态管理:当设备添加 /
删除时,udev
的守护进程侦听来自内核的
uevent
,以此添加或者删除 /dev
下的设备文件,所以 udev
只为已经连接的设备产生设备文件,而不会在 /dev
下产生大量虚无的设备文件。
自定义命名规则:通过 Linux
默认的规则文件,udev
在 /dev/
里为所有的设备定义了内核设备名称,比如 /dev/sda
、/dev/hda
、/dev/fd
等等。由于 udev
是在用户空间 (user space)
运行,Linux
用户可以通过自定义的规则文件,灵活地产生标识性强的设备文件名,比如 /dev/boot_disk
、/dev/root_disk
、/dev/color_printer
等等。
设定设备的权限和所有者 /
组:udev
可以按一定的条件来设置设备文件的权限和设备文件所有者 /
组。在不同的 udev
版本中,实现的方法不同,在“
如何配置和使用 udev”
中会详解。
udev
的规则和规则文件
规则文件是 udev
里最重要的部分,默认是存放在
/etc/udev/rules.d/
下。所有的规则文件必须以“
.rules
”
为后缀名。RHEL
有默认的规则文件,这些默认规则文件不仅为设备产生内核设备名称,还会产生标识性强的符号链接。
start_udev
start_dev
命令重启 udev
守护进程,并对所有的设备重新查询规则目录下所有的规则文件,然后执行所匹配的规则里的行为。通常使用该命令让新的规则文件立即生效:
清单
15. start_udev
的执行过程
[root@HOST_RHEL5 rules.d]# start_udev
Starting udev:
[
OK
]
|
start_udev
一般没有标准输出,所有的 udev
相关信息都按照配置文件 (udev.conf)
的参数设置,由 syslog
记录。
分享到:
相关推荐
udev 高效、动态地管理 Linux 设备文件.
利用udev、sys动态创建linux设备结点
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了...
介绍了linux下如何利用udev来监控系统设备, 比如磁盘故障、磁盘挂载卸载等情况、网络异常等等
udev源代码,用于管理linux下设备文件
可以利用udev、sys动态创建linux设备结点.docx
本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的...
linux下udev设备文件管理介绍资料.pdf
linux下udev设备文件管理介绍借鉴.pdf
利用Udev在linux设备装载时实现易于识别的设备文件名.pdf
适用与海思平台下udev使用u盘的自动挂载,自动卸载功能
suse使用udev管理asm
Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结文档,使用udev固定设备名,解决系统重启后设备名变化等问题。
udev是linux kernel的设备管理器,在内核版本中kernel_3.10开始的版本中,使用udev已经代替了以前devfs、hotplug等功能,意味着它要处理添加/删除硬件时,所有的用户空间行为。
1. 在/etc/udev/rules目录下新建11-add-usb.rules和11-add-remove.rules,负责设备监测。 root@am335x-evm:/etc/udev/rules.d# vi 11-add-usb.rules ACTION!="add",GOTO="farsight" KERNEL=="sd[a-z][0-9]",RUN+=...
那我们现在如何通过udev和sys文件系统动态创建设备结点呢? 下面通过一个实例,说明udev、sys动态创建设备结点的方法。注意代码中红色的部分是为了实现动态创建设备结点添加的。 #include <linux> #include...
作为守护进程, udev 接收的事件主要由 linux 内核生成,这些事件是外部设备产生的物理事件。总之, udev 探测外设和热插拔,将设备控制权传递给内核,例如加载内核模块或设备固件。 作为 devfsd 和 hotplug 的替代...
本文档详细介绍了linux下udev的配置规则