Linux kernel driver 入门01 写个驱动玩玩儿 加载/卸载 hello world

前言

我们现在就写一个驱动小demo,环境准备:要有个linux系统,我的demo系统是一台老掉牙的笔记本上,装了个Ubunut18.04LTS 版本的系统。uname -a 命令我们查看一下这个系统的内核信息,如下:

内核版本是 4.15.0. x86_64的系统。

这个有什么用呢?就是下载对应的内核源码?我们要查询源码里面的一个文件。文件的目录是:

linux-source-4.15.0/Documentation/kbuild

在这个路径下有个 modulex.txt文件。很重要,我们要用它。

我们的目的就是让这个驱动加载到我们这台Linux机器的系统里面。

入口函数

驱动需要一个入口函数,在加载期间告知内核,这个是入口,(道理类似于应用程序的main函数)。

该函数的类型必须遵循如下的格式:

int  xxxxx_func(void);

注意:

1. 有一个 int 返回值,如果该驱动被成功加载了,那么该接口必须返回0,如果内部出错,可以返回 <0 的值,告诉内核,该模块加载不成功。

2. 一个驱动模块,只能有一个入口函数

3. 告诉内核的方式采用宏 wrap,如下:

module_init(xxxx_funct)

出口函数

如果需要,就添加一个出口函数,如果不需要,那就拉倒。当然,如果没什么资源需要被释放的,那么建议,出口函数就空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值