2012-04-20 14 views
5

Sto cercando di compilare il kernel di Linux: http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.htmlcompilare Linux - ciao mondo

Ho un semplice programma di mondo ciao ciao-1.cpp

#include <linux/module.h> 
#include <linux/kernel.h> 

int init_module(void) 
{ 
    return 0; 
} 

void cleanup_module(void) 
{ 
} 

Ma sto cercando di costruirlo utilizzando il Makefile:

obj-m += hello-1.o 

all: 
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 

clean: 
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean 

Ottengo un paio di errori.

make -C /home/pacman/linux-2.6.34.11/2.6.35.6-45.fc14.i686/build M=/home/pacman/p1 modules 
make: *** /home/pacman/linux-2.6.34.11/2.6.35.6-45.fc14.i686/build: No such file or directory. Stop. 

marca: * [tutti] errore 2

sto dimenticando per definire qualcosa?

+0

Nel mio caso l'esempio compilato correttamente. Nel tuo caso la directory di build che stai passando come argomento da rendere non viene trovata. Prova a seguire il tutorial in questo [sito web] (http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html) per vedere se risolve il tuo problema o in alternativa puoi cercare la build dir della tua versione del kernel e passala come argomento di make. – bacchus

+0

Quando elencho il contenuto di – user289925

+0

Nella directory /home/pacman/linux-2.6.34.11 mi aspetto una directory o un file di build? Ho un file Kbuild. – user289925

risposta

1

Rinomina ciao-1. cpp per ciao-1. c (moduli devono essere scritte in C) e aggiungere le linee:

module_init(init_module); 
module_exit(cleanup_module);