martes, 9 de marzo de 2010

Crear modulo para Kernel Linux

Aldo Ramirez Mendoza

Se crea el archivo para compilar con las siguientes caracteristicas:

------------------------------------------- modulo.c ----------------------------------

#include // para todos los modulos
#include // para las macros entry/exit
#include // para usar la macro printk
#include // informacion del proceso
#include // para usar la estructura "task_struct"
static int __init hola(void)
{
printk(KERN_INFO "El modulo esta siendo cargado.\n");
printk(KERN_INFO "El user space del proceso es '%s'\n", current->comm);
printk(KERN_INFO "El PID es %i\n", current->pid);
return 0; // Necesario para indicar que todo ha salido bien
}
static void __exit adios(void)
{
printk(KERN_INFO "El modulo esta siendo removido.\n");
}
module_init(hola); // lo que se debe llamar al cargar un modulo
module_exit(adios); // lo que se debe llamar al remover un modulo

MODULE_AUTHOR("Autor: Lo que quieran");
MODULE_AUTHOR("Mas cosas para agregar");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Lo que quieras");

------------------------------------------- modulo.c ----------------------------------

Se crea el archivo Makefile
------------------------------------------- Makefile ----------------------------------
obj-m := modulo.o
------------------------------------------- Makefile ----------------------------------

Para crear el modulo:

# make -C /usr/src/linux-source-2.6.33 M=$PWD modules

Se debio crear el archivo modulo.ko para instalarlo solo hacer:
# insmod modulo.ko

Para ver que el modulo se cargo bien:
# dmesg | tail

No hay comentarios:

Publicar un comentario