Linux 从udev规则中调用变量

Linux 从udev规则中调用变量,linux,embedded-linux,bitbake,udev,Linux,Embedded Linux,Bitbake,Udev,我有多个udev规则来检查ATTRS{name}==“abc123”,并在设备存在时调用各种函数。这些udev规则位于多个位置,因为这些规则是在bitbake中为自定义嵌入式操作系统创建的。现在,如果我想更改这个设备来测试不同的硬件,那么每次更改每个ATTR{name}调用都太耗时了 我的解决方案是在一些conf文件(待定)中定义一个var,例如$UDEVVAR=“[device_name]”,然后将每个ATTR{name}调用更改为类似ATTR{name}==“${UDEVVAR}” 我已经在

我有多个udev规则来检查ATTRS{name}==“abc123”,并在设备存在时调用各种函数。这些udev规则位于多个位置,因为这些规则是在bitbake中为自定义嵌入式操作系统创建的。现在,如果我想更改这个设备来测试不同的硬件,那么每次更改每个ATTR{name}调用都太耗时了

我的解决方案是在一些conf文件(待定)中定义一个var,例如$UDEVVAR=“[device_name]”,然后将每个ATTR{name}调用更改为类似ATTR{name}==“${UDEVVAR}”

我已经在为概念证明而编写的本地规则中测试了这种方法,尽管该规则没有调用。虽然遵循相同的概念,但这一地方规则有点不同。我随身携带的任何闪存驱动器都没有定义属性,所以我使用了一个usb鼠标和那个闪存驱动器。此udev规则是:

SUBSYSTEM==“${UDEVVAR}”,ACTION==“add”,RUN+=“/usr/local/bin/trigger.sh”

trigger.sh只是将日期时间戳写入日志文件。当硬编码子系统为==“block”时,规则将成功调用,但在定义UDEVVAR=“block”时,规则不会被调用。这个想法是,如果这有效,那么我将定义UDEVVAR=“hidraw”来测试鼠标

我似乎找不到关于任何人试图做这种事情的文档。我觉得我犯了一些语法错误,或者udev规则不允许这样的事情

谢谢你的帮助