Linux设备驱动程序(1)【第一个驱动程序:HelloWorld】

Linux设备驱动程序第一个例子:Hello World


一、源代码(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,world\n");  

        return 0;  
}  
static void hello_exit(void)  
{  
        printk(KERN_ALERT "Goodbye,world\n");  
}  

module_init(hello_init);  
module_exit(hello_exit);  
Makefile:

obj-m := hello.o  
KERNELDR := /usr/src/linux-headers-$(shell uname -r)
# /usr/src/linux-source-4.4.0,上面是你的内核源码的目录,自己到/usr/src下看一下
PWD := $(shell pwd)  
modules:  
	$(MAKE) -C $(KERNELDR) M=$(PWD) modules
moduels_install:  
	$(MAKE) -C $(KERNELDR) M=$(PWD) modules_install  
clean:  
	rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions 


二、编译

1.直接make:(可能会出现以下错误)

错误一:ERROR: Kernel configuration is invalid.include/generated/autoconf.h or include/config/auto.conf are missing.Run 'make oldconfig && make prepare' on kernel src to fix it.

>>>解决方案:点击打开链接

2.加载与卸载驱动模块:

加载:insmod ./hello.ko

卸载:rmmod hello

注意:终端上并不显示输出,用命令【dmesg |tail -10,查看最后10条信息】就能查看输出的Hello,world!


至此,你已经完成了一个最简单的驱动程序!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值