剛學的,不用一會就忘了。
還是記錄下吧。
新建2個文件,hello.c和Makefile,要在同一文件夾中
-----------------------------------------------------------------
#include<linux/init.h>
#include<linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "Goodbye,cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
----------------------------------------------------------------------
上面是hello.c,下面是Makefile注意空格和tab鍵,make前面是tab鍵
----------------------------------------------------------------------
obj-m:=hello.o
KDIR:=/home/vishun/3.0.1kernel/linux-3.0.1/
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean
--------------------------------------------------------------------------
KDIR,是你買開發板後帶着的光盤裏的內核源文件,我的是在光盤/Linux-3.0.1/kernel_sourcecode中,copy到你的電腦linux系統隨便,解壓隨便目錄,但是要記住了,像我解壓在/home/vishun/3.0.1kernel中。
C是選擇內核 M是生成模塊
還有可能要先安裝交叉編譯環境,我以前安裝過了,所以不清楚如果不安裝會有什麼後果
然後在這2個文件的目錄下運行make,會生成hello.ko文件。
將hello.ko文件用minicom傳輸或者是nfs傳輸到開發板/lib/modules/3.0.1中,沒有就mkdir,注意3.0.1是我的,你linux內核是2.6.4什麼的話建立就是2.6.4。
然後在開發板3.0.1目錄中運行,下圖是結果
有些人在2.6內核下可能rmmod不能卸載(3.0.1沒問題),可查看飛凌論壇給出的方面的解答http://bbs.witech.com.cn/thread-5812-1-1.html,