USB 장치를 추가하는 데 문제가 있으며 rules.d list
루트 없이도 사용할 수 있도록 하고 싶습니다.
이것은 내 USB 장치입니다.
Bus 001 Device 007: ID 1162:2200 Secugen Corp.
이것은 내가 작성한 항목입니다 /etc/udev/rules.d/98-secugen-usb-device.rules
.
SYSFS{idVendor}=="1162", SYSFS{idProduct}=="2200", SYMLINK+="input/fdu05-%k", MODE="0660", GROUP="SecuGen" KERNEL=="uinput", MODE="0660", GROUP="SecuGen"
이것이 어느 부분인지 잘 모르겠습니다. SYMLINK+="input/fdu05-%k
에 설정되어 있습니다 readme.txt
.
불행히도 이 규칙은 작동하지 않습니다. 일반적으로 매우 간단합니다. VendorId/productId를 추가하면 작동하지만 이번에는 작동하지 않습니다.
어떤 제안이 있으십니까?
업데이트: 이것은 내가 얻는 결과입니다 dmesg
.
usb 1-1.1.3: new high-speed USB device number 12 using ehci-pci
usb 1-1.1.3: New USB device found, idVendor=1162, idProduct=2200
usb 1-1.1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.1.3: Product: SecuGen USB U20
usb 1-1.1.3: Manufacturer: SecuGen Corp.
이것이 내 모습입니다 /dev/input
.
├── by-id
│ ├── usb-LITEON_Technology_USB_Multimedia_Keyboard-event-kbd -> ../event0
│ ├── usb-Microsoft_Comfort_Mouse_6000-event-mouse -> ../event1
│ └── usb-Microsoft_Comfort_Mouse_6000-mouse -> ../mouse0
├── by-path
│ ├── pci-0000:00:1a.0-usb-0:1.2:1.0-event-kbd -> ../event0
│ ├── pci-0000:00:1a.0-usb-0:1.3:1.0-event-mouse -> ../event1
│ ├── pci-0000:00:1a.0-usb-0:1.3:1.0-mouse -> ../mouse0
│ └── platform-pcspkr-event-spkr -> ../event4
├── event0
├── event1
├── event10
├── event2
├── event3
├── event4
├── event5
├── event6
├── event7
├── event8
├── event9
├── mice
└── mouse0
내가 얻은 로그는 다음과 같습니다 unbuffer udevadm monitor --environment
.
UDEV [4656.200575] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.3 (usb)
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/016
DEVNUM=016
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.3
DEVTYPE=usb_device
ID_BUS=usb
ID_MODEL=SecuGen_USB_U20
ID_MODEL_ENC=SecuGen\x20USB\x20U20\x20\x20\x20\x20\x20\x20\x20
ID_MODEL_ID=2200
ID_REVISION=2206
ID_SERIAL=SecuGen_Corp._SecuGen_USB_U20
ID_USB_INTERFACES=:ffffff:
ID_VENDOR=SecuGen_Corp.
ID_VENDOR_ENC=SecuGen\x20Corp.\x20\x20\x20\x20
ID_VENDOR_FROM_DATABASE=Secugen Corp.
ID_VENDOR_ID=1162
MAJOR=189
MINOR=15
PRODUCT=1162/2200/2206
SEQNUM=1702
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=6
USEC_INITIALIZED=56185634
UDEV [4657.235375] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0
DEVTYPE=usb_interface
ID_VENDOR_FROM_DATABASE=Secugen Corp.
INTERFACE=255/255/255
MODALIAS=usb:v1162p2200d2206dc00dsc00dp00icFFiscFFipFFin00
PRODUCT=1162/2200/2206
SEQNUM=1703
SUBSYSTEM=usb
TYPE=0/0/0
UDEV_LOG=6
USEC_INITIALIZED=186134
adb_user=yes
릴리스 버전:Debian GNU/Linux 8 (jessie)
답변1
안녕하세요. Unix 및 Linux StackExchange에 오신 것을 환영합니다!
당신이 묻는 유일한 것은 SYMLINK+="input/fdu05-%k"
규칙의 섹션이 무엇을 의미하는지 입니다 udev
. 이는 다음 이름으로 udev
장치에 대한 심볼릭 링크를 자동으로 생성하도록 지시합니다./dev/input/
fdu05-<kernel name of the device>
하지만 나는 당신이 장치를 사용하고 싶지 않다고 언급했기 때문에 root
그것이 이 규칙의 주요 목표라는 것을 이해합니다. 그렇죠? 보시다시피 중요한 부분은 규칙의 사용자 권한 부분인 MODE
및 입니다 GROUP
. 보안상의 이유로 0660 모드를 그대로 두고(소유자 및 그룹에는 읽기/쓰기 권한이 있지만 다른 사람에게는 권한이 없음) 사용자가 "SecuGen" 그룹에 속해 있는지 확인하세요. 터미널에서 실행하면 쉽게 확인할 수 있습니다.
id <username>
사용자가 그룹에 속하지 않으면 실행에 추가하세요.
# usermod -a -G <username> SecuGen
물론 GROUP
원하는 사용자 그룹을 갖도록 규칙을 변경할 수도 있습니다.
마지막으로, udev
규칙을 변경할 때마다 재부팅하는 것을 기억하세요. 또는 규칙이 있는 경우 실행 중인 규칙을 다시 로드 udevadm
하도록 요청할 수 있습니다.udev
# udevadm control --reload-rules
행운을 빌어요!
답변2
너에겐 이런 규칙이 있다
SYSFS{idVendor}=="1162", SYSFS{idProduct}=="2200", SYMLINK+="input/fdu05-%k", MODE="0660", GROUP="SecuGen" KERNEL=="uinput", MODE="0660", GROUP="SecuGen"
이 항목은 장치의 커널 이름을 대체 하여 SYMLINK
장치에 심볼릭 링크를 추가합니다 . (당신은 찾을 수 있습니다/dev/input/fdu05-%k
%k
udev의 매뉴얼 페이지(7).)
두 가지 정의가 있습니다 GROUP
. 하나만 예상됩니다.
Linux 그룹 "SecuGen"을 정의하셨나요? getent group SecuGen
정의되어 있는지 확인하기 위해 실행하거나 간단한 시스템에서 보기 만 하면 됩니다 /etc/group
. 그렇지 않은 경우 규칙이 장치를 해당 그룹으로 설정할 수 있도록 추가해야 합니다.