답변:
일반적으로 이것은 다음과 같은 내용으로 /etc/udev/rules.d
이름이 지정된 파일 에 추가하여 수행됩니다 50-usb-scale.conf
.
SUBSYSTEM=="usb", ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2", MODE="0666"
어디 HEX1 및 HEX2은 각각 공급 업체 및 제품 ID로 대체됩니다.
대신 인터페이스 유형에 맞게하려면 교체 시도 할 수 ATTR{idVendor}=="HEX1", ATTR{idProduct}=="HEX2"
의 일치와 bInterfaceClass
인 03
(HID) :
SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", MODE="0666"
그러나 마우스와 키보드도 잡을 수 있습니다.
.rules
확장자 를 가져야합니다 . .conf
확장자가 있는 파일이 작동하지 않습니다.
lsusb -vvv
idProduct와 idVendor를 얻기 위해 사용
lsusb
연결된 것과 ID를 볼 수있는 좋은 시작입니다. idVendor
와 idProduct
일치하는 것 대소 문자를 구분 ID는, 그래서 DA77
나를 위해 작동하지 않지만 da77
않습니다. (Handy diagnostic : udevadm info --attribute-walk /dev/bus/usb/008/023
, bus 008 device 023 my example; lsusb
for yours.) 규칙을 추가 한 후 재부팅 sudo udevadm control --reload-rules
을 sudo udevadm trigger
피 합니다. 그 후 몇 초 후에 변경 사항이 있습니다. ATTR 대 ATTRS는 승산하지 않았습니다. 내 .rules 파일은 다음과 같습니다 SUBSYSTEM=="usb", ATTR{idVendor}=="da77", ATTR{idProduct}=="d12e", GROUP="users", MODE="0666"
..
요약하면 다음과 같습니다.
다음을 필터링 할 수 있습니다.
그리고 사용하십시오 :
== 평등을 비교합니다.
! = 불평등 비교.
= 키에 값을 할당하십시오. 목록을 나타내는 키가 재설정되고이 단일 값만 할당됩니다.
+ = 항목 목록을 보유한 키에 값을 추가하십시오.
: = 마지막으로 키에 값을 할당하십시오; 나중에 변경하지 마십시오.
/ dev /에서 특정 장치에 특정 새 경로를 지정할 수 있습니다.
예 :
KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", ATTRS{serial}=="1234567", GROUP="cdrom", OWNER="user28", MODE="0640", SYMLINK+="myhid"
결과 :
'/ dev / hiddevx'또는 '/ dev / myhid'를 통해 장치에 쉽게 액세스 할 수 있습니다. 'cdrom'그룹의 모든 사용자가 장치에서 읽을 수 있습니다. 소유자 'user28'은 읽고 쓸 수 있습니다.
또는 가장 간단한 :
KERNEL=="hiddev*", ATTRS{idVendor}=="16c0", MODE="0666"
결과 : 모든 사용자가 공급 업체 0x16c0에서 모든 숨김 장치에 액세스 할 수 있습니다.
자세한 내용은 다음을 참조하십시오. 문서
(나처럼) ttyACM0
권한 을 변경해야하는 경우이 설정은 다음과 같습니다.
KERNEL=="ttyACM0", MODE="0777"
공급 업체 및 제품 ID를 지정하려고 할 때 실패했습니다. 왜 그런지 잘 모르겠습니다.
우분투 18.04 업데이트 / 설명 :
Kees Cook의 대답은 가깝지만 18.04에서 작동하려면 2 가지 변경 사항이 필요합니다 (현재 릴리스 및이 테스트 한 것).
버스 001 장치 011 : ID 04b8 : 014a Seiko Epson Corp.
SUBSYSTEM == "usb", ATTRS {idVendor} == "04b8", ATTR {idProduct} == "014a", MODE = "0666"그러나 idVendor 및 idProduct 16 진수 값으로.
ATTRS
공급 업체 및 제품 ID 모두에 대해 그런 다음 코드 샘플이 잘못되었습니다 (두 줄을 나중에 언급 한 것처럼).