移植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-gcc CC = $(CROSS_COMPILE) obj-m :=hello.o .PHONY:modules modules_install clean modules : make -C $(KERNELDIR) M=$(PWD) modules modules_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,简单驱动成功了!