2012-03-02 29 views
7

Estoy investigando formas de comunicarme con un dispositivo USB en Linux y preferiría no escribir un controlador Kernel de Linux. Entiendo que libusb existe y es una biblioteca de usuario-tierra que funcionaría, pero nuestro dispositivo integrado no es compatible con usbfs (y sería realmente una molestia cambiar kernels para agregar el soporte).Acceso a Linux/dev/USB como archivos estándar para comunicarse con el dispositivo USB

Así que mi pregunta es básicamente esta: ¿Es posible/aconsejable comunicarse con un dispositivo USB leyendo y escribiendo directamente en el/dev/USB o el archivo udev correspondiente al dispositivo USB evitando así la necesidad de un Linux personalizado Driver y usbfs?

Espero que sea posible comunicarse usando el protocolo de dispositivos USB simplemente leyendo/escribiendo paquetes de protocolo directamente a través de comandos de lectura/escritura de tipo de archivo una vez que el archivo/dev/USB o dispositivo udev esté abierto.

Pensamientos y sugerencias por favor.

SEGUIMIENTO:

Dado que el dispositivo USB que necesitaba hablar es un dispositivo de clase USB HID, yo era capaz de utilizar libudev y el USB estándar de Linux HID controlador RAW mediante la lectura/escritura directamente a/dev/hidraw0 (o el dispositivo/dev/hidraw apropiado). No fue necesario escribir un controlador personalizado para un dispositivo USB HID simple.

Respuesta

4

Jim, no creo que pueda evitar la necesidad de escribir un controlador y solo logre leer el archivo USB en /dev. Porque, ¿quién se define qué sucede cuando haces un read() en el archivo del dispositivo USB? ¿Y quién define qué acción debe iniciarse al invocar sysioctl()? Su controlador! En otras palabras, los archivos del dispositivo son incapaces de nada hasta que sean compatibles con los controladores subyacentes. De hecho, puede tratar los archivos del dispositivo como una abstracción del controlador subyacente. Por lo tanto, no hay ningún controlador, sin uso de archivo de dispositivo :(

le sugiero que ir a través de los siguientes artículos sobre cómo escribir un conductor y también entender el USB internals-

  1. http://www.linux-usb.org/USB-guide/c15.html

  2. http://www.linuxjournal.com/article/4786 (un poco anticuado)

+0

Gracias Pavan. Eso es lo que pensé que la respuesta sería. no debería ser demasiado difícil de seguir adelante y utilización li busb. – Chimera

+0

¡El controlador USB es una pieza interesante! Hace mucho tiempo que quiero escribir algo sobre eso. ¡Me encantaría saber tu progreso en esto, Jim! –

+0

Ok Pavan, ¡te mantendré informado! :-) – Chimera

Cuestiones relacionadas