移植hello world 模組到TQ2440開發板
1.準備核心,TQ2440開發板內建的linux-2.6.30.4_20100531.tar.bz2。
2.放到自己建立的目錄/opt/guoqian/下,tar -jxvf linux-2.6.30.4_20100531.tar.bz2
3.進入解壓的核心目錄底下,執行make distclean.
4.利用TQ2440內建的配置,執行cp config_EmbedSky_W43 .config
5.編譯核心,執行make
6.建立目錄hellomod_arm,進入目錄,建立兩個檔案夾hello.c Makefile
hello.c內容如下:
#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello,my drive world!\n"); return 0;}static void hello_exit(void){ printk(KERN_ALERT "Goodbye,drive world!\n");}module_init(hello_init);module_exit(hello_exit);
-----------------------------------------------------
Makefile內容如下:
KERNELDIR = /opt/guoqian/opt/EmbedSky/linux-2.6.30.4 //核心目錄PWD:=$(shell pwd)INSTALLDIR = /opt/guoqian/lib/modules //安裝模組目錄,預設本目錄CROSS_COMPILE = arm-none-linux-gnueabi-gccCC = $(CROSS_COMPILE)obj-m :=hello.o.PHONY:modules modules_install cleanmodules : make -C $(KERNELDIR) M=$(PWD) modulesmodules_install: cp hello.ko $(INSTALLDIR)clean: rm -f *.ko *.o,*.mod.o *.mod.c .symvers
7.通過nfs,或者u盤,把hello.ko拷貝到開發板。
8.執行命令insmod hello.ko
Hello,my drive world!
9.再執行命令 rmmod hello.ko
Goodbye,drive world!
OK,簡單驅動成功了!