답변:
$ udevadm info -q all -a /dev/sdb
참고 : 위의 장치 정보에 대해 UDEV 데이터베이스를 info
쿼리합니다. 모든 정보를 쿼리 -q all
하고 있습니다 /sys
.이 장치 레이블과 관련된 모든 속성을 사용하고 있습니다.
발췌
--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.
여기 내 /dev/sda
장치가 있습니다.
$ 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':
@sepero의 답변은 리프 노드의 UDEV 장치와 관련된 정보를 보여줍니다.
$ udevadm info -q all -n /dev/sda > udevadm_info_1.txt
내 대답은 /sys
장치 의 전체 체인 계층 구조를 걷는 속성을 보여줍니다 .
$ udevadm info -q all -a /dev/sda > udevadm_info_2.txt
이 둘의 차이점을 볼 수 있습니다.
$ diff -y udevadm_info_1.txt udevadm_info_2.txt \
> udevadm_info_diff.txt
참고 : 저는 Fedora 19에서 204 버전을 사용하고 있습니다 udevadm
.
$ udevadm --version
204
udevadm info -q all
아닌 의 출력 입니다 udevadm info -a
. -a
에 대한 지름길 이라고 생각 합니다 -q all --attribute-walk
. 아니면 버전과 다른가요? 나는이 변화를 기억하지 못하지만 몇 년 동안 Fedora를 사용해 본 적이 없다 (그러나 왜 배포판이 이것을 패치 할 것인가?).
udevadm info
이런 종류의 정보를 제공합니다.
서브 시스템을 구체적으로 원하는 경우 :
udevadm info -n /dev/sdb -q property | sed -n 's/SUBSYSTEM=//p'
udev 규칙을 작성할 때 가장 유용한 명령은
udevadm info -a -n /dev/sdb
이것은 udev 규칙에서 장치를 일치시키는 데 사용할 수있는 규칙을 인쇄합니다. 첫 번째 블록은 장치 자체에 관한 것이고 후속 블록은 장치 트리의 조상에 관한 것입니다. 유일한 경고는 다른 조상에 해당하는 키를 혼합 할 수 없다는 것입니다. 예를 들어,이 발췌 부분에서
KERNEL=="sdb"
SUBSYSTEM=="block"
…
KERNELS=="5:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{model}=="Yoyodyne Diskinator"
…
KERNELS=="0000:00:1f.2"
SUBSYSTEMS=="pci"
DRIVERS=="ahci"
그런 다음이 장치와 일치 SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator"
하거나 일치 SUBSYSTEM=="block", SUBSYSTEMS=="pci", DRIVERS="ahci"
하지 않을 수 있습니다 SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}="Yoyodyne Diskinator", DRIVERS="ahci"
.
규칙에 사용할 정보를 얻는 또 다른 방법은
udevadm info -q property -n /dev/sdb --export
이것은 udev 규칙에서 사용할 수 있는 형식의 장치 속성 값을 인쇄합니다 .KEY=VALUE
ENV{KEY}=="VALUE"
장치에 /dev
항목 이없는 경우 /sys
대신 경로를 사용 하여 장치 를 참조 할 수 있습니다 ( 예 :
udevadm info -a -p /sys/block/sdb
(이 경우 유용한 예는 아닙니다. 이것은 범주가 일반적이지 않고 /dev
아직 항목이없는 장치에 유용합니다 ).
udev 규칙을 변경하면 자동으로 읽습니다. 그러나 나중에 시스템에 연결된 장치에만 적용됩니다. 이미 연결된 장치에 새 규칙을 적용하려면 udevadm trigger
(옵션을 사용 하여 응용 프로그램을 특정 장치로 제한)을 사용하십시오.
udevadm info -a -n /dev/sdb
?