【问题标题】:Run script or java batch is usb device is connected to raspberry pi运行脚本或 java 批处理是 USB 设备连接到树莓派
【发布时间】:2015-09-03 00:34:21
【问题描述】:

如果一个特殊的 USB 设备连接到我的树莓派,我正在尝试运行一个 shell 脚本。我尝试遵循以下描述:

http://ubuntuforums.org/archive/index.php/t-502864.html

我创建了一个名为 85-my_rule.rules 的文件,其内容为: ACTION=="add",SUBSYSTEM=="usb_device",SYSFS{idVendor}=="ffff",SYSFS{idProduct}=="1000",RUN+="/usr/bin/usbdevinserted"

我的脚本 usbdevinserted 有以下内容: echo "Dies ist ein Text" >>/tmp/text

如果我在 shell 上执行此脚本,则会使用内容“Dies ist ein Text”创建名为 text 的文本文件,因此该脚本可以正常工作。但是,如果我将 USB 设备连接到 rasppi,它似乎不会被执行。所以我认为,错误在我的规则中,但我找不到它。谁能帮帮我?

您好, 安德烈亚斯

【问题讨论】:

    标签: shell usb raspberry-pi execute


    【解决方案1】:

    供应商和产品 ID 是否正确?

    ffff 和 1000 看起来很奇怪,但有可能(例如某些评估板)。

    通常,“dmesg”会打印出 VID/PID(插拔几次,“dmesg”,检查最后几行)

    另外,请仔细检查是否是十六进制转换问题(尝试十进制 65535 和 4096)

    【讨论】:

    • 嗨,是的,我认为这些值是正确的。我执行了 lsusb (如上所述)并显示了 4 行。然后我连接我的 USB 设备(数码相框)并再次执行 lsusb。唯一更改的行是具有这些值的行。
    【解决方案2】:

    我找到了解决方案。我不得不将我的规则更改为以下规则:

    ACTION=="add",SUBSYSTEM=="block",KERNEL=="sd*[!0-9]|sr*",RUN+="/usr/bin/usbdevinserted"
    

    我的脚本现在是:

    #!/bin/bash
    echo "Dies ist ein Text" >>/tmp/text
    

    但我不知道为什么我必须在脚本中插入第一行。有人可以解释一下这条线吗?

    您好, 安德烈亚斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      相关资源
      最近更新 更多