linux udev的配置是什么
Linux udev的配置是一个很复杂的主题,这里我们只讨论一下最基本的配置。
首先,需要在/etc/udev/rules.d/目录下创建一个文件,命名规则是:
<数字>-<规则名称>.rules
例如:
10-myrules.rules
这个文件的内容是一个或多个规则,每个规则都包括一个或多个属性,属性用等号分隔。
规则的格式如下:
<规则名称>:<属性1>=<值1>,<属性2>=<值2>,...
例如:
KERNEL=="sda", ACTION=="add", ATTR{bios_grub}="1"
KERNEL=="sda", ACTION=="add", ATTR{bios_grub}="0"
上面的规则名称分别是"KERNEL=="sda", ACTION=="add", ATTR{bios_grub}"和"KERNEL=="sda", ACTION=="add", ATTR{bios_grub}", 属性分别是"bios_grub"和"bios_grub", 值分别是"1"和"0"。
规则的作用是当内核发现一个新的设备(例如一个硬盘)时,会按照规则的顺序执行。
在这个例子中,如果内核发现一个新的硬盘设备,它会检查硬盘的"bios_grub"属性,如果属性值为"1",则会启动grub,如果属性值为"0",则不会启动grub。
规则的执行顺序是按照规则名称的数字顺序来执行的,数字越小的规则越先执行。
在这个例子中,如果我们将规则名称改为"11-myrules.rules",则规则将会比"10-myrules.rules"先执行。
需要注意的是,规则文件中可以包含空行和注释行,注释行以"#"开头。
例如:
# This is a comment
规则文件也可以包含一些预定义的规则,这些规则可以用来简化规则的书写。
例如:
%s/<规则名称>/<新规则名称>/
%A+="<属性>=<值>"
%A-="<属性>"
%p+="<属性>"
%p-="<属性>"
上面的规则会将所有匹配"<规则名称>"的规则都替换为"<新规则名称>","%A+"会在所有匹配的规则中添加一个新的属性"<属性>=<值>","%A-"会在所有匹配的规则中删除属性"<属性>","%p+"会在所有匹配的规则中添加一个新的属性"<属性>","%p-"会在所有匹配的规则中删除属性"<属性>"。
例如:
# This will replace all rules with name "sda" with name "sdb"
%s/sda/sdb/
# This will add a new property "bios_grub" with value "1" to all rules
%A+="bios_grub=1"
# This will delete property "bios_grub" from all rules
%A-="bios_grub"
# This will add a new property "bios_grub" with value "1" to all rules that have property "bios_grub"
%p+="bios_grub=1"
# This will delete property "bios_grub" from all rules that have property "bios_grub"
%p-="bios_grub"
相关文章