2012-04-20 142 views
5

我試圖編譯Linux內核: http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html編譯Linux內核 - 世界你好

我有一個簡單的Hello World程序HELLO-1.cpp

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

int init_module(void) 
{ 
    return 0; 
} 

void cleanup_module(void) 
{ 
} 

但我試圖建立它使用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 

我得到了一些錯誤。

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. 

化妝:* [全部]錯誤2

我忘記了界定什麼?

+0

在我的情況正確編制的例子。在你的情況下,作爲參數傳遞的構建目錄沒有找到。嘗試按照這個[網站](http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html)中的教程來查看它是否解決了您的問題,或者您可以搜索構建你的內核版本的目錄並將其作爲make的參數傳遞。 – bacchus 2012-04-20 21:54:38

+0

當我列出 – user289925 2012-04-20 22:25:54

+0

的內容在/home/pacman/linux-2.6.34.11目錄中,我希望看到一個構建目錄或文件?我有一個Kbuild文件。 – user289925 2012-04-20 22:30:56

回答

1

重命名hello-1。 cpp to hello-1。 Ç(模塊必須用C被寫),並添加行:

module_init(init_module); 
module_exit(cleanup_module);