Atributos não disponíveis no udev

4

Estou tentando gravar uma regra do udev para um dispositivo USB. No entanto, estou tendo problemas para corresponder aos atributos ATTRS{*} em minhas regras. Depois de um pouco de depuração usando udevadm info , descobri que nenhum dos meus dispositivos está mostrando atributos.

Quando eu executo udevadm info -a para o volume raiz no meu servidor linux, eu recebo isto:

  looking at device '/devices/vbd-768/block/xvda':
    KERNEL=="xvda"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{ro}=="0"
    ATTR{size}=="83886080"
    ATTR{stat}=="  717683    43803 15924796   381200  8002096  5757360 169243664  6994333        0   635530  7372343"
    ATTR{range}=="16"
    ATTR{discard_alignment}=="0"
    ATTR{ext_range}=="16"
    ATTR{alignment_offset}=="0"
    ATTR{inflight}=="       0        0"
    ATTR{removable}=="0"
    ATTR{capability}=="10"

No entanto, quando eu o executo no meu laptop, recebo isso:

  looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda':
    KERNEL=="sda"
    SUBSYSTEM=="block"
    DRIVER==""

Isso ocorre para qualquer dispositivo. Eu não consigo obter ATTR{*} variáveis para qualquer dispositivo no meu sistema. O que pode estar causando esse problema?

Nota: Estou executando o Arch Linux, kernel de ações, atualizado até este post.

    
por Ben Davis 14.06.2015 / 23:34

1 resposta

2

Estou imaginando que você está visualizando a entrada correta em udevadm .

Você está acessando /devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda no laptop, o que é muito diferente do /devices/vbd-768/block/xvda acessado no servidor.

Se o seu interesse é em discos, sugiro procurar por ID de ônibus.

Você pode encontrar o ID do barramento do disco usando lsblk -S . Deve haver 7 linhas, as duas primeiras são tudo de que você gosta: NAME e HCTL . NAME indicou o nome do drive (como sda ) e HCTL indica o id de BUS (como 2:0:0:0 ).

Agora use este ID de barramento ao procurar por udevadm

udevadm info --path=/sys/bus/scsi/devices/[bus ID] -a

Quando fiz isso, um dos grupos de saída era para algo como seu /devices/vbd-768/block/xvda , bem como o ATTRS . Parece que o caminho que você especificar aqui é apenas para um subconjunto das informações da unidade.

    
por 10.11.2016 / 16:45

Tags