next up previous contents index
Next: Algunas consideraciones de estilo Up: Mi primer módulo Previous: Mi primer módulo   Índice General   Índice de Materias

Compilación de este ejemplo

Para generar el código objeto de este ejemplo basta con compilarlo como siempre hemos hecho, pero tenemos que tomar una pequeña precaución, hay que decirle al compilador donde están las cabeceras del kernel. Entre los sitios por defecto donde gcc busca librerías no está el directorio de las cabeceras del kernel4.6, por lo que no será capaz de encontrar los ficheros incluidos (module.h y kernel.h).

Con esto en mente el comando para compilar exitosamente el módulo será:

$ gcc -I/cabeceras-del-kernel -c -o hola.o hola.c

Con esto generamos el fichero objeto hola.o, que es directamente el módulo a insertar:

$ insmod ./hola.o

Si ahora hacemos un tail de /var/log/messages4.7:

.
.
.
Feb 15 16:08:34 shire -- MARK --
Feb 15 16:15:27 shire kernel: hola: hola mundo

Podemos comprobar como el módulo se ha insertado perfectamente. Una llamada a lsmod nos generará la siguiente salida:

$ lsmod
Module                  Size  Used by
hola                     320   0  (unused)
es1371                 23872   1 
soundcore               2372   4  [es1371]

De esta manera podemos ver información adicional sobre el estado de nuestro módulo ``hola'' en el kernel.

Si queremos eliminar el módulo, basta con:

$ rmmod hola

Si miramos otra vez /var/log/messages, podemos ver como el módulo se despide de nosotros. Si volvemos a hacer un lsmod, vemos que el módulo ya no está en el kernel.


next up previous contents index
Next: Algunas consideraciones de estilo Up: Mi primer módulo Previous: Mi primer módulo   Índice General   Índice de Materias
Alberto Cortés 2001-03-26