Quais atributos do udev estão realmente disponíveis durante o hot- / cold-plug?

2

O Udev é difícil de depurar. - O ambiente virgem durante a inicialização do sistema sempre se desvia um pouco do ambiente durante uma nova execução posterior.

Assim, estou tentando escrever regras do udev com o entendimento do udev em vez de tentativa e erro.

Um grande problema é: Quais atributos do udev estão disponíveis durante o hot- / cold-plug?

A confusão vem desses dois comandos:

udevadm test /sys/class/net/wlx801f024ddc32
udevadm info --attribute-walk --path=/sys/class/net/wlx801f024ddc32

Ambos, por exemplo, listam SUBSYSTEM , que eu sei que está disponível para as regras do udev. Mas somente o primeiro tem DEVTYPE (pelo menos para dispositivos wlan), enquanto apenas o último tem KERNEL .

Eu realmente preciso de DEVTYPE (sendo "wlan") durante a inicialização, mas parece não estar disponível quando as regras entram em ação ...

    
por Robert Siemer 07.12.2016 / 11:50

1 resposta

0

Aqui está o meu entendimento:

  • udevadm info -a : mostra os atributos ATTRS{} e a hierarquia de dispositivos.
  • udevadm test : mostra as variáveis ENV{} durante o processamento do udev.

Eles não mostram o mesmo tipo de informação. Sua variável DEVTYPE pode existir e deve ser testada como ENV{DEVTYPE}=="wlan" . No entanto, deve-se levar em conta que as variáveis ENV {} são criadas progressivamente durante o processamento do udev. Portanto, a ordem de sua regra é importante e deve aparecer após ENV{DEVTYPE} ter sido criada por outra regra.

Você pode analisar o arquivo 'udev_actions.txt' a partir do comando abaixo para deduzir como as coisas são ordenadas. Então você pode decidir o melhor número para o seu arquivo '.rules' para testar ENV{DEVTYPE} .

$ sudo udevadm test $DEVPATH 1> udev_ENV.txt 2> udev_actions.txt
    
por 17.04.2017 / 01:25

Tags