Home udev 概念
Post
Cancel

udev 概念

Udev 是指 “userspace /dev” ,目前它已是systemd系统的一部分(2012年后),Udev的设计取代了老式的devfs和hotplug机制

Udev是linux系统的设备管理器,主要来管理 /dev 下的设备节点文件,还会处理硬件设备热拔插时引发的用户空间事件,以及某些设备的固件加载。 内核通常根据发现设备的顺序分配设备名,有不可预知性,udev可以基于设备属性或当前配置来可靠地识别设备。

systemd具体服务:systemd-udevd.service,它作为damon运行,持续监听内核的uevent事件。对于每个内核发来的event,systemd-udevd会 执行匹配的指令,指令的匹配细节配置在 /etc/udev中。为了配合udev完成设备的管理,(设备信息,驱动等都在内核中,用户态无法直接获得),内核 通过sysfs文件系统将必要的设备信息导出到用户空间。内核会为每一个探测到的设备创建一个同设备名的文件夹(在/sysfs/中),里面包含了各种 设备的属性相关文件。udev通过查看这些文件确定硬件设备。另外,每次设备新加入或移出或产生变化时,内核会发送uevent信号提醒udev设备的变化。 udev根据信号执行匹配的规则来标识设备。规则的配置参考man 5 udev.conf,另外还有 udevadm工具可以动态改变规则。

udevd本身分为三部分:

  • 允许访问设备信息的libudev库。
  • 用户空间守护进程(sytemd) udevd,用于管理/dev。
  • 用于诊断的管理命令行实用工具udevadm。

Udev本身就分为这三个部分,但它完全依赖于内核设备管理和uevents调用,系统通过netlink套接字从内核获得调用。

参考手册:

1
2
3
4
man 7 udev
man 8 systemd-udevd.service
man 5 udev.conf
man 8 udevadm

参考: https://opensource.com/article/18/11/udev

https://zhuanlan.zhihu.com/p/51984452

https://zhuanlan.zhihu.com/p/373517974

https://blog.csdn.net/qq_30624591/article/details/92439991

This post is licensed under CC BY 4.0 by the author.

BitBake Install and Tests

个人的Petalinx流程简单封装脚本