基于ubuntu的驱动开发

news2024/11/24 20:37:31

  一般的linux驱动开发都是基于交叉编译来进行的,本文尝试着从另一个角度:基于ubuntu的本地驱动开发来学习一下驱动的开发

一、驱动的开发与编译

1.1、编写驱动文件

#include <linux/init.h>
#include <linux/module.h>
static int hello_init(void)
{
    printk("Hello,world\r\n");
    return 0;
}
static void hello_exit(void)
{
    printk("hello,world over\r\n");
}
MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);

1.2、查找内核文件位置

在这里插入图片描述

1.3、编写makefile文件

KERNELDIR :=/usr/src/linux-headers-4.15.0-29-generic
CURRENT_PATH := $(shell pwd)
obj-m := hello.o
build: kernel_modules
kernel_modules:
	$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules

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

  其中KERNELDIR 就是前面查找的内核目录

1.4、编译

make

在这里插入图片描述

二、驱动的加载与测试

2.1、加载驱动

sudo insmod hello.ko

在这里插入图片描述

2.2、卸载驱动

sudo rmmod hello.ko

在这里插入图片描述

2.3、查看内核日志信息

dmesg

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FL Studio中文版21最新免费音乐编曲软件制作工具

FL Studio较为适合专业的音乐制作者&#xff0c;操作难度较大&#xff0c;学习门槛也较高&#xff1b;Studio One则主打一站式的音乐制作&#xff0c;从编曲到录音到后期的专辑制作都可以在其中实现&#xff0c;同时操作难度不大&#xff0c;对初学者和业余爱好者都较为友好。 …

【NX】NX二次开发中自动选择当前实体和方向

在NX的二次开发中&#xff0c;我们经常需要选择实体和方向&#xff0c;如果每次手动选择&#xff0c;势必会影响调试的效率&#xff0c;那么有没有办法&#xff0c;让程序一启动就自动选择当前实体和方向呢&#xff0c;自然是有的。 经过我一番研究&#xff0c;因为可能有多个实…

Apikit 自学日记:团队管理

团队管理 一、工作空间管理 工作空间类似于部门或公司的概念&#xff0c;能帮助您更好地管理团队。 1.1 创建空间 点击页面左上角功能菜单&#xff0c;在下拉菜单中选择要切换的工作空间。 点击创建/加入&#xff0c;在引导页面中选择创建工作空间&#xff0c;填写工作空间…

JavaWeb HttpServletRequest

1.HttpServletRequest HttpServletRequest是Java Servlet API中的一个接口&#xff0c;用于表示HTTP请求的对象。 它提供了访问HTTP请求的各种信息和功能&#xff0c;包括请求方法、请求URL、请求头、请求参数、请求体等。 HttpServletRequest是由Servlet容器&#xff08;如…

利用PPT制作简单的矢量图

1.用PPT画一个图形&#xff08;可以多个图&#xff09; 2.鼠标圈住图形 3.利用 Ctrl G 组合图形&#xff0c;再用 Ctrl C 复制 4.打开word—粘贴—选择性粘贴—图片&#xff08;增强性图元文件&#xff09; 确认即可。

【制品】通用制品参库

制品仓库 制品库顾名思义是制品的仓库&#xff0c;制品是软件交付的成果性产物&#xff0c;通常是可运行的二进制形式&#xff0c;因此制品库通常也被称之为二进制制品仓库。制品库在开发阶段为使用各种开发语言的微服务开发者提供依赖解析的唯一入口。在构建阶段为各种语言的…

MongoDB远程复制集集群((两台服务器,8个实例))

第三阶段基础 时 间&#xff1a;2023年7月4日 参加人&#xff1a;全班人员 内 容&#xff1a; MongoDB远程复制集集群 目录 MongoDB远程复制集集群 实验环境&#xff1a;&#xff08;两台服务器&#xff0c;8个实例&#xff09; 环境部署&#xff1a; 安装部署 实 …

零基础自学网络安全,就是这样简单!

建议一&#xff1a;黑客七个等级 黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员…

Diffusers学习总结

Diffusers代码&#xff1a;https://github.com/huggingface/diffusers Diffusers使用指南&#xff1a;https://huggingface.co/docs/diffusers/index Diffusers前向加速技巧&#xff1a; float16前向推理

微信小程序申请 wx.getLocation 接口 审核一直不通过

项目需要通过微信的 getLocation 获取本地的位置信息&#xff08;经纬度&#xff09;&#xff0c;但是提交很多次审核都不通过&#xff0c;最后通过写了个项目里用不到的 导航功能 截图录屏才通过了审核。 以下申请文案及配图仅供参考&#xff1a; 因当前业务涉及就近医院挂号…

