Regra do Udev não é usada

1

Estou tentando escrever uma regra do udev no meu Beaglebone White que é executado quando o Pantech UML 295 termina de ser inicializado.

Ao usar udevadm monitor --environment , recebo a seguinte saída final na qual gostaria de basear a regra:

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

Minha regra do udev versão 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"

e versão 2:

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

A versão 2 é uma versão simplificada que deve ser executada mais de uma vez, mas não é executada. A versão 1 usa variáveis de ambiente que não tenho certeza se a regra tem acesso ou não.

Para esclarecer: a regra não é executada, e o shell script possui ecos que devem aparecer. Minha regra está no diretório /etc/udev/rules.d/ com o nome 10-local.rules.

EDITAR

Aqui estão mais algumas regras não funcionais, colocadas em /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"

Quando eu corro:

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

retorna as últimas linhas como:

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

Existe um caso em que as regras serão adicionadas ao RUN + =, mas não serão usadas?

    
por Luke Plewa 04.09.2013 / 20:25

1 resposta

0

Não sei o que mudou, mas a regra agora está sendo usada no arquivo /etc/udev/rules.d/81-pantech.rules

Uma possibilidade é o diretório /run/udev/rules.d/ ausente. Quando eu corri

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

Eu recebi uma linha informando que o diretório estava faltando. Eu encontrei este comando através deste guia: link

mkdir /run/udev/rules.d/

Outra possibilidade é eu executar manualmente o daemon do udev com

/lib/udev/udevd --debug

Esta é a minha regra final:

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"
    
por 06.09.2013 / 20:13

Tags