Estoy escribiendo un pequeño programa para comunicarme con un producto USB HID específico (identificado por el proveedor y los ID de producto), usando libusb-1.0 en Linux. En este momento, tengo que ejecutar el programa como root porque "libusb requiere acceso de escritura a los nodos del dispositivo USB". ¿Hay alguna manera de cambiar los permisos en el dispositivo que necesito para que no necesite ejecutar mi programa como root?¿Tiene acceso al dispositivo USB en Linux (libusb-1.0)?
8
A
Respuesta
10
En los sistemas Linux modernos, udevd
(man 7 udev
) crea los nodos de dispositivos para dispositivos USB cuando están enchufados. Añadir una regla udev que coincida con su dispositivo (por ejemplo. Usted podría igualar por USB Vendor y los ID de producto), y establece el OWNER
/GROUP
/MODE
del nodo del dispositivo.
El mejor enfoque es, probablemente, crear un nuevo grupo para los usuarios que deberían poder acceder al dispositivo, luego establecerlo como el propietario del grupo en la regla de udev. También puede necesitar usar MODE
para asegurarse de que tiene permisos de lectura/escritura de grupo. P.ej. la regla probablemente se verá algo como:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar"
Cuestiones relacionadas
- 1. Linux: Cómo asignar controlador USB al dispositivo
- 2. Acceso a Linux/dev/USB como archivos estándar para comunicarse con el dispositivo USB
- 3. Dispositivo USB conectado
- 4. Simular un dispositivo USB para automatización
- 5. Hacer un dispositivo USB, controlarlo En Java
- 6. Dispositivo USB HID con Android
- 7. USB Port Speed Linux
- 8. ¿Conectar el dispositivo USB al emulador de Android?
- 9. evento usb connect/disconnect de linux
- 10. ¿Cómo encontrar qué dispositivo está conectado a un puerto serie USB en Linux usando C?
- 11. Permisos de archivos de Linux para dispositivos USB en Android
- 12. Flex, obtenga la identificación USB del dispositivo USB conectado
- 13. ¿Cómo puedo vincular un controlador con un dispositivo USB?
- 14. Detecta cuando un dispositivo USB está conectado en C
- 15. ¿Debería un dispositivo USB defectuoso bloquear un kernel Linux libre de errores?
- 16. Reiniciar el dispositivo USB de forma automática en Windows
- 17. ¿Cómo se puede identificar el chipset de un dispositivo usb en Linux?
- 18. ¿Cómo puedo determinar si un dispositivo USB conectado es una unidad flash USB?
- 19. Descubre qué proceso tiene un bloqueo exclusivo en el asa de un dispositivo USB
- 20. ¿Cómo comunicarse con un dispositivo USB?
- 21. Acceso USB o serie en C#
- 22. Acceso a un dispositivo Midi en Java
- 23. Encienda la PC con dispositivo USB
- 24. Cómo detectar una conexión USB en linux/Qt
- 25. ¿Cómo comunicarse con un dispositivo USB en Windows y Java?
- 26. recuperando información detallada del dispositivo midi usb en Windows XP
- 27. Linux: cómo forzar a un dispositivo USB a usar el mismo número ttyUSB
- 28. Apagar un dispositivo USB en el software de Windows
- 29. Controlar un dispositivo USB desde una aplicación web
- 30. Leyendo desde un dispositivo USB y enviándole consultas, en C#
Esto no funcionó en mí hasta que he añadido comillas alrededor de "0660" – kynnysmatto
están de acuerdo con el comentario anterior. Se requieren cotizaciones alrededor del "0660" para que esto funcione. Envié una edición a la respuesta original pero, lamentablemente, se rechazó por ser muy leve:/ –
@ phil-lavin: No sé por qué se rechazó su cambio, pero lo he aplicado de todos modos. – caf