Objetivo
Estou tentando escrever um driver de dispositivo simples no Ubuntu. Eu quero fazer isso usando o Eclipse (ou um IDE melhor que seja adequado para a programação de drivers). Aqui está o 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 );
Meu esforço
Após algumas pesquisas, decidi usar o Eclipse CTD para desenvolver o driver (embora ainda não tenha certeza se ele suporta ferramentas de depuração com vários threads). Então eu:
- Instalou o Ubuntu 11.04 desktop x86 em uma máquina virtual VMWare,
- Instalado
eclipse-cdt
e linux-headers-2.6.38-8 usando o Synaptic Package Manager, - Criamos um código acima
C Project
nomeadoTestDriver1
e copiado e colado para ele, - Alterou o comando de construção padrão,,
make
para o seguinte comando de construção personalizado:
make -C /lib/modules/2.6.38-8-generic/build M=/home/isaac/workspace/TestDriver1
O problema
Eu recebo um erro ao tentar criar este projeto usando o eclipse. Aqui está o log da compilação:
**** Construção da configuração Debug para o projeto TestDriver1 ****
make -C /lib/modules/2.6.38-8-generic/build M = / home / isaac / workspace / TestDriver1 tudo
make: Entrando no diretório '/usr/src/linux-headers-2.6.38-8-generic'
make: *** Nenhuma regra para tornar o alvo
vmlinux', needed by
tudo '. Pare.make: Deixando o diretório '/usr/src/linux-headers-2.6.38-8-generic'
Curiosamente, não recebo nenhum erro quando uso em shell
vez de eclipse
criar este projeto. Para usar shell
, eu apenas crio um Makefile
contendo obj-m += TestDriver1.o
e uso o make
comando acima para criar.
Então, algo deve estar errado com o eclipse Makefile
. Talvez esteja procurando a vmlinux
arquitetura (?) Ou algo assim, enquanto a arquitetura atual é x86. Talvez seja por causa do VMWare?
Pelo que entendi, eclipse
cria os makefiles automaticamente e modificá-los manualmente causaria erros no futuro OU dificultaria o gerenciamento makefile
.
Então, como posso compilar este projeto no eclipse?
autotools
plugin em breve. Você conhece algum IDE melhor para a programação de drivers? Você acha que eu (um usuário preguiçoso do VS que não tem experiência no Linux) posso gerenciarmakefile
? Émakefile
realmente gerenciável em grandes projetos?