使用udev规则操作内核设备名称

时间:2014-01-24 18:48:06

标签: linux bash device udev

我有一个bash脚本,它接受一个KERNEL设备名称作为参数,并输出一个新的字符串,可以用作新的KERNEL设备名称。

Example: 
bash myScript sda
output: sdaa

我为此目的使用自定义udev规则。

我不知道如何将参数传递给bash脚本并使用udev规则捕获结果输出。

以下是我尝试过的一些规则,

KERNEL=="sda", RUN+="/bin/bash /etc/udev/myScript '%E{KERNEL}'", NAME="%c"

KERNEL=="sda", IMPORT{program}="/bin/bash /etc/udev/myScript --export %k", NAME="%c"

KERNEL=="sda", IMPORT{program}="/bin/bash /etc/udev/myScript --import %k --export %c", NAME="%c"

我使用echo将我的字符串输出到标准输出。

2 个答案:

答案 0 :(得分:0)

设备属性可以通过设备属性传递给脚本(%k - 设备内核名称,%p - 设备的devpath)。您可以参考udev的手册页面了解所有可用的设备属性。

shell脚本的std输出通过“%c”提供给udev规则。 。

这个规则怎么样:

KERNEL=="sda", RUN+="/bin/bash /etc/udev/myScript %k", NAME="%c"

答案 1 :(得分:0)

无法更改设备节点的名称。只能创建额外的符号链接。

如果给 import slate3k as slate with open(file.pdf, 'rb') as f: extracted_text = slate.PDF(f) print(extracted_text) 键赋值,则只能更改网络接口的名称。

systemd udev documentation。旧的 standalone udevd

相同