首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用Udev规则

不使用Udev规则
EN

Unix & Linux用户
提问于 2013-09-04 18:25:42
回答 1查看 1.2K关注 0票数 1

我试图在Beaglebone上编写一个udev规则,当Pantech UML 295完成引导时运行它。

当使用udevadm monitor --environment时,我得到了下面的最后输出,我想以此作为规则的基础:

代码语言:javascript
复制
UDEV [3163.454297] add /devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-
1:1.0/net/eth1 (net)
ACTION=add
DEVPATH=/devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-1:1.0/net/eth1
ID_BUS=usb
ID_MODEL=PANTECH_UML295
ID_MODEL_ENC=PANTECH\x20UML295
ID_MODEL_ID=6064
ID_REVISION=0228
ID_SERIAL=Pantech__Incorporated_PANTECH_UML295_UML295692146818
ID_SERIAL_SHORT=UML295692146818
ID_TYPE=generic
ID_USB_DRIVER=cdc_ether
ID_USB_INTERFACES=:020600:0a0000:030000:
ID_USB_INTERFACE_NUM=00
ID_VENDOR=Pantech__Incorporated
ID_VENDOR_ENC=Pantech\x2c\x20Incorporated
ID_VENDOR_ID=10a9
IFINDEX=6
INTERFACE=eth1
SEQNUM=1151
SUBSYSTEM=net
SYSTEMD_ALIAS=/sys/subsystem/net/devices/eth1
TAGS=:systemd:
USEC_INITIALIZED=3163023666

我的udev规则第1版:

代码语言:javascript
复制
ENV{ID_BUS}=="usb", SUBSYSTEM=="net", RUN+="/home/root/rebootInternetConnection.sh", ENV{ID_MODEL}=="PANTECH_UML295", ACTION=="add", INTERFACE=="eth1", ENV{ID_USB_DRIVER}=="cdc_ether"

第2版:

代码语言:javascript
复制
ACTION=="add", SUBSYSTEM=="net", RUN+="/home/root/rebootInternetConnection.sh"

Version 2是一个精简版本,应该不止一次运行,但根本不运行。Version 1使用环境变量,我不确定规则是否可以访问这些变量。

澄清一下:规则根本不运行,shell脚本有应该显示的回声。我的规则位于/etc/udev/ rule es.d/目录中,名称为10-local.Rule。

编辑

以下是一些更多的非功能性规则,放在/etc/udev/rues.d/81-pantech中:

代码语言:javascript
复制
ACTION=="add", SUBSYSTEM=="net", ATTR{idVendor}=="10a9", RUN+="/home/root/reboot
InternetConnection.sh"

SUBSYSTEM=="net", ATTR{idVendor}=="10a9", ATTR{idProduct}=="6064", RUN+="/home/ro
ot/rebootInternetConnection.sh"

ACTION=="add", SUBSYSTEM=="hid", RUN+="/home/root/rebootInternetConnection.sh"

ACTION=="add", SUBSYSTEM=="usb", RUN+="echo foo > /tmp/foo"

SUBSYSTEM=="usb", ATTR{product}=="PANTECH UML295", RUN +="echo foo > /tmp/foo"

ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="PANTECH UML295", RUN+="/home/ro
ot/rebootInternetConnection.sh"

当我跑步时:

代码语言:javascript
复制
udevadm test /devices/platform/omap/musb-ti81xx/musb-hdrc.1/u 

它将最后几行返回如下:

代码语言:javascript
复制
run: 'echo foo > /tmp/foo'
run: 'echo foo > /tmp/foo'
run: 'echo foo > /tmp/foo'
run: '/home/root/rebootInternetConnection.sh'

在这种情况下,规则会添加到RUN+=中,但不会被使用?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2013-09-06 18:13:17

不确定更改了什么,但该规则现在正在文件/etc/udev/ rule es.d/81-pantech中使用。

一种可能是缺少/run/udev/run es.d/目录。当我跑的时候

代码语言:javascript
复制
udevadm test /devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1

我接到一条线路报告那个目录不见了。我通过以下指南找到了这个命令:http://weininger.net/how-to-write-udev-rules-for-usb-devices/

代码语言:javascript
复制
mkdir /run/udev/rules.d/

另一种可能是我手动运行udev守护进程

代码语言:javascript
复制
/lib/udev/udevd --debug

这是我的最后一条规则:

代码语言:javascript
复制
ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="PANTECH UML295", RUN+="/home/root/rebootInternetConnection.sh"

ACTION=="add", SUBSYSTEM=="net", ATTR{idVendor}=="10a9", RUN+="/home/root/rebootInternetConnection.sh"
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/89446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档