分类: LINUX
2013-04-10 19:48:50
#include
#include
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);
Makefile文件内容如下所示:
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.27.5-117.fc10.i686/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
然后将Makefile和hello.c文件放在根目录下的mywork文件夹中,输入make命令。得到如下图所示:
使用ls命令查看,有如下文件:
安装驱动,采用insmod hello.ko
查看驱动是否存在:lsmod | grep hello 得到如下图所示:
但是屏幕并没有打印Hello, world信息,是因为优先级不够,没有在屏幕终端打印出来,可以使用命令cat /var/log/messages | grep hello 运行结果如下图所示
驱动正确安装了,卸载驱动rmmod hello