tag - ¿Cómo codificar un módulo kernel de Linux?
mp3tag ubuntu (2)
Un blog completo y simplificado sobre kernels de Linux, programación de módulos y escritura de controladores de dispositivos simples para dispositivos integrados.
Tengo un par de años de experiencia en programación. Ahora decidí trabajar para el desarrollo del módulo de kernel de Linux. Sin embargo, ni siquiera puedo comenzar. He compilado este código en ubuntu.
#include <linux/module.h>
int init_module(void){ printk("<1> hellp"); return 0;}
void cleanup_module(void){ printk("<1> bye");}
sin embargo, el insmod no funciona, el mensaje de error es "Formato de módulo inválido". después de googlear pensé que podría ser un problema con la compatibilidad de la versión. Y no hay una buena manera de resolverlo. Entonces, ¿algún desarrollador real de módulos kernel puede darme algún consejo? ¿Qué entorno debo preparar antes de comenzar a aprender?
¡Gracias!
Te faltan las module_init()
y module_exit()
y algunas #defines
cruciales. Necesitamos más información, así como sus opciones make / gcc. Puede estar informando sobre el "formato de módulo no válido" porque está compilando en 32 bits cuando su kernel es de 64 bits, así que asegúrese de estar utilizando el indicador de compilación y enlace -64.
Un gran tutorial de Hello World para Kernel Modules se encuentra aquí: http://archive.is/KNkEE (el enlace original al artículo está roto).
Bienvenido a escribir módulos kernel. Son muy divertidos en comparación con escribir controladores de Windows (he hecho ambas cosas). La interfaz del módulo de kernel de Linux es mucho más fácil de usar y hay muchos controladores base que puede delegar y hacer el trabajo más rápido.