UDEV规则参数详细解释使用

  

  Udev的使用,linux系统创建设备节点
  ,
  Linux里都是以设备文件的形式存在。在早期的Linux版本中,/dev目录包含了所有可能出现的设备的设备文件。但因为这样Linux用户很难在这些大量的设备文件中找到匹配条件的设备文件。现在udev只为那些连接到Linux操作系统的设备产生设备文件,并且udev能通过定义一个udev规则(规则)来产生匹配设备属性的设备文件,这些设备属性可以是内核设备名称,总线路径,厂商名称,型号,序列号或者磁盘大小等等。
  ,
  动态自动管理设备信息:当有设备添加/删除时,udev的守护进程侦听到来自内核的uevent的事件,用来添加或者删除/dev下的设备文件,所以udev可以只为已经连接的设备产生设备文件,而不会象2.4内核一样在/dev下产生大量设备文件。另外可以使用这个功能,当有设备加入时运行外部的程序,比如鼠标加入时自动禁用触摸板之类
  使用自定义命名和管理设备:使用Udev规则文件,Udev在/dev/里为所有的设备定义了内核设备名称,比如/dev/sda,/dev/,注重科技进步/dev/fd等等。由于Udev是在用户空间(用户空间)运行,Linux用户可以接下来对这些信息进行操作,比如可以通过自定义的规则文件,生成人性的设备标识,比如/dev/my_disk,/dev/nameusb等,还能对设置进行参数成员用户组权限之类的修改。
  ,
  开始之类需要了解
  ,吗?sysfs: sysfs是Linux 2.6内核里的一个虚拟文件系统(/sys)。它把设备和驱动的信息从内核的设备模块导出到用户空间(用户空间),从该文件系统中,Linux用户可以获取很多设备的属性。
  ,吗?devpath:本文的devpath是指一个设备在sysfs文件系统(/sys)下的相对路径,该路径包含了该设备的属性文件.udev里的多数命令都是针对devpath操作的,例如:sda的devpath是/块/sda sda2的devpath是/块/sda/sda2。
  ,吗?内核设备名称:设备在sysfs里的名称,是udev默认使用的设备文件名。
  ,
  udev主配置文件
  ,
  主要的udev主配置文件是/etc/udev/udev.相依这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:
  ,   

  

  ,   

  

  
  ,   

  

  udev_root=/dev/,#设置的绝对路径,相当于创建chroot的根。
  ,
  udev_rules=/etc/udev/rules.d/,,,#规则的存放地址
  ,
  udev_log=err ,,,,#日志的输入级别
  ,   

  

  ,
  ,
  udev的规则配置文件实例
  ,
  ,
  默认的规则配置文件存放在/etc/udev/rules.d/中,我们进入这个可以看到RedHat默认对设备建好的一些规则和一些硬件公司写好的规则。
  进入目录,可以见到以二位数字开头的前缀的配置文件,可以使用vi进入配置文件中查看,一行是一条规则,默认是从小数字到大数字,这些表示生效的顺序。
  ,
  我们在使用udev写规则前,先来看一个例子
  ,   

  

  ,   

  

  
  ,内核==sd *,程序=/lib/udev/scsi_id - g - s % p,结果==123456,符号链接=% k_ % c
  ,
  ,   

  

  ,
  ,
  该规则的执行:如果有一个内核设备名称以sd开头,且SCSI ID为123456,则为设备文件产生一个符号链接“sda_123456”又是;% p % k % c请看后面的“udev的值和可调用的替换操作符"
  ,
  ,
  ,
  ,
  udev的规则配置文件
  ,
  在规则文件里,除了以“#”开头的行(注释),所有的非空行都被视为一条规则,但是一条规则不能扩展到多行。规则都是由多个键值对(键-值对)组成,并由逗号隔开,键值对可以分为条件匹配键值对(以下简称“匹配键”)和赋值键值对(以下简称“赋值键”),一条规则可以有多条匹配键和多条赋值键。匹配键是匹配一个设备属性的所有条件,当一个设备的属性匹配了该规则里所有的匹配键,就认为这条规则生效,然后按照赋值键的内容,执行该规则的赋值。
  规则文件里的规则有一系列的键/值对组成,键/值对之间用逗号(,)分割。
  ,
  通过上面例子中也能看的出,这些配置,但我想大家可能会产生疑惑,为什么内核是匹配键,而名称和模式是赋值键呢?这由中间的操作符(运营商)决定。
  ,
  仅当操作符是“==被蛘? !="时,其为匹配键;若为其他操作符时,都是赋值键。   

UDEV规则参数详细解释使用