hello模塊裝載在開發板上。

剛學的,不用一會就忘了。

還是記錄下吧。

新建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目錄中運行,下圖是結果

hello模塊裝載在開發板上。 - clzhl_2004 - 白的共享空間

有些人在2.6內核下可能rmmod不能卸載(3.0.1沒問題),可查看飛凌論壇給出的方面的解答http://bbs.witech.com.cn/thread-5812-1-1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章