Objetivo
Estoy tratando de escribir un controlador de dispositivo simple en Ubuntu. Quiero hacer esto usando Eclipse (o un IDE mejor que sea adecuado para la programación del controlador). Aquí está el código:
#include <linux/module.h>
static int __init hello_world( void )
{
printk( "hello world!\n" );
return 0;
}
static void __exit goodbye_world( void )
{
printk( "goodbye world!\n" );
}
module_init( hello_world );
module_exit( goodbye_world );
Mi esfuerzo
Después de investigar un poco, decidí usar Eclipse CTD para desarrollar el controlador (aunque todavía no estoy seguro de si es compatible con herramientas de depuración de subprocesos múltiples). Asique:
- Instalé Ubuntu 11.04 Desktop x86 en una máquina virtual VMWare,
- Instalado
eclipse-cdt
y linux-headers-2.6.38-8 usando Synaptic Package Manager, - Creé un código anterior con
C Project
nombreTestDriver1
y copiado, - Cambió el comando de compilación predeterminado
make
, al siguiente comando de compilación personalizado:
make -C /lib/modules/2.6.38-8-generic/build M=/home/isaac/workspace/TestDriver1
El problema
Recibo un error cuando intento construir este proyecto usando eclipse. Aquí está el registro de la compilación:
**** Compilación de configuración de depuración para el proyecto TestDriver1 ****
make -C /lib/modules/2.6.38-8-generic/build M = / home / isaac / workspace / TestDriver1 all
make: Entrando en el directorio '/usr/src/linux-headers-2.6.38-8-generic'
make: *** Ninguna regla para hacer objetivo a
vmlinux', needed by
todos '. Detener.make: Saliendo del directorio '/usr/src/linux-headers-2.6.38-8-generic'
Curiosamente, no obtengo ningún error cuando lo uso en shell
lugar de eclipse
construir este proyecto. Para usar shell
, solo creo un Makefile
contenedor obj-m += TestDriver1.o
y uso el make
comando anterior para construir.
Entonces, algo debe estar mal con el eclipse Makefile
. Tal vez está buscando la vmlinux
arquitectura (?) O algo mientras la arquitectura actual es x86. ¿Quizás es por VMWare?
Como entendí, eclipse
crea los archivos MAKE automáticamente y modificarlos manualmente causaría errores en el futuro O makefile
dificultaría la administración .
Entonces, ¿cómo puedo compilar este proyecto en eclipse?
autotools
complemento pronto. ¿Conoces algún IDE mejor para la programación del controlador? ¿Crees que yo (un usuario vago de VS que no tengo experiencia en Linux) puedo manejarlomakefile
? ¿Esmakefile
realmente manejable en grandes proyectos?