今天编译了hello驱动程序虽然是很简单,但是初学犯下些问题。不知道怎么编写makefile文件。最后从国嵌的程序中借来了一个makefile文件具体如下
- ifneq ($(KERNELRELEASE),)
-
obj-m := hello.o
-
else
-
KDIR := /home/graduate/linux-2.6.32.2 //实验板上的内核的目录,需要已经编译通过,不然没有用
-
all:
-
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-
-
clean:
-
rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*
-
endif
hello.c
- #include <linux/module.h>
-
#include <linux/types.h>
-
#include <linux/fs.h>
-
#include <linux/errno.h>
-
#include <linux/mm.h>
-
#include <linux/sched.h>
-
#include <linux/init.h>
-
#include <linux/cdev.h>
-
#include <asm/io.h>
-
#include <asm/system.h>
-
#include <asm/uaccess.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);
make后通过NFS服务吧hello.ko发送到开发板上
运行
以下是运行的结果
[root@ZHANG-MINI2440=W]#insmod hello.ko
Hello, world
[root@ZHANG-MINI2440=W]#rmmod hello.ko
Goodbye, cruel world
[root@ZHANG-MINI2440=W]#
阅读(1717) | 评论(0) | 转发(0) |