fbpx
维基百科

udev

udev 是Linux kernel的设备管理器,主要管理/dev目錄底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。

udev
開發者Greg Kroah-Hartman和Kay Sievers
首次发布2003年11月,​19年前​(2003-11
目前版本
  • 252 (2022年10月31日)[1]
源代码库
  • github.com/systemd/systemd
编程语言C
操作系统Linux内核
类型设备节点
许可协议GPLv2
网站官方网站

udev的最新版本依赖于升级后的Linux kernel 2.6.13的uevent接口的最新版本。使用新版本udev的系统不能在2.6.13以下版本启动,除非使用noudev参数来禁用udev并使用传统的/dev来进行设备读取。

2012年4月,udev被合併至systemd

概要

在传统的Linux系统中,/dev目录下的设备节点为一系列静态存在的文件,而udev则动态提供了在系统中实际存在的设备节点。虽然devfs提供了类似功能,udev的支持者也给出了很多udev实现得比devfs好的理由[2]

  • udev支持设备的固定命名,而并不依赖于设备插入系统的顺序。默认的udev设置提供了存储设备的固定命名。可以使用其vid(vendor)、pid(device)、设备名称(model)等属性或其父设备的对应属性来确认某一设备。
  • udev完全在用户空间执行,而不是像devfs在内核空间一样执行。结果就是udev将命名策略从内核中移走,并可以在节点创建前用任意程序在设备属性中为设备命名。

运行方式

udev是一个通用的内核设备管理器。它以守护进程的方式运行于Linux系统,并监听在新设备初始化或设备从系统中移除时,内核(通过netlink socket)所发出的uevent。

系统提供了一套规则用于匹配可发现的设备事件和属性的导出值。匹配规则可能命名并创建设备节点,并运行配置程序来对设备进行设置。udev规则可以匹配像内核子系统、内核设备名称、设备的物理等属性,或设备序列号的属性。规则也可以请求外部程序提供信息来命名设备,或指定一个永远一样的自定义名称来命名设备,而不管设备什么时候被系统发现。

系统架构

udev系统可以分为三个部分:

  • libudev函数库,可以用来获取设备的信息。
  • udevd守护进程,处于用户空间,用于管理虚拟/dev
  • 管理命令udevadm,用来诊断出错情况。

系统获取内核通过netlink socket发出的信息。早期的版本使用hotplug,并在/etc/hotplug.d/default添加一个链接到自身来达到目的。

命令格式

BUS 总线 KERNEL 内核名如sd* ID 设备id 如总线id PLACE

SYSFS{filename} 或 ATTR{filename}

PROGRAM 调用外部程序 RESULT 匹配program返回的结果 NAME

SYMLINK 连接规则

编写规则

udev配置文件是/etc/udev/udev.conf,文件内容中很重要的一项是指定udev规则存储的目录,形如udev_rules=“/etc/udev/rules.d”. 指定的目录中存储一系列以.rules结束的规则文件,每个文件处理一系列规则来帮助udev分配名字给设备文件并保证内核可以识别此名字。

规则文件由系列键-值对组成,键值对分两类:匹配键(使用操作符"==","!="等)和赋值键(使用"=","+=",":="等)。匹配键判断规则是否应被应用,赋值键可以被分配一到多个值。

有些常用的键已经有了固定的含义,这里列举出最基本的几个。这也是基本规则之一,更多编辑规则请参见man udev页。

  • KERNEL - 匹配设备的内核名字
  • SUBSYSTEM - 匹配设备的子系统
  • DRIVER - 匹配设备驱动名
  • NAME - 应当被采用为设备节点的名字
  • SYMLINK - 一系列被作为设备节点替补名字的符号链接

常用键举例:KERNEL=="hdb", DRIVER=="ide-disk", NAME="my_spare_disk", SYMLINK+="sparedisk"

作者

udev由Greg Kroah-Hartman和Kay Sievers共同开发,并得到Dan Stekloff等人的帮助。

參見

外部链接

  • (英文)
  • (英文)
  • (英文)如何编写udev规则 (页面存档备份,存于互联网档案馆
  • (英文)
  • (英文)Gentoo的udev指南 (页面存档备份,存于互联网档案馆
  • (英文)
  • (英文)
  • (英文)

参考文献

  1. ^ Release 252. 2022年10月31日 [2022年11月13日]. 
  2. ^ . 2003-12-30 [2008-01-13]. (原始内容存档于2011-04-11) (英语).  Authors list列表中的|first1=缺少|last1= (帮助)

udev, 是linux, kernel的设备管理器, 主要管理, dev目錄底下的设备节点, 它同时也是用来接替devfs及hotplug的功能, 这意味着它要在添加, 删除硬件时处理, dev目录以及所有用户空间的行为, 包括加载firmware时, 開發者greg, kroah, hartman和kay, sievers首次发布2003年11月, 19年前, 2003, 目前版本252, 2022年10月31日, 源代码库github, systemd, systemd编程语言c操作系统linux内核类型设备. udev 是Linux kernel的设备管理器 主要管理 dev目錄底下的设备节点 它同时也是用来接替devfs及hotplug的功能 这意味着它要在添加 删除硬件时处理 dev目录以及所有用户空间的行为 包括加载firmware时 udev開發者Greg Kroah Hartman和Kay Sievers首次发布2003年11月 19年前 2003 11 目前版本252 2022年10月31日 1 源代码库github wbr com wbr systemd wbr systemd编程语言C操作系统Linux内核类型设备节点许可协议GPLv2网站官方网站udev的最新版本依赖于升级后的Linux kernel 2 6 13的uevent接口的最新版本 使用新版本udev的系统不能在2 6 13以下版本启动 除非使用noudev参数来禁用udev并使用传统的 dev来进行设备读取 2012年4月 udev被合併至systemd 目录 1 概要 2 运行方式 3 系统架构 4 命令格式 5 编写规则 6 作者 7 參見 8 外部链接 9 参考文献概要 编辑在传统的Linux系统中 dev目录下的设备节点为一系列静态存在的文件 而udev则动态提供了在系统中实际存在的设备节点 虽然devfs提供了类似功能 udev的支持者也给出了很多udev实现得比devfs好的理由 2 udev支持设备的固定命名 而并不依赖于设备插入系统的顺序 默认的udev设置提供了存储设备的固定命名 可以使用其vid vendor pid device 设备名称 model 等属性或其父设备的对应属性来确认某一设备 udev完全在用户空间执行 而不是像devfs在内核空间一样执行 结果就是udev将命名策略从内核中移走 并可以在节点创建前用任意程序在设备属性中为设备命名 运行方式 编辑udev是一个通用的内核设备管理器 它以守护进程的方式运行于Linux系统 并监听在新设备初始化或设备从系统中移除时 内核 通过netlink socket 所发出的uevent 系统提供了一套规则用于匹配可发现的设备事件和属性的导出值 匹配规则可能命名并创建设备节点 并运行配置程序来对设备进行设置 udev规则可以匹配像内核子系统 内核设备名称 设备的物理等属性 或设备序列号的属性 规则也可以请求外部程序提供信息来命名设备 或指定一个永远一样的自定义名称来命名设备 而不管设备什么时候被系统发现 系统架构 编辑此條目需要更新 2014年1月15日 請更新本文以反映近況和新增内容 完成修改時 請移除本模板 udev系统可以分为三个部分 libudev函数库 可以用来获取设备的信息 udevd守护进程 处于用户空间 用于管理虚拟 dev 管理命令udevadm 用来诊断出错情况 系统获取内核通过netlink socket发出的信息 早期的版本使用hotplug 并在 etc hotplug d default添加一个链接到自身来达到目的 命令格式 编辑BUS 总线 KERNEL 内核名如sd ID 设备id 如总线id PLACESYSFS filename 或 ATTR filename PROGRAM 调用外部程序 RESULT 匹配program返回的结果 NAMESYMLINK 连接规则编写规则 编辑udev配置文件是 etc udev udev conf 文件内容中很重要的一项是指定udev规则存储的目录 形如udev rules etc udev rules d 指定的目录中存储一系列以 rules结束的规则文件 每个文件处理一系列规则来帮助udev分配名字给设备文件并保证内核可以识别此名字 规则文件由系列键 值对组成 键值对分两类 匹配键 使用操作符 等 和赋值键 使用 等 匹配键判断规则是否应被应用 赋值键可以被分配一到多个值 有些常用的键已经有了固定的含义 这里列举出最基本的几个 这也是基本规则之一 更多编辑规则请参见man udev页 KERNEL 匹配设备的内核名字 SUBSYSTEM 匹配设备的子系统 DRIVER 匹配设备驱动名 NAME 应当被采用为设备节点的名字 SYMLINK 一系列被作为设备节点替补名字的符号链接常用键举例 KERNEL hdb DRIVER ide disk NAME my spare disk SYMLINK sparedisk 作者 编辑udev由Greg Kroah Hartman和Kay Sievers共同开发 并得到Dan Stekloff等人的帮助 參見 编辑硬件抽象層 DKMS外部链接 编辑 英文 udev在kernel org的主页 英文 Kay Sievers写的udev最近动态 英文 如何编写udev规则 页面存档备份 存于互联网档案馆 英文 udev问答集 英文 Gentoo的udev指南 页面存档备份 存于互联网档案馆 英文 udev和devfs的对比 英文 Linux1394常见问题 在不同驱动器上创建设备节点要如何设置udev规则 英文 udev教程参考文献 编辑 Release 252 2022年10月31日 2022年11月13日 udev and devfs The final word 2003 12 30 2008 01 13 原始内容存档于2011 04 11 英语 Authors list列表中的 first1 缺少 last1 帮助 取自 https zh wikipedia org w index php title Udev amp oldid 69815296, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。