有关驱动与应用层数据交互的小例子( 以及驱动 epoll 实现的实现方式 )
介绍
- 演示了一个驱动对应多个设备,以及各个设备的存取
- 演示了应用与驱动,mmap 的映射实现与访问
- 演示了应用层通过 select, poll, epoll 方式读写设备数据
- netlink 的方式待续
driver
- 删除驱动 rmmod memdev
- 一般内核都会对模块进行签名检查,没好的办法,关闭内核源码的对模块签名,重新编译内核,用新内核启动
app
mmap 是演示应用层与驱动层之间的使用
read 和 write 演示了利用 select, poll, epoll 模型从内核读取东西
netlink_unicast 需要驱动层打开 NETLINK_UNICAST 宏定义
Compile kernel module and user space program:
makeLoad kernel module:
insmod ./netlink_test.koAlso check kernel log
dmesgfor module debug output:
./nl_recv "Hello you!"
Hello you!Unload kernel module:
rmmod netlink_test.konetlink_multicast 需要驱动层打开 NETLINK_MULTICAST 宏定义
Compile kernel module and user space program.
makeLoad kernel module:
insmod ./netlink_test.koAlso check kernel log
dmesgfor module debug output.
./nl_recv "Hello you!"
Listen for message...
Received from kernel: Hello you!
Listen for message...Execute
./nl_recvin another console as well and see how the message is send to the kernel and back to all running nl_recv instances.
Note: Only root or the kernel can send a message to a multicast group!Unload kernel module:
rmmod netlink_test.konetlink_namespace 需要驱动层打开 NETLINK_NAMESPACE 宏定义
Compile kernel module and user space program.
makeLoad kernel module:
insmod ./netlink_test.koCheck kernel log
dmesgfor module debug output.
./nl_recv "Hello you!"
Hello you!Unload kernel module:
rmmod netlink_test.ko
源码下载
随便找个 linux 系统,需要找到对应的内核源码包,去掉对模块的签名校验,安装新内核,以新内核启动系统
本文源码
有关驱动与应用层数据交互的小例子( 以及驱动 epoll 实现的实现方式 )的更多相关文章
- 基于Xen实现一种domain0和domainU的应用层数据交互高效机制 - 2
继续昨天的思路,今天先google了类似的实现domain0和domainU之间数据传输的方案 [Xen-devel] XenStore as a data transfer path? 这篇帖子讨 ...
- 基于Xen实现一种domain0和domainU的应用层数据交互高效机制 - 3
继续 上一篇 的研究,结合 xen4.2.3 的代码分析,发现 xen4.2.3 的应用层工具库 tools 包含一个工具叫 libvchan ,其头文件描述如下: * This is a libra ...
- 基于Xen实现一种domain0和domainU的应用层数据交互高效机制
项目里有一个需求,domain0的应用层需要定时给domainU(hvm windows)的应用层传递一块数据,原来的方案是在domainU的应用层架设一个http服务器,监听在某个端口,然后需要塞数 ...
- Hybrid小程序混合开发之路 - 数据交互
HTML+CSS是历史悠久.超高自由度.控制精准.表现能力极强.编码简单.学习门槛超低.真跨平台的一种UI界面开发方式. 本文介绍的是微信小程序和H5混合开发的一种数据交互方式. 很多应用在原生界面中 ...
- --@angularJS--自定义服务与后台数据交互小实例
1.myService.html: <!DOCTYPE HTML><html ng-app="app"><head> <title& ...
- Vue小项目二手书商城:(二)axios前后端数据交互
实现内容: 写路由接口(express) axios取数据 一.写接口 1.我们要在前端取到后端的数据(之前写的data.json)可以用vue-resourse或者用axios,在vue2之后官方就 ...
- STM32L476应用开发之四:触摸屏驱动与数据交互
数据交互可以说是任何一台仪器都需要的功能.我们的便携式气体分析仪,需要人来操作和配置,所以触摸屏就是我们必然的一个选择.本次我们计划采用3.5寸显示屏,串口通讯. 1.硬件设计 前面我们实验了串行通讯 ...
- PHP 数据库驱动、连接数据不同方式学习笔记
相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.ph ...
- Spring MVC之JSON数据交互和RESTful的支持
1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...
- .net实现与excel的数据交互、导入导出
应该说,一套成熟的基于web的管理系统,与用户做好的excel表格进行数据交互是一个不可或缺的功能,毕竟,一切以方便客(jin)户(qian)为宗旨. 本人之前从事PHP的开发工作,熟悉PHP的都应该 ...
随机推荐
- Markdown基本使用教程
Markdown学习 标题 一个'#+空格'是一级标题,'##+空格'二级标题 字体 hello: 斜体'+内容+' hello:加粗'+内容+' hello hello 引入 引用来源 分割线 '三 ...
- 群晖Video Station不支持部分视频的解释
网络上都是替换ffmpeg插件的做法,无非就是替换了3个文件,然后再对其中一个文件进行修改. 然而在DSM7.0.1+VS3.0.2中,这个方法根本无用,最好的结果是之前无法播放的视频播放起来转圈圈而 ...
- IIS 7.0、IIS 7.5 和 IIS 8.0 中的 HTTP 状态代码
https://support.microsoft.com/zh-cn/help/943891/the-http-status-code-in-iis-7-0--iis-7-5--and-iis-8- ...
- SQL查询 错误 [1843] [22008]: ORA-01843: 无效的月份
dbeaver客户端运行sql查询Oracle库报错. 正确示例: select count(*) from PRODUCTS WHERE CREATE_TIME > '15-7月-2021 ' ...
- 【Android HttpClient引入】感慨下自己看的Android教程有点老了
教程看到使用HttpClient,发现没有继承该类. 原因是API23即在Android 6.0(API 23) 后,Google已经移除了Apache HttpClient 相关类,推荐使用Http ...
- Java基础Day5-数组
一.数组声明创建 首先必须声明数组变量,才能在程序中使用数组. 声明数组变量的语法如下: dataType[] arrayRefVar; 例如: int[] nums; Java语言使用new操作符来 ...
- sql server 01
1. 数据库管理系统(DateBase Management System )DBMS 是专门为管理数据库而设计的一个电脑软件系统 分为两种: (1)关系数据库:建立在关系模型基础上的数据库,比如 S ...
- LOJ数列分块入门九题(上)
一转眼,已经有整整一年没有在博客园写博客了.去洛谷写了几篇(How time flys. 最近突然想起其实我不太擅长分块算法,又想起去年暑假有位同学同我提起过LOJ的数列分块九题,说来惭愧,打了这么久 ...
- 网易-java线程的interrupt
java线程的interrupt方法初一接触的时候,会和过去各种面向过程语言线程中断线程的方法有点不一样. java里不提倡直接将线程kill掉,实际上如果想直接kill线程可以用stop方法 可以看 ...
- 设置mode='out-on'导致路由切换过快路由加载报错 Failed to execute 'insertBefore' on 'Node'
原代码: 解决代码: 原因未知