linux之设备驱动----简单hello world模块(2)

移植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,简单驱动成功了!


 

你可能感兴趣的:(linux,shell,Module,2010)