linux下hello—world驱动,做成功了,现在总结一下

一。这是源码hello_dri.c

#include <linux/init.h> /*包含模块注册和注销宏*/
#include <linux/module.h> /*驱动编程必须包含*/
#include <linux/kernel.h>

 

static int hello_init(void)
{
printk( "<1>Hello World 1./n" );

return 0;
}

static void hello_exit(void)
{
printk( KERN_ALERT "Goodbye 1./n" );
}

module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("Dual BSD/GPL");
// end of source

二。这是Makefile

obj-m:=hello_dri.o #目标模块的名字 

KDIR:=/lib/modules/$(shell uname -r)/build #内核源码支持

PWD:=$(shell pwd) #自己程序所在目录

 

default: #输入make ,默认使用这里

$(MAKE) -C $(KDIR) M=$(PWD) modules

clean:symver

$(MAKE) -C $(KDIR) M=$(PWD) clean

rm -rf Module.markers modules.order Module.symvers

end of Makefile

注意

1.程序名字是有讲究的

2.源码和Makefile放在一个目录

三。编译

$make

在当前目录生成了。ko驱动文件

四。运行

进入字符终端(ctrl+alt+f1),$sudo insmod hello_dri.ko

显示printk里的内容

$sudo rmmod hello_dri.ko

注意:

1.加载时是hello_dri.ko 卸载时是hello_dri

2.在字符终端才会有显示。否则在图形界面的终端不会显示,但会在/var/log/messages里面会有显示

 

重点:

由于2.6核心的Makefile和别的版本的不一样,所以需要研究一下,贴出参考资料

http://lwn.net/Articles/21817/ (纯英文,很专业,很好用)

http://linux.chinaunix.net/techdoc/develop/2008/07/25/1020310.shtml (论坛上的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值