web-dev-qa-db-ja.com

Udevルールは使用されていません

Pantech UML295の起動が終了したときに実行されるudevルールをBeagleboneWhiteに記述しようとしています。

udevadm monitor --environmentを使用すると、ルールの基礎となる次の最終出力が得られます。

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:

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:

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

バージョン2は、複数回実行する必要があるが、まったく実行されない、簡略化されたバージョンです。バージョン1は、ルールがアクセスできるかどうかわからない環境変数を使用します。

明確にするために:ルールはまったく実行されず、シェルスクリプトには表示されるはずのエコーがあります。私のルールは/etc/udev/rules.d/ディレクトリに10-local.rulesという名前であります。

[〜#〜]編集[〜#〜]

/etc/udev/rules.d/81-pantech.rulesに配置されている、機能しないルールを次に示します。

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"

私が走るとき:

udevadm test /devices/platform/omap/musb-ti81xx/musb-hdrc.1/u 

最後の数行を次のように返します。

run: 'echo foo > /tmp/foo'
run: 'echo foo > /tmp/foo'
run: 'echo foo > /tmp/foo'
run: '/home/root/rebootInternetConnection.sh'

ルールがRUN + =に追加されるが、使用されない場合はありますか?

1
Luke Plewa

何が変更されたかはわかりませんが、ルールはファイル/etc/udev/rules.d/81-pantech.rulesで使用されています。

1つの可能性は、/ run/udev/rules.d /ディレクトリが欠落していることです。私が走ったとき

udevadm test /devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1

ディレクトリが見つからないことを報告する行がありました。このガイドでこのコマンドを見つけました: http://weininger.net/how-to-write-udev-rules-for-usb-devices/

mkdir /run/udev/rules.d/

もう1つの可能性は、udevデーモンを手動で実行することです。

/lib/udev/udevd --debug

これが私の最後のルールです。

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
Luke Plewa