我正在研究机器人,我需要能够快速加载新代码。到目前为止,我已经用尽了其他选项(包括使用微型SD卡。我们宁愿将其保留在pi中以防止它丢失。我们仍然将自动运行文件放在microSD卡上)。我在Raspberry Pi上运行Arch Linux。我需要的是一个shell文件,它在启动时自动运行(或插入闪存驱动器时)。 shell文件需要运行名为main.py
的python程序和名为.sh
的{{1}}文件。我不是要求你给我一个完全符合我想要的文件(虽然会受到赞赏),但我正在寻找我需要的资源。如果有帮助,任何时候都只有一个USB闪存盘。
答案 0 :(得分:0)
这可以使用udev
规则来完成。首先,您需要使用lsusb
记下USB的一些属性:
$ lsusb
Bus 003 Device 011: ID 0bc2:2100 Seagate RSS LLC
现在,这里
Vendor ID ==> 0bc2
Product ID ==> 2100
请注意特定的USB驱动器。现在在新文件/etc/udev/rules.d/myrule.rules
中创建一个新的udev规则,并在其中添加以下行:
ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2100", RUN+="/home/main.py"
ATTRS{idVendor}=="0bc2", ATTRS{idProduct}=="2100", RUN+="/home/update.sh"
答案 1 :(得分:0)
我知道这个答案已经很晚了,但未来可能会帮助其他人。
更一般地说,你可以在.rules文件中创建一行:
KERNEL==”sd[a-z]”, SUBSYSTEM==”block”, ACTION==”add”, RUN+=”/home/pi/filename.sh”
我没有直接从udev运行python文件的运气,但是我创建了一个.sh文件并运行了python文件。
filename.sh:
#!/bin/sh
Python /home/pi/PythonScriptName.py