Chinaunix首页 | 论坛 | 博客
  • 博客访问: 142010
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 876
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-09 10:56
文章分类

全部博文(20)

文章存档

2013年(20)

我的朋友

分类: LINUX

2013-04-10 19:48:50

 LDD3第二章的HelloWorld驱动程序源代码如下所示:

#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

然后将Makefilehello.c文件放在根目录下的mywork文件夹中,输入make命令。得到如下图所示:

使用ls命令查看,有如下文件:

安装驱动,采用insmod hello.ko

查看驱动是否存在:lsmod | grep hello 得到如下图所示:

     但是屏幕并没有打印
Hello, world信息,是因为优先级不够,没有在屏幕终端打印出来,可以使用命令cat /var/log/messages | grep hello 运行结果如下图所示

驱动正确安装了,卸载驱动rmmod hello

阅读(1986) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~