当前位置: 首页 > news >正文

RK3568驱动模块编译进内核

一、创建文件

  首先在drivers/char目录下创建hello文件夹,然后在hello文件夹下创建hello.c 文件、Kconfig和Makefile文件。
  hello.c 文件内容如下

#include <linux/module.h>
#include <linux/kernel.h> 
static int __init helloworld_init(void)        
{printk(KERN_EMERG "helloworld_init\r\n");return 0;
}
static void __exit helloworld_exit(void)    
{printk(KERN_EMERG "helloworld_exit\r\n");
}module_init(helloworld_init);    
module_exit(helloworld_exit); 

  Kconfig文件内容如下

config HELLO
tristate "hello world" help
hello h

  Makefile文件内容如下

obj-$(CONFIG_HELLO)+=helloworld.o

二、修改已有的文件

  需要修改上一级目录的 Kconfig 文件和 Makefile 文件,也就是 driver/char 目录
  Makefile添加如下图所示内容。

obj-y += hello

在这里插入图片描述
  Kconfig 添加如下图所示内容

source "drivers/char/hello/Kconfig"

在这里插入图片描述

三、配置编译

  打开 menuconfig 图形化配置工具,在配置界面选择 helloworld 驱动。把驱动编译进Linux 内核,用 * 来表示,所以配置选项改为*。如果想要将驱动编译为模块,则用 M 来表示,配置选项改为 M

3.1、编译进Linux 内核

  在menuconfig 图形化配置工具里面选择*,把驱动编译进Linux 内核。然后保存配置将信息保存到.config 文件。然后输入以下命令编译:

make savedefconfig
cp defconfig arch/arm64/configs/rockchip_linux_defconfig
cd ../
./build.sh kerne

  编译成功之后,进入到 drivers/char/hello 目录下,可以看到会生成对应的.o 文件。就说明已经成功将驱动编译进内核。
  将编译好的内核镜像烧写到开发板上后,在开发板系统启动的时候可以成功看到加载helloworld 驱动。

3.2、编译成模块

  如果在图形化配置界面中选择的 M,也就是编译成驱动模块,则生成 helloworld.ko 文件。

http://www.lryc.cn/news/197326.html

相关文章:

  • 黑马程序员Java Web--14.综合案例--修改功能实现
  • 开源协议介绍
  • solidworks 2024新功能之-打造更加智能的工作 硕迪科技
  • Datawhale学习笔记AI +新能源:电动汽车充电站充电量预测
  • 记一次fineBI的增量删除更新BUG
  • rsync+inotify实时同步+双向同步
  • 7.继承与多态 对象村的优质生活
  • 机器视觉、图像处理和计算机视觉:概念和区别
  • 从零开始的C语言学习第二十课:数据在内存中的存储
  • 分布式内存计算Spark环境部署与分布式内存计算Flink环境部署
  • am权限系统对接笔记
  • 回首往昔,初学编程那会写过的两段愚蠢代码
  • 《Java面向对象程序设计》学习笔记——Java程序填空题
  • Chrome跨域访问网络请求Cookies丢失的解决办法
  • 从创业者的角度告诉你AI问答机器人网页的重要性
  • 大数据Flink(九十七):EXPLAIN、USE和SHOW 子句
  • 浏览器中的网络钓鱼防护
  • 每日温度00
  • 【JVM】JVM的垃圾回收机制
  • 28栈与队列-单调队列
  • qt软件崩溃的分析方法-定位源文件和行号
  • 《实验细节》上手使用PEFT库方法和常见出错问题
  • 软考高级系统架构论文 注意事项
  • Reasoning with Language Model Prompting: A Survey
  • jenkins pipeline使用
  • MATLAB——神经网络参考代码
  • 小程序搭建OA项目首页布局界面
  • HyperLogLog算法
  • 自定义Docker镜像--Jupyterlab
  • IDEA中明明导入jar包了,依旧报ClassNotFoundException