【问题标题】:Run something when USB device is plugged in doesn't work插入 USB 设备时运行某些东西不起作用
【发布时间】:2012-07-02 23:43:53
【问题描述】:

我在 /etc/udev/rules.d/local.rules 中做了一个脚本

SUBSYSTEM=="usb", SYSFS{idVendor=="b58e"}, SYSFS{idProduct=="9e84"}, ACTION=="add", RUN+="notify-send USB"

然后我用

重新加载udev
 sudo udevadm control --reload-rules

我试图删除除子系统之外的所有内容并运行。我试过运行'='而不是'+=',我厌倦了ATTR而不是SYSFS。我试过“sudo service udev restart”和“sudo reload udev”。我拔下设备,然后重新插入,它不运行该操作。我尝试将其重命名为 70-local.rules 并将权限更改为 a+x。我尝试将“子系统”更改为“总线”。我尝试将运行设置为具有相同命令的“/path/test.sh”。

【问题讨论】:

    标签: linux ubuntu usb udev kubuntu


    【解决方案1】:

    我不是专家,这不是答案,但我发现以下步骤有助于确定要触发的适当属性:

    1. 使用udevadmlsusbusb-devices 定位设备路径。我通常只使用 lsusb 并让我的 shell 中的制表符完成指导我。在我的例子中,路径是/dev/bus/usb/003/007
    2. 使用udevadm 标识设备属性以进行规则编写。就我而言,我使用了udevadm info -a --attribute-walk --root --name=/dev/bus/usb/003/007
    3. 编写规则并检查它是否正在触发。就我而言,我只是将设备所有者更改为用户“stephen”,我很容易通过使用ls -l /dev/bus/usb/003/007 来检查它是否正常工作。我对这种情况的规则如下:SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", OWNER="stephen"。我有一个类似的规则让我困惑了一会儿,因为子系统期待ATTRS 而不是ATTR,这就是为什么我建议遍历属性。后一种情况的规则变为:`SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", OWNER="stephen"。

    当然,man udev 总是很有帮助。正如您所说,您应该努力确定您的规则是否正确触发,并且最好像我在第一步中所做的那样在设备上进行快速所有权更改。有时您可能会遇到错误的属性或符号链接的麻烦,这是

    【讨论】:

    • 这对我来说是 ATTR 并且 udev 规则指定 RUN 命令将程序文件作为输入。它必须标记为可执行文件,并且必须带有 #!如果它是解释的,则在顶部。小组的事情意识到它正在工作,但运行是错误的。这终于奏效了。谢谢!
    【解决方案2】:

    它不运行操作

    不,它运行动作。问题在于 它不知道将通知发送到哪里,因为 udev 启动时没有运行通知框架。您需要通过系统总线发送 DBus 消息,并让用户守护进程捕获该消息并发布通知。

    【讨论】:

    • 谢谢。我将文件更改为仅包含 SUBSYSTEM=="usb"、ACTION=="add"、RUN="echo 1 > /tmp/foo"。虽然它似乎没有制作文件。不管有没有 SYSFS 的东西,我都试过了。
    • 现在它正在回显“1 > /tmp/foo”。
    • 我尝试了 [SUBSYSTEM=="usb", ACTION=="add", RUN="touch /tmp/asdfg"] 与 run [RUN="gimp"] [RUN=" echo '1' > /tmp/foo"] 以各种可能的方式重新加载。仍然没有运气。 Udev 在重新启动时说“udev 启动/运行,进程 5038”,所以我知道它正在运行。有没有办法确认它正在获取我的配置文件,或者如果它无法解析它们,让它吐出错误?
    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多