Qual é o propósito de uma regra do udev?

4

Estou sendo solicitado a adicionar uma regra do udev para um novo dispositivo USB que eu comprei. Não parece haver uma explicação simples para explicar por que isso é necessário ou valioso para fazer. Para sempre mapear um dispositivo para o mesmo caminho? Por exemplo. Sempre monte um dispositivo como /dev/ttyUSB1 ou /dev/sda4 ?

Em /etc/udev/rules.d/99-totalphase.rules :

# This file causes the mode of all Total Phase usb devices to be made
# writable for any user.

# Aardvark I2C/SPI Host Adapter
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0403", SYSFS{idProduct}=="e0d0", MODE="0666"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="e0d0", MODE="0666"

# Beagle Protocol Analyzers
ACTION=="add", SUBSYSTEM=="usb_device", SYSFS{idVendor}=="1679", SYSFS{idProduct}=="2001", MODE="0666"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1679", ATTR{idProduct}=="2001", MODE="0666"

Como escrever regras do udev

    
por tarabyte 22.05.2015 / 06:20

1 resposta

3

Sempre mapear um determinado dispositivo para o mesmo local é um dos usos comuns do udev. Os dispositivos podem ter vários locais, por exemplo, uma partição de disco pode ser alcançada através de numeração automática (por exemplo, /dev/sda1 ), mas também através do rótulo em seu sistema de arquivos ( /dev/disk/by-label/* ), através do UUID em seu sistema de arquivos ( /dev/disk/by-uuid/* ) e pelo número de série do dispositivo de disco ( /dev/disk/by-id/* ). Se você deseja acessar um determinado dispositivo sem ter que se preocupar quando foi conectado ou em qual porta, a maneira mais clara de fazer isso é adicionar uma regra do udev que corresponda a esse dispositivo de hardware específico e criar uma entrada em /dev com um nome significativo, por exemplo

ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1679", ATTR{idProduct}=="2001", \
  SERIAL=="123456", MODE="0666", SYMLINK+="analyzer-foo"
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1679", ATTR{idProduct}=="2001", \
  SERIAL=="123789", MODE="0666", SYMLINK+="analyzer-bar"

Outra finalidade comum das regras do udev é controlar as permissões no nó do dispositivo, geralmente para permitir que um daemon em particular o acesse. É para isso que servem as diretivas OWNER , GROUP , MODE e SECLABEL .

Uma terceira classe de motivos é acionar determinadas ações quando um dispositivo é conectado. Por exemplo, você pode precisar carregar o firmware no dispositivo, ou escolher em qual modo ele será usado, ou notificar algumas partes do dispositivo. sistema que uma nova conexão de rede ou impressora está disponível, etc.

    
por 23.05.2015 / 01:13

Tags