1. 程式人生 > 其它 >七、udev配置-udev應用

七、udev配置-udev應用

7.1 udev事件監控
[root@node4 ~]# udevadm monitor --property
monitor will print the received events for:
UDEV - the event which udev sends out aYer rule processing
KERNEL - the kernel uevent
KERNEL[1376971904.652851] add /module/e1000 (module)
UDEV [1376971904.653279] add /module/e1000 (module)
KERNEL[1376971905.065797] add /devices/
pci0000:00/0000:00:11.0/0000:02:01.0/net/eth0 (net)
.. ..
7.2 配置udev
• 主配置檔案/etc/udev/udev.conf
– udev_root:建立裝置檔案位置,預設為/dev
– udev_rules:udev規則檔案位置,預設為/etc/udev/
rules.d
– udev_log:syslog優先順序,預設為err
• 檔案位置及格式
– /etc/udev/rules.d/<rule_name>.rules
– 例:75-custom.rules
• 規則格式
– <match-key><op><value>[,…]<assignmentkey><
op>value[,…]
– BUS=="usb",SYSFS{serial}
=="20043512321411d34721",NAME="udisk"
• 操作符
– ==:表示匹配
– != :表示不匹配
• 匹配示例
– ACTION=="add"
– KERNEL=="sd[a-z]1"
– BUS=="scsi"
– DRIVER!="ide-cdrom"
– PROGRAM=="myapp.pl",RESULT=="test"
• 操作符
– =:指定賦予的值
– +=:新增新值
– :=:指定值,且不允許被替換
• 示例
– NAME="udisk"
– SYMLINK+="data1"
– OWNER="student"
– MODE="0600"
7.3 udev變數
• 可以簡化或縮寫規則
KERNEL=="sda*",SYMLINK+="iscsi%n"
• 常用替代變數
– %k:核心所識別出來的裝置名,如sdb1
– %n:裝置的核心編號,如sda3中的3
– %p:裝置路徑,如/sys/block/sdb/sdb1
– %%:%符號本身
7.4 udev案例分析
SUBSYSTEM=="block",ENV{DEVTYPE}
="disk",KERNEL=="sdb",ENV{ID_VENDOR}
=="TOSHIBA",SYMLINK="udisk",RUN+="/usr/bin/wall udisk pluggedin"
SUBSYSTEM=="block",ACTION=="add",KERNEL=="sdb[0-9]",ENV{ID
_VENDOR_ID}=="0930",ENV{DEVTYPE}=="parMMon",NAME="udisk%n"
BUS=="scsi", SYSFS{serial}=="123456789", NAME="byLocaMon/rack1-shelf2-disk3"