udev

  • 什么是 udev

           udev 是 Linux 系统下的一套设备管理系统,在 /dev 目录下动态的 创建/删除 设备节点。


  • udev 的工作机制

           1. udev 以守护进程的方式运行,工作于用户空间,它监听一个 netlink socket;

           2. 当有新设备接入或设备从系统中移除时,系统内核通过这个 socket 向 udev 发送 uevent;

           3. udev 接受到 uevent 后,跟据设备信息(从 sysfs 中获取):

                    3.1 依照系统和用户定义的规则(rules)来管理 /dev 目录下的设备节点;

                    3.2 使用 modalias 方法加载设备驱动 (根据设备信息和文件 /usr/lib/modules/`uname -r`/modules.alias)。


  • udev 的运行流程

           1. 系统启动时,/dev 加载于 tmpfs

           2. udev 复制 /lib/udev/devices 目录下的静态设备节点到 /dev

           3. udev 接受来自内核的设备 uevent,根据设备信息与系统和用户定义的 rules,在 /dev 目录下添加设备节点、加载驱动

           4. 当有新设备接入或设备从系统中移除时,udev 接受内核的 uevent,依照系统和用户定义的规则(rules)来管理 /dev 目录下的设备节点


  • rules

           规则文件(按优先级):

                 1. /etc/udev/rules.d/*.rules

                 2. /run/udev/rules.d/*.rules

                 3. /usr/lib/udev/rules.d/*.rules


            udev 规则文件必须以 .rules 后缀结束,rules 文件中一行一条规则;

            udev 规则由一系列逗号间隔的 key-value 对组成,key-value 对有两种: match 和 assignment。当所有 match 都匹配时,将执行 assignment 操作。


            具体规则文件的编写可参考 Writing udev rules。


  • 工具

          udevadm - 设备管理工具,参见 udevadm(8)。


相关链接:

1. Udev: Introduction to Device Management In Modern Linux System

2. udev(7)

3. udevadm(8)

4. Writing udev rules

你可能感兴趣的:(linux,udev)