欢迎光临
我们一直在努力

第一个Linux驱动开发hello word

没有系统学习过驱动的开发,但是我想要…

总是要开头的,就像学编程一样,总要懵懵懂懂的经历第一个hello world,以下内容都是网上学习的,这里做个记录:

第一步:

了解:

1.在linux系统下,系统内核分为三种类型,字符设备/块设备/网络设备

2.第一个驱动程序 hello world 将按照块设备进行

3.有两种方式加进内核,分别是动态加载,按我理解应该就是insmod,另一种是编译内核时加入

第二步:

代码


//hello.c

//auther:heat nan

//programe:char driver-hello world

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");   //内核2.6以上版本建议我们加上这个license
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/4.4.0-98-generic/build
PWD:=$(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install

第四步:

编译: 直接  make

编译后可以发现当前目录出现了 hello.ko的文件,这个就是我们常见的驱动文件了。

第五步:

insmod hello.ko

通过动态加载的方式,我们第一个驱动程序就成功加载了。

通过 lsmod 可以看到。

查看输出:通过 dmesg | tail 命令可以看到  helloworld。

赞(0) 打赏
未经允许不得转载:huangea的博客 » 第一个Linux驱动开发hello word
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

有趣的网站

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