Por exemplo, eu tenho o dispositivo / dev / sdb. Como descubro que é o subsistema udev?
19
$ udevadm info -q all -a /dev/sdb
OBSERVAÇÃO: as opções acima consultam o banco de dados UDEV em busca de informações sobre o dispositivo, info
estamos consultando todas as informações -q all
e analisamos todos os atributos /sys
relacionados a esse rótulo do dispositivo.
excerto
--attribute-walk|-a
Print all sysfs properties of the specified device that can be used
in udev rules to match the specified device. It prints all devices
along the chain, up to the root of sysfs that can be used in udev
rules.
Aqui está o meu /dev/sda
dispositivo.
$ udevadm info -q all -a /dev/sda | grep parent
walks up the chain of parent devices. It prints for every device
and the attributes from one single parent device.
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0':
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0':
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/host0':
looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
looking at parent device '/devices/pci0000:00/0000:00:1f.2':
looking at parent device '/devices/pci0000:00':
A resposta de @ sepero está mostrando informações referentes ao dispositivo UDEV no nó da folha.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
Minha resposta mostra os atributos à medida que percorre toda a /sys
hierarquia da cadeia de dispositivos.
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
Você pode ver a diferença entre esses dois.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
NOTA: Estou executando o Fedora 19, usando a versão 204 do udevadm
:
$ udevadm --version
204
udevadm info -a -n /dev/sdb
?udevadm info -q all
, não deudevadm info -a
. Eu acho que-a
é um atalho para-q all --attribute-walk
. Ou isso é diferente na sua versão? Não me lembro dessa mudança, mas depois não uso o Fedora há anos (mas por que uma distribuição corrige isso?).udevadm info
fornece esse tipo de informação.Se você deseja especificamente o subsistema:
Ao escrever regras do udev, o comando mais útil é
Isso imprime as regras que você pode usar para corresponder ao dispositivo nas regras do udev. O primeiro bloco é sobre o próprio dispositivo e os blocos subseqüentes são sobre seus ancestrais na árvore de dispositivos. A única ressalva é que você não pode misturar chaves que correspondem a diferentes ancestrais. Por exemplo, dado esse trecho
você pode combinar este dispositivo com
SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
ou comSUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
mas não comSUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.Outra maneira de obter informações para uso em regras é com
Isso imprime os valores de propriedade do dispositivo do formulário que você pode usar como nas regras do udev.
KEY=VALUE
ENV{KEY}=="VALUE"
Se o seu dispositivo não tiver uma
/dev
entrada, você poderá consultá-lo com um caminho abaixo/sys
, por exemplo,(neste caso, não é um exemplo útil - é útil para dispositivos cuja categoria não é comum e ainda não tem uma entrada
/dev
).Quando você altera as regras do udev, elas são lidas automaticamente; no entanto, eles são aplicados apenas a dispositivos que são subsequentemente conectados ao sistema. Para aplicar as novas regras a um dispositivo já conectado, use
udevadm trigger
(com opções para restringir o aplicativo a determinados dispositivos).fonte
fonte
/sys
para/dev/sdb
. A outra abordagem mostra toda a hierarquia da árvore do nó folha junto com os ramos.