linux的UDEV

引用:踏雪寻熊的文章

linxu的设备管理器

自2.6内核开始,就能够使用udev协助管理系统中各设备名称,udev能动态地在/dev目录里产生自定义的,标识性强的设备文件或设备链接。

从本质来讲,UDEV是一种对定义好的规则的应用,这个规则以文件的形式保存在"/etc/udevrules.d"目录下。规则的定义能够采用多种方式,咱们须要作的是肯定设备以及说明但愿UDEV用它作什么。

udev原理和结构

udev是一种工具,他可以根据系统中硬件设备的状态动态更新设备文件,包括完成对设备文件的建立,删除和刷新。

udev原理和结构
    当udev从kernel收到设备add/remove事件后,udev将解析:
    /etc/udev/rules.d目录中的用户自定义规则文件只用自定义规则输出(可选的)
    从sys中查询相应信息
    根据解析的信息,udev聚集处理设备命名:
    将肯定建立什么设备文件(device file )或符号连接(symlink)
    肯定如何设设备文件属性
    肯定后续操做

配置udev

KERNEL==sd* ,PROGRAM=/lib/udev/scsi_id -g -s %p,RESULT==123456,SYMLINK=%k_%c
    
    该规则的的执行是:若是一个内核设备名称以sd开头,且SCSI_ID为123456,则为设备文件产生一个符号连接“sda_123456”

udev中的相关的指令:


"KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i", NAME="asm-disk\(i\", OWNER=\"oracle\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules 其中这句话的含义是将KERNEL==以sd开头的,BUS是scsi的,PROGRAM接受/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name指令并将结果传递给RESULT, 假如符合上述条件的话,则将该设备命名为 NAME=\"asm-disk\)i",全部者OWNER="oracle", 所属于的组 GROUP="asmadmin", 授予的权限是 GROUP="asmadmin" 并将这些内容写到 /etc/udev/rules.d/99-oracle-asmdevices.rules udev的规则文件中去。html

相关文章
相关标签/搜索