字符设备驱动模块的编译

2023-12-15 19:04:32

一.? 简介

本文继上一篇文章的学习,上一篇文章学习了字符设备驱动框架的初步编写。文章地址如下:

字符设备驱动框架的编写-CSDN博客

本文对上一篇编写的驱动模块初步框架进行编译。

二.? 字符设备驱动模块的编译

上一篇文章,编写了字符设备驱动加载与卸载的框架代码,这里对代码进行编译。

编写 Makefile文件,Makefile 文件内容如下:

KERNELDIR := /home/wangtian/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga

CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o

build: kernel_modules

kernel_modules:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

1 行, KERNELDIR 表示开发板所使用的 Linux 内核源码目录,使用绝对路径,大家根 据自己的实际情况填写即可。
2 行, CURRENT_PATH 表示当前路径,直接通过运行 “ pwd ” 命令来获取当前所处路 径。
3 行, obj-m 表示将 chrdevbase.c 这个文件编译为 chrdevbase.ko 模块。
8 行,具体的编译命令,后面的 modules 表示编译模块, -C 表示将当前的工作目录切 换到指定目录中,也就是 KERNERLDIR 目录。 M 表示模块源码目录,“ make modules ” 命令 中加入 M=dir 以后程序会自动到指定的 dir 目录中读取模块的源码并将其编译为 .ko 文件。

Makefile 编写好以后,就可以输入“ make ” 命令编译驱动模块。操作如下:

从上面信息可以看出,进入我设置的 Linux内核源码(更改后的NXP官方Linux内核)目录中进行编译,编译完成后面又退出了 Linux内核源码路径。

查看是否生成 .ko文件:


可以看出,编译成功。生成了 chrdevbase.ko文件。

文章来源:https://blog.csdn.net/wojiaxiaohuang2014/article/details/135020993
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。