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

08_驱动编写(ko文件生成与使用)

1、驱动源码

#include <linux/module.h>
#include <linux/init.h>static int __init test_init(void)  
{printk("wo shi dalao\n");return 0; //返回0表示成功, 返回负数退出加载模块, 如返1,2,3等正数,会有警告但还是会加载
}
//__init 把test_init的函数代码放入统一的初始化段里,当内核把驱动初始化完后, 释放此函数的代码指令空间static void __exit test_exit(void)
{printk("sb baibai\n");
}
//__exit 指定此函数只在驱动卸载时使用, 用完后释放module_init(test_init); //指定test_init为模块初始化函数
module_exit(test_exit); //指定test_exit为模块退出时执行的卸载函数MODULE_LICENSE("GPL"); //指定所支持的协议
MODULE_AUTHOR("lk");
MODULE_DESCRIPTION("描述");
MODULE_VERSION("000");

2、makefile编写

obj-m += lk_test.oKDIR := /home/obt/workspace/kernel	#这里是你kernel的源码路径(kernel必须要与你板子的一样)
export ARCH := arm
export CROSS_COMPILE := arm-linux-gnueabihf-	#交叉编译工具链(记得安装或者指定绝对路径)all:make -C $(KDIR) modules M=`pwd` .PHONY : clean
clean:make -C $(KDIR) modules clean M=`pwd` 

3、加载与卸载ko模块
在这里插入图片描述

http://www.dtcms.com/a/283041.html

相关文章:

  • Linux中CentOS-7-x86_64:安装JDK1.8与启动部署Tomcat8.5.45(适合开发/测试环境)
  • ASP.NET Core Hosting Bundle
  • 关于liblvgl.so文件其实已经存在于当前目录下(可以看到ls命令列出了该文件),但程序仍然找不到它的原因及其解决方法:
  • 多商户二手车小程序系统源码,多端适配,带完整的搭建部署教程
  • C# 按照主题的订阅 按照类型的订阅
  • 人工智能与机器人研究|深孔内表面缺陷特征内窥测量方法研究
  • 智能呼叫中心系统:重构客户服务的核心引擎
  • 浅谈车载电控和机器人一体化关节电控区别和联系
  • 【Arm】Fusa Compiler 6.16LTS的安全认证报告获取
  • Openharmony XTS编译运行
  • 2025年Java最新社招面试八股文+技术场景题(金九银十)
  • Linux内核设计与实现 - 第2章 内核开发的准备
  • git的diff命令、Config和.gitignore文件
  • 《机器学习数学基础》补充资料:标准差与标准化
  • Ceph集群OSD崩溃恢复
  • 量子比特耦合与系统集成:量子计算硬件的核心突破
  • 离线部署三节点 Ceph 分布式存储
  • 访问者设计模式
  • Elasticsearch+Logstash+Kibana部署
  • java解析word文档
  • windows内核研究(进程与线程-等待链表和调度链表和线程切换)
  • Excel 导入导出工具类文档
  • ubuntu中拷贝docker容器中的文件到宿主机
  • 万字长文解析 OneCode3.0 AI创新设计
  • 微服务的编程测评系统2
  • 2025年量化交易平台对比:付费与开源方案深度分析
  • nerdctl - 兼容 Docker 语法 的 containerd 命令行界面
  • 17.图像金字塔采样(放大,缩小处理)拉普拉斯金字塔
  • 闰年的历史由来与C语言实现详解
  • 7.16 拓扑排序 | 欧拉回路 |链表排序 前缀和