udev 规则学习
来源:互联网 发布:三国志9pk优化补丁 编辑:程序博客网 时间:2024/05/22 17:02
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/rm -fr /media/usb_%k"
ACTION=="add", KERNEL=="sd[a-z]", RUN+="/bin/umount -l /media/usb_%k"
ACTION=="add", KERNEL=="sd[a-z]", RUN+="/bin/rm -fr /media/usb_%k"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mkdir -p /media/usb_%k"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount /dev/%k /media/usb_%k -o iocharset=cp936"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount -t msdos /dev/%k /media/usb_%k -o iocharset=cp936"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/umount -l /media/usb_%k"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/rm -rf /media/usb_%k"
ACTION=="add", KERNEL=="sd[a-z]", RUN+="/bin/mkdir -p /media/usb_%k"
ACTION=="add", KERNEL=="sd[a-z]", RUN+="/bin/mount /dev/%k /media/usb_%k -o iocharset=cp936"
ACTION=="add", KERNEL=="sd[a-z]", RUN+="/bin/mount -t msdos /dev/%k /media/usb_%k -o iocharset=cp936"
ACTION=="remove", KERNEL=="sd[a-z]", RUN+="/bin/umount -l /media/usb_%k"
ACTION=="remove", KERNEL=="sd[a-z]", RUN+="/bin/rm -rf /media/usb_%k"
mkdir -p 命令,有-p选项,如果父目录不存在,则直接创建父目录,并创建子目录。
规则文件名,前面数字越小越先被解析
3.(文件名中的)50为默认值;数值越小越先被解析。
规则说明:
1.udev从头到尾逐行解析每个规则文件,每行代表一个规则,每个规则由若干"键-值"(key-value)对组成。
2.键分为两种:匹配键(match key)、赋值键(assignment key)。
3.每个规则必须至少有一个匹配键和一个赋值键。
4.每个规则一行,不可换行。
5.不可在一行规则中混合匹配两个不同父设备的属性。
6.创建的设备节点的mode默认值为0666
7.外部程序不会在终端执行,要确保程序为可执行,且脚本以shebang开头,终端不会有任何输出。
8.用于获取名称的外部程序运行时,设备节点尚未创建,所以不能访问设备节点。
常用匹配键:
* KERNEL - 匹配设备在内核中的命名
* SUBSYSTEM - 匹配设备(在sysfs中)的subsystem名
* DRIVER - 匹配设备对应的驱动名
* ATTR - 匹配设备在sysfs中属性
* KERNELS - 匹配设备及其父亲在内核中的命名
* SUBSYSTEMS - 匹配设备及其父亲(在sysfs中)的subsystem名
* DRIVERS - 匹配设备及其父亲对应的驱动名
* ATTRS - 匹配设备及其父亲在sysfs中属性
注:父亲表示直到最上层的所有祖先
规则样例:
- # 如果有设备被内核命名为hdb,那么创建设备节点my_disk替代hdb(即用/dev/my_disk取代/dev/hdb)
- KERNEL=="hdb", NAME="my_disk"
- # 如果匹配到这样一个设备:内核命名为hdb且驱动为ide-disk;那么维持原设备节点名不变
- # 但是为它创建一个叫sparedisk的符号连接(/dev/sparedisk->/dev/hdb)
- KERNEL=="hdb", DRIVER=="ide-disk", SYMLINK+="sparedisk"
- # 为hdc创建两个符号连接cdrom和cdrom0
- KERNEL=="hdc", SYMLINK+="cdrom cdrom0"
- # 如果从sysfs匹配到一个块设备且大小为234441648则为它的设备节点创建符号连接my_disk
- SUBSYSTEM=="block", ATTR{size}=="234441648", SYMLINK+="my_disk"
- # 为/dev/mice创建符号连接/dev/input/mice
- KERNEL=="mice", NAME="input/%k"
- # 为loop0创建设备节点/dev/loop/0,并为它创建符号连接/dev/loop0
- KERNEL=="loop0", NAME="loop/%n", SYMLINK+="%k"
- # 为fd0~fd9创建设备节点/dev/floppy/(0~9),并为它们创建符号连接/dev/fd(0~9)
- KERNEL=="fd[0-9]*", NAME="floppy/%n", SYMLINK+="%k"
- # 为hiddev字符串开头的设备创建设备节点/dev/usb/diddev*
- KERNEL=="hiddev*", NAME="usb/%k"
- # 设置设备节点的group、owner、mode
- KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video", OWNER="john", MODE="0666"
- # 使用外部程序device_namer(hda为程序参数)的输出作为符号连接名
- KERNEL=="hda", PROGRAM="/bin/device_namer %k", SYMLINK+="%c"
- # 外部程序输出必须以单个空格隔开每个单词; %c{n}表示第n个单词; %c{n+}表示从第n个到最后的所有单词;
- KERNEL=="hda", PROGRAM="/bin/device_namer %k", NAME="%c{1}", SYMLINK+="%c{2+}"
- # 运行外部程序
- KERNEL=="sdb", RUN+="/usr/bin/my_program"
- # 设置udev环境变量
- KERNEL=="fd0", SYMLINK+="floppy", ENV{some_var}="value"
- # 附加选项
- KERNEL=="sda", GROUP="disk", OPTIONS+="last_rule"
- udev 规则学习
- udev规则
- udev规则
- udev规则
- udev规则
- udev规则
- udev规则说明
- udev的规则
- udev -- 规则 工具 原理
- udev的自定义规则
- udev -- 规则 工具 原理
- 写udev 规则
- Linux udev规则编写
- Linux udev规则编写
- udev 规则文件介绍
- UDEV规则和调试
- udev规则简介
- udev规则以及编写
- 多线程
- perror 和 strerror 的区别
- Codec,container format的含义
- ModelMaker Code Explorer 通用破解方法
- CBitmap HBITMAP BITMAP 关系
- udev 规则学习
- 通过CCID获得各个段的描述的方法
- HTTP协议详解
- 十个你需要知道的正则表达式
- 初学Android,图形图像之补间动画(三十六)
- 形象的说明CSMA/CD原理
- Maven implicit Properties(隐含变量)
- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE原因及解决方案
- JavaScript在IE下设置innerHTML时出现"未知的运行时错误"