Posteado por: Jose David Baena | agosto 29, 2007

“Hola Mundo” en el kernel de Linux

Este post va a ser una especie de tutorial paso a paso de como crear tu primer programa para el kernel de linux. Este programa será el típico “Hola Mundo” que se imprimirá en la consola de depuración a la cual podemos acceder desde root con dmesg.

En primer lugar hay que localizar el programa kdevelop e instalarlo. He elegido kdevelop porque es un IDE sencillo de usar y para el que no tenga mucha experiencia con Linux, le resultará más sencillo, ya que dicho IDE te genera todos los archivos intermedios y te genera los propios makefiles a los cuales llama, lo cual nos generará mucho tiempo.

Kdevelop lo podeis buscar en el adept o mediante apt-get.

Una vez instalado kdevelop, nos vamos a Kdevelop C/C++ IDE, que está situado en el menu de Desarrollo>KDevelop.

Una vez en ek KDevelop, creamos un nuevo proyecto:

Seleccionamos la opcion de C>”Linux Kernel Module”

Rellenamos los campos necesarios y siguiente… (Como se ven en las capturas)

Esta es la ultima pantalla del dialogo para la creación del proyecto.Le damos a Populate(crear todos los archivos necesarios… tanto como de información del proyecto como de otras cosas como la configuración)

ATENCIÓN: Paso muy importante!
Tenemos que cambiar la licencia de nuestro programa, ya que por defecto en el código fuente original que nos crea por defecto KDevelop la licencia es $license y no GPL.Si la licencia no es GPL el kernel se queja y da warnings, y esto se puede cambiar simplemente cambiando $license por GPL.En la imagen lo podemos ver:

A continuación añadimos un printk(“Hola Mundo\n”); en el init_module, tal y como vemos en la imagen siguiente:

Bien, ya hemos hecho el codigo fuente(¡solo hemos añadido una linea!).Ahora toca construir el proyecto:

Nos metemos en consola, y en el directorio donde se encuentre situado el proyecto y con permisos de root, realizamos la siguiente instruccion:

#insmod hola-mundo-driver.ko

A continuación realizamos la instruccion dmesg, la cual enseñará los ultimos mensajes que han llegado a la consola de depuración del kernel, en el cual veremos nuestras líneas de Hola mundo.

Nota:Las imágenes las he intentado reducir en calidad para que no tardasen en descargarse y por cuestión de espacio.Si no se aprecia lo que pone, comentarmelo y las cambio.Lo mismo para cualquier duda acerca del tutorial.

Anuncios

Responses

  1. Muy bueno, esto de programar en Linux cada vez se pone mejor 🙂 he estado programando con KDevelop y me ha gustado muchísimo, y ahora veo que también se puede programar módulos para el kernel, pues no hay palabras 😀

    Sigue adelante!!

  2. Gracias.Siempre es reconfortante saber que lo que haces es valorado por otros.

  3. Yo ya habia programado antes..pero no conocia esta faceta de kdevelop , sin duda un tutorial de lo mas acertado.. Gracias por compartir.

  4. Fantastico es justo lo que estaba buscando.

  5. hey, como se programa el kernel de linux?.
    mmmm ;(.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: