Por que as regras devd são aplicadas antes das regras do devfs?

3

Meu problema

Eu tenho as seguintes linhas em /etc/devd.conf , que executam o usbhidaction para um dispositivo /dev/uhid* com o nome do fornecedor e do produto.

attach 100 {
    match "vendor"  "0x046a";
    match "product" "0x0107";
    action "/usr/local/bin/sudo -u my_user /usr/bin/usbhidaction -f $device-name -p /var/hid_run/usbaction.pid -c /etc/hidactions/cherry_JK0200";
};

e as seguintes linhas em /etc/devfs.rules

[tant=10]
add path 'uhid*' mode 0660 group hid

Mas quando eu reinicio a parte devd é executado antes da parte devfs e my_user não tem permissão para ler /dev/uhid* .

  • Agora, por que o devfs é mais lento que o devd, e o que posso fazer para corrigir isso?
  • Existe outra maneira de configurar o devfs?

Por que eu faço isso

Comprei um novo teclado e as teclas de função são um dispositivo adicional usb-hid. Agora eu queria executar scripts pequenos quando pressiono uma dessas teclas de função, como diminuir o volume ou silenciar o volume.

Como os scripts são do my_user, não quero que os programas sejam executados pelo root. Especialmente não é algo como uma calculadora ou uma concha.

    
por Raphael Ahrens 29.06.2013 / 00:20

1 resposta

4

O Devd é executado ANTES de rc e, portanto, antes do devfs - isso foi cuidadosamente escolhido por seu criador - você pode ver seu raciocínio aqui: link (Cap. 7.2)

O Devd é executado inteiramente no espaço do usuário, não há problemas com privilégios de root.

A menos que você escolha sudo - o que você fez.

Use devd.conf para definir um valor no espaço do usuário. Teste sua bandeira em devfs.

    
por 04.07.2013 / 03:38