Android 蓝牙笔记-底层RFKILL驱动

2023-10-29

概念

RFKill, 就是RF(射频) 设备的开关,有类似一键关闭所有射频外设的功能,比如当我们在飞机上飞行开启飞行模式时候, 所有这些RF相关的设备都需要关闭.

linux的rfkill子系统提供了用于禁用系统中任何无线电发射器的通用接口, 发射设备关闭时.不得辐射任何功率. RFKill的出现方便管理各种RF芯片的开关. 目前已经很多厂商的设备使用的是RFKill的驱动来管理一些无线设备的电源了, 都是和RF相关的芯片, 比如WIFI, 蓝牙, NFC, FM, GPS等等. 由于这个rfkill的功能是管理无线设备的电源开关, 所以这和硬件的关联是直接的,一般都会涉及到硬件的power或reset引脚.

rfkill子系统有"hard"和"soft" block的概念, block的意思就是发射器关闭, hard block和soft block的差异在于

hard block : 软件无法管控到的只读类型的无线模块
soft block: 系统软件可设置的无线模块(可不需要读权限)

rfkill子系统由三个主要组件组成:

1.rfkill core
2.rfkill-input模块(不推荐使用的, 输入层处理程序,已由用户空间策略代码代替)
3.rfkill驱动程序

rfkill core为驱动程序提供了API,让驱动程序可向内核注册无线电发射器设备, 以及打开和关闭内核的方法, 这样系统就知道怎么禁用设备硬件. rfkill core还向用户空间通知状态更改,并为用户空间提供查询当前状态的方法.

hal层一般使用/dev/rfkill设备节点来操作设备使能/禁用, 用户空间一般都操作这个设备节点来写程序. linux下有rfkill工具, 有兴趣的朋友可以去玩下, 就是开关无线设备功能. 比如我电脑ubuntu上的:

zkh@zkh-ThinkPad-Edge-E430c:~$ rfkill
Usage:	rfkill [options] command
Options:
	--version	show version (0.5-1ubuntu3.1 (Ubuntu))
Commands:
	help
	event
	list [IDENTIFIER]
	block IDENTIFIER
	unblock IDENTIFIER
where IDENTIFIER is the index no.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 蓝牙笔记-底层RFKILL驱动 的相关文章

