rules.d에 USB 장치 추가

rules.d에 USB 장치 추가

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%kudev의 매뉴얼 페이지(7).)

두 가지 정의가 있습니다 GROUP. 하나만 예상됩니다.

Linux 그룹 "SecuGen"을 정의하셨나요? getent group SecuGen정의되어 있는지 확인하기 위해 실행하거나 간단한 시스템에서 보기 만 하면 됩니다 /etc/group. 그렇지 않은 경우 규칙이 장치를 해당 그룹으로 설정할 수 있도록 추가해야 합니다.

관련 정보