USB 오디오 장치가 QEMU를 통과하길 원합니다. udev 규칙을 만들었지만 작동하지 않습니다. 이 문제를 디버깅하는 방법을 알고 싶습니다.
SUBSYSTEM=="usb", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="8808", MODE="0666"
답변1
이것이 내가 마침내 문제를 분리한 방법입니다. Udev는 USB 호스트 컨트롤러에서 장치 자체까지 장치 속성 계층 구조에 대한 규칙 사양을 확인합니다. 이러한 다양한 노드에는 udev 규칙에 지정할 수 있는 속성 세트가 있습니다.
관찰 규칙의 실행을 보려면 다음 명령을 사용하십시오.
udevadm control --log-priority=debug
journalctl -f
udev를 다시 로드하고 장치를 다시 설치한 후에도 로그에 규칙이 표시되지 않으면 파일 이름 형식이 udev에서 예상하는 형식인지 확인하세요: 99-name.rules
udev 이벤트를 보려면 다음 명령을 사용하십시오.
udevadm monitor --environment
특정 장치의 속성을 보려면 다음 명령을 사용하십시오.
udevadm info -q all -a /path/to/device/as/seen/in/aformentioned/logs
아래와 같이 일련의 속성 블록이 표시됩니다.
looking at device '/devices/...':
KERNEL=="event3"
SUBSYSTEM=="input"
DRIVER==""
looking at parent device '/devices/...':
KERNELS=="input23"
SUBSYSTEMS=="input"
DRIVERS==""
ATTRS{name}=="Speed Dragon USB Advanced Audio Device"
ATTRS{phys}=="usb-0000:00:14.0-5/input3"
ATTRS{properties}=="0"
ATTRS{uniq}==""
looking at parent device '/devices/...':
KERNELS=="1-5"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="16"
ATTRS{bMaxPower}=="100mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 4"
ATTRS{bcdDevice}=="0100"
ATTRS{bmAttributes}=="80"
ATTRS{busnum}=="1"
ATTRS{configuration}==""
ATTRS{devnum}=="11"
ATTRS{devpath}=="5"
ATTRS{idProduct}=="8808"
ATTRS{idVendor}=="0d8c"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Speed Dragon"
ATTRS{maxchild}=="0"
ATTRS{product}=="USB Advanced Audio Device"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="removable"
ATTRS{speed}=="12"
ATTRS{urbnum}=="7861"
ATTRS{version}==" 2.00"
내 장치를 마지막 블록과 일치시키면서 마침내 udev 규칙을 SUBSYSTEMS=="usb"
대신 지정해야 한다는 것을 깨달았습니다 SUBSYSTEM=="usb"
. 이것은 슬픈 발견이었습니다.
올바른 규칙이 지정되면 다음을 수행하십시오.
유효하지 않거나 잘못된 속성은 자동으로 무시됩니다..
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="8808", MODE="0666"
Udev는 다음을 통해 다시 로드됩니다.
sudo udevadm control --reload-rules
장치가 분리/연결되면 올바른 권한이 등록됩니다.