随机推荐

  • 禅道后台命令执行漏洞 (二)

    漏洞简介 禅道是第一款国产的开源项目管理软件 它集产品管理 项目管理 质量管理 文档管理 组织管理和事务管理于一体 是一款专业的研发项目管理软件 完整地覆盖了项目管理的核心流程 禅道管理思想注重实效 功能完备丰富 操作简洁高效 界面美观大方
  • 防火墙的相关信息

    什么是防火墙 防御对象 授权用户 非授权用户 它是一种位于内部网络与外部外部网络之间的安全系统 是一种隔离 非授权用户在区域间 并过滤 对受保护网络有害流量或数据包 的设备 防火墙具有路由交换的功能 既可以做路由器也可以做交换机 防火墙的分
  • 狂神Elasticsearch笔记

    ElasticSearch笔记 我们要讲解什么 SQL like 狂神说 如果是的大数据 就十分慢 索引 ElasticSearch 搜索 百度 github 淘宝电商 1 聊一个人 2 货比三家 3 安装 4 生态圈 5 分词器ik 6
  • 如何不通过iconfont项目向已有字体图标中添加新的字体图标

    前言 今天接到一个需求 要往项目中添加一个字体图标 按照以往的惯例 就是在iconfont网站的我的项目添加需要的字体图标就行了 但这个需求是个临时需求 不想用这种方式 于是 就想直接在现有的字体图标中添加 解决方案 第一步 在iconfo
  • uGUI元素显示在角色的头顶上

    孙广东 2015 5 26 转载请注明出处 http blog csdn net u010019717 我们 游戏完全使用UGUI来工作 所以游戏中的很多元素都是UGUI的 Game Canvas画布设置为 World Space 主要也是
  • Unity3D游戏开发之设置动画(Animations)属性

    通过创建角色动画Avatar 在新的动画系统Mecanim中 Unity就设置了角色动画的骨架和蒙皮信息 从而就可以在Unity中实现角色动画了 切换到动画 Animations 选项卡 选中导入动画 Import Animation 的选
  • 人工神经网络的设计与实现(二) 感知机

    感知机 感知机 perceptron 是ANN的基本单元 至少我现在是这么觉得的 如果我学到后来发现不是 会来更正的 感知机 如下图 就是伸出几只小触手去感知这个世界 感知 感知 然后触手获取数据的加权和通过函数 f 得到的值即为该感知机的
  • 【热门框架】Mybatis-Plus标准CRUD操作

    MyBatis Plus提供了一系列标准的CRUD操作 包括insert delete update和select 下面是这些操作的指引 插入数据 1 使用实体类进行插入 User user new User user setName To
  • Idea license server地址

    以下都可以试试 http idea iteblog com key phphttp intellij mandroid cn http idea imsxm com https jetlicense nss im
  • 系统扩容心得

    author skatetime 2010 11 10 系统扩容心得 由于业务的快速发展 系统需要扩容 我们这次系统扩容动作比较小 相对不是很复杂 但过程是曲折的 结果是完美的 从开始准备到完成实施期间的每一个小细节都需要我们倍加注意 因为
  • vue-cli配置文件的查看和修改

    针对vue cli gt 3的版本 介绍两种修改方式 1 vue ui 在终端执行 vue ui 会打开页面 可以导入要管理的项目 会打开页面如下 2 在根目录下新建vue config js文件 添加要修改的配置
  • SSH整合中文

    在struts2里面配置一个常量
  • 第37章_瑞萨MCU零基础入门系列教程之DAC数模转换模块

    本教程基于韦东山百问网出的 DShanMCU RA6M5开发板 进行编写 需要的同学可以在这里获取 https item taobao com item htm id 728461040949 配套资料获取 https renesas do
  • http服务

  • ElasticSearch性能优化总结

    Elasticsearch是目前大数据领域最热门的技术栈之一 经过近8年的发展 已从0 0 X版升级至6 X版本 虽然增加了很多的特性和功能 但是在主体架构上 还是没有太多的变化 下面就把我对于ES使用实践的一些经验总结一下 供大家参考 也
  • VS2019未能返回新代码元素,可能是语法错误

    最近在写MFC的工程 在某次添加组件变量时 弹出提示框 未能返回新代码元素 可能是语法错误 检查了一遍没有语法错误 编译正常 网上所说的 将ncb文件删除就可以解决 找了半天没找到这个后缀名的文件 后来发现他们的帖子的发表时间都很老了 当初
  • 继电器驱动电路(各种单片机、CD4013触发器驱动电路图)

    继电器工作原理详解 附3种驱动电路图 继电器原理及分类 继电器知识点大全 看完一定有收获 线圈 继电器是一种电子控制器件 它具有控制系统 又称输入回路 和被控制系统 又称输出回路 通常应用于自动控制电路中 它实际上是用较小的电流去控制较大电
  • 基于ruoyi中shiro框架如何实现免密登录

    基于ruoyi中shiro框架如何实现免密登录 所做项目与第三方合作 系统间存在一些接口调用 需要做授权登录 我们的项目整体使用springboot框架结合部分ruoyi的后台管理框架 认证登陆采用了shiro框架 密码在数据库中经过盐值
  • vue-awesome-swiper 配置分页不显示

    使用 vue awesome swiper 的时候遇到一个问题 明明配置了分页 在页面上却没有展示出小圆点 数据量也是足够分页的 安装的 vue awesome swiper 是 4 1 1 版本的 这是 html 的代码片段
  • Android 蓝牙笔记-底层RFKILL驱动

    概念 RFKill 就是RF 射频 设备的开关 有类似一键关闭所有射频外设的功能 比如当我们在飞机上飞行开启飞行模式时候 所有这些RF相关的设备都需要关闭 linux的rfkill子系统提供了用于禁用系统中任何无线电发射器的通用接口 发射设