Adicionando dispositivo USB a regras.d

0

Eu tenho problemas para adicionar o dispositivo usb a rules.d list , quero poder usá-lo sem raiz.

Aqui está o meu dispositivo USB:

Bus 001 Device 007: ID 1162:2200 Secugen Corp.

E esta é a entrada que eu fiz em /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"

Não sei ao certo o que é SYMLINK+="input/fdu05-%k part, foi definido como este em readme.txt .

Infelizmente, esta regra não funciona. Geralmente é bastante simples, adicione vendorId / productId e funciona, mas não desta vez.

Alguma sugestão?

ATUALIZAÇÃO: Esta é a saída que recebo de 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.

É assim que meu /dev/input se parece:

├── 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

Log eu recebo de 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

Distro: Debian GNU/Linux 8 (jessie)

    
por somerandomusername 28.08.2015 / 10:40

2 respostas

1

Olá e bem vindo ao Unix & StackExchange do Linux!

A única coisa que você parece estar perguntando é o significado de SYMLINK+="input/fdu05-%k" part na regra udev . Isso diz a udev para criar automaticamente um link simbólico para o seu dispositivo em /dev/input/ com o nome fdu05-<kernel name of the device>

Mas eu entendo que, como você mencionou que não deseja usar root para usar o dispositivo, essa é sua principal meta para essa regra, certo? Se você vir, a parte importante é a parte de direitos do usuário da regra, ou seja, MODE e GROUP . Por motivos de segurança, deixe o modo como 0660 (permissão r / w para o proprietário e grupo, mas nenhum outro) e verifique se o usuário faz parte do grupo "SecuGen". Isso pode ser verificado facilmente em execução no terminal

id <username>

Se o usuário não fizer parte do grupo, adicione-o em execução

# usermod -a -G <username> SecuGen

Claro, você também pode alterar a regra para que GROUP tenha o grupo de usuários desejado.

Por fim, lembre-se de reiniciar udev sempre que você alterar alguma regra ou, se tiver udevadm , você poderá solicitar que udev recarregue as regras em execução

# udevadm control --reload-rules

Boa sorte!

    
por 28.08.2015 / 11:10
1

Você tem essa regra

SYSFS{idVendor}=="1162", SYSFS{idProduct}=="2200", SYMLINK+="input/fdu05-%k", MODE="0660", GROUP="SecuGen" KERNEL=="uinput", MODE="0660", GROUP="SecuGen"

A entrada SYMLINK adiciona um link simbólico para o dispositivo a /dev/input/fdu05-%k , onde %k é substituído pelo nome do kernel para este dispositivo. (Você pode ver isso na página man do udev (7) .)

Você tem duas definições GROUP ; apenas um é esperado.

Você tem o grupo Linux "SecuGen" definido? Você pode executar getent group SecuGen para ver se está definido ou, em um sistema simples, basta procurar /etc/group . Caso contrário, você precisará adicioná-lo para que a regra possa definir o dispositivo para esse grupo.

    
por 28.08.2015 / 11:08

Tags