2010-06-12 16 views
6

Estoy aprendiendo programación en sistemas integrados usando Linux como mi plataforma principal. Y quiero crear un Servicio de administración de eventos del dispositivo. Este servicio es una aplicación/daemon de espacio de usuario que detectará si un módulo de hardware conectado activó un evento. Pero mi problema es que no sé por dónde debería comenzar.Netlink espacio de usuario y comunicación kernel-espacio

He leído sobre la implementación de Netlink para la comunicación entre el espacio de usuario y el kernel y parece una buena idea, pero no estoy seguro de si es la mejor solución. Pero leí que el administrador de dispositivos de UDEV usa Netlink para esperar un "evento" desde el espacio del núcleo, pero no tengo claro cómo hacerlo.

He leído sobre sysfs de sondeo, pero parece que no es una buena idea sondear el sistema de archivos.

¿Cuál cree que es la implementación que debo usar en mi servicio? ¿Debería usar netlink (hard/no clue cómo hacerlo) o simplemente sondear el sysfs (no estoy seguro de si funciona)?

Gracias

+0

También podría inutilizarnos para recibir una notificación cuando un directorio en cuestión en sysfs cambie en lugar de sondear. – MikeK

Respuesta

1

Sí, es poco aconsejable de votación. Estos recursos: el artículo de LJ sobre Netlink, "Comprensión y programación con sockets Netlink" hace que parezca que no es tan difícil hacer netlink. Aquí hay un ejemplo de sockets netlink en python.

udevtrigger es una gran utilidad para reaccionar a los cambios de udev.

http://www.linuxjournal.com/article/7356

http://smacked.org/docs/netlink.pdf

http://guichaz.free.fr/misc/iotop.py

http://manpages.ubuntu.com/manpages/gutsy/man8/udevtrigger.8.html

1

Si todo lo que hacen es esperar a que un evento puede utilizar sysfs, que será mucho más simple de enlace de red. Un ejemplo es el archivo de borde del sistema GPIO.

Cuestiones relacionadas