Linux驱动开发如何加载模块

2024-10-20 13:56:56

相信学习Linux驱动开发的朋友都知道,Linux豹肉钕舞设备驱动常常以内核模块的形式出现,要学习Linux设备驱动首先要做的就是内核袷蜍滇刷模块的编程。那么,本文将从模块源码编写、编写工程编译文件——Makefile、向内核加载模块以及结果检测四个部分对驱动开发中模块的加载进行介绍,希望能和大家一起学习,共同进步。

Linux驱动开发如何加载模块

工具/原料

虚拟机

Vim

Ubuntu

说明:

1、【说明】:由于我平时使用的是Windows操作系统,Linux系统仅用于学习和开发,所以接下来的所有演示都是在虚拟机中的Ubuntu系统中进行的。具体情况如下图所示:

Linux驱动开发如何加载模块

2、接下来用VI打开hello.c源文件,使用命令“vi hello.c”即可打开(因为我已经往里面添加了代码,所以会有代码显示,大家的还没有添加,将会看到一片空白,不过没有关系,接下来我们会逐一进行讲解),具体情况如下图所示:

Linux驱动开发如何加载模块

4、写完版权声明后,接下来我们来写模块加载函数。具体情况如下图所示:

Linux驱动开发如何加载模块

二、编写工程编译文件——Makefile

1、源文件写好后,接下来要做的就是编译了。因为编译时要调用内核中的代码,所以这里绝不是简简单单的一句话就可以实现编译的,我们需要借助Makefile,然后使用命令“make”进行编译,最终生成模块。那么,下面我们就一起来编写Makefile文件吧。这里需要注意的是,Makefile文件需要和刚刚我们写好的hello.c文件放在同一个目录下。具体情况如下图所示:

Linux驱动开发如何加载模块

3、上面的步骤都做好后,就可以在当前目录下使用make进行编译了。具体操作情况如下图所示:

Linux驱动开发如何加载模块

2、使用lsmod命令可以查看到我们已经加载上去的模块,具体操作情况如下图所示:

Linux驱动开发如何加载模块

4、使用sudo dmesg 命令可以查看得到内核的打印消息,在众多消息中我们可以看到刚刚我们使用prink打印的消息,具体操作情况如下图所示:

Linux驱动开发如何加载模块

尾声:

1、在Linux中如何加载和卸载自己生成的模块,这里已经介绍完了,如果大家觉得还不错的话,记得给好评哦!

猜你喜欢