JointVAE用于单细胞多模态插补和embedding

单细胞多模态数据能够测量细胞的各种特征&#xff0c;从而深入了解细胞和分子机制。然而&#xff0c;多模态数据的生成仍然昂贵且具有挑战性&#xff0c;同时缺失模态也经常发生。最近&#xff0c;机器学习方法已经被开发用于数据补全&#xff0c;但通常需要完全匹配的多模态数…

【剑指 Offer】52. 两个链表的第一个公共节点。 难度等级:简答 -- 中等。双指针法太秀了

文章目录 1. 题目2. 我的解法&#xff1a;哈希表&#xff0c;空间复杂度 0(n)&#xff0c;不符合要求2.1 算法思路2.2 code 3. 双指针法&#xff1a;浪漫相遇太秀了3.1 算法思路3.2 code 1. 题目 题目链接&#xff1a;剑指 Offer 52. 两个链表的第一个公共节点 输入两个链表&…

丢失msvcr120.dll的解决方法

1、什么是MSVCR120.dll&#xff1f; MSVCR120.dll是微软公司开发的Visual 2013程序的一部分。某些应用程序或游戏可能需要此文件才能正常工作。如果msvcr120.dll缺失&#xff0c;无论何时启动应用程序/游戏&#xff0c;都可能会遇到各种错误。 2、 msvcr120.dll软件特色 1、该…

九.图像处理与光学之图像几何变换算法(双线性插值)

九.图像处理与光学之图像几何变换算法(双线性插值) 9.0 前言 ​ 图像几何变换是图像处理中非常基础实用的技能,主要包括图片位移、缩放、镜像、剪切、放射变换等,在对图像进行空间变换的过程中,典型的情况是在对图像进行放大,旋转处理的时候,图像会出现失真的现象。这是…

【半监督医学图像分割 2023 MICCAI】SCP-Net

文章目录 【半监督医学图像分割 2023 MICCAI】SCP-Net摘要1. 简介2. 方法2.1 自交原型预测2.2 典型预测不确定性2.3 无监督原型一致性约束SPCCCPCC 3 实验与结果3.1 数据集和评价指标3.2 实施细节3.3 与其他方法的比较3.4 消融研究 4. 总结 【半监督医学图像分割 2023 MICCAI】…

Word表格设置边框不生效的解决方法

1、这是新建并随意设置的表格&#xff0c;可以看出来上边框、内边框和下边框都是不同的粗细&#xff0c;很不协调。 2、选中表格&#xff0c;然后右击——>表格属性——>边框和底纹。 3、三线表&#xff0c;一般上边框和下边框都是1磅&#xff0c;内边框是0.5磅&#xff…

别再瞎忙活,掌握营销策划的核心机密

很多时候看多了那些广告门上的案例&#xff0c;就感觉出一个策略就一定要引爆市场才行&#xff0c;如果不能引爆&#xff0c;那营销策划就没用&#xff0c;这个非黑即白的思维要改改。 事实上&#xff0c;我们大部分的营销人&#xff0c;做的营销策划方案都是处于灰色地带&…

QT获取电脑系统,主板型号,CPU型号,硬盘型号,内存大小等相关信息(一)通过CMD和WMIC命令行的方式

QT通过CMD和WMIC命令行的方式获取电脑系统&#xff0c;主板型号&#xff0c;CPU型号&#xff0c;硬盘型号等相关信息&#xff0c;包括使用diskpart,wmic,DIrectX等 目录导读 一、DIrectX诊断工具打开窗体查看命令行输出 二、 直接CMD输入SYSTEMiNFO三、WMIC命令查询1.获取系统盘…

PaddleClas:自定义backbone

PaddleClas提供的都是现成的网络结构和权重&#xff0c;不一定适用&#xff0c;所以有必要掌握魔改的技能。 PaddleClas版本&#xff1a;2.5 1&#xff1a;新建 mynet.py 在 ppcls/arch/backbone/model_zoo/ 文件夹下新建一个自己的模型结构文件 mynet.py&#xff0c;即你自己…

抖音seo矩阵系统源码开发部署-开源分享(二)

目录 市场背景分析 一、 抖音seo矩阵系统开发部署流程 二、 源码开发功能构思 三、 抖音seo源码开发部署注意事项 四、 部分开发代码展示 市场背景分析 账号矩阵是通过不同平台不同账号之间建立联系&#xff0c;通过将同一品牌下不同平台不同账号的粉丝流量进行账号互通&a…