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的规则文件中去。

原文地址:https://www.cnblogs.com/gxcstyle/p/7706129.html