我正在尝试运行shell脚本,如果一个特殊的USB设备连接到我的覆盆子pi。我试图遵循以下描述:
http://ubuntuforums.org/archive/index.php/t-502864.html
我创建了一个名为85-my_rule.rules的文件,内容如下: ACTION == “添加”,SUBSYSTEM == “USB_DEVICE”,SYSFS {idVendor} == “FFFF”,SYSFS {idProduct} == “1000”,RUN + = “/ USR /斌/ usbdevinserted”
我的脚本usbdevinserted具有以下内容: echo“Dies ist ein Text”>> / tmp / text
如果我在shell上执行此脚本,则创建名为text ist的文本文件,其内容为“Dies ist ein Text”,因此脚本可以正常工作。但是,如果我将一个usb设备连接到rasppi,它似乎不会被执行。所以我认为,错误在我的规则中,但我找不到它。有人可以帮帮我吗?
问候, 安德烈亚斯
答案 0 :(得分:0)
供应商和产品ID是否正确?
ffff和1000看起来很奇怪,但有可能(例如某些评估板)。
通常,“dmesg”打印出VID / PID(插拔几次,“dmesg”,检查最后一行)
另外,仔细检查是否是十六进制转换问题(尝试十进制65535和4096)
答案 1 :(得分:0)
我找到了解决方案。我不得不将我的规则改为以下规则:
ACTION=="add",SUBSYSTEM=="block",KERNEL=="sd*[!0-9]|sr*",RUN+="/usr/bin/usbdevinserted"
我的脚本现在是:
#!/bin/bash
echo "Dies ist ein Text" >>/tmp/text
但我不知道为什么我必须在我的脚本中插入第一行。有人可以解释一下这条线吗?
问候, 安德烈亚斯