Linux智能小开关rfkill
Linux智能小开关rfkill
Rfkill,当中rf是Radio frequency(射频)。主要作用是一个专门管理开关的子系统,举例说明Android手机的通知栏能够方便地开关Airplane/BT/WiFi/Data/GPS。使用起来着实非常方便。
可是这是Android系统上层统一实现的。相应Linux内核曾经是没有统一的实现,随着这样的情况的增多也有专门的子系统来集中实现这个功能。这正是rfkill的工作。
上述的几个控制样例中。也许它们每一个功能被发明时都是一场革命。原理甚或配置都可能相当复杂。可是对终于的用户来说,使用最多的也就是「开关」。
使用范例,监听无线网卡硬件变化:
$ rfkill
Usage: rfkill [options] command
Options:
--version show version (0.4-1ubuntu3 (Ubuntu))
Commands:
help
event
list [IDENTIFIER]
block IDENTIFIER
unblock IDENTIFIER
where IDENTIFIER is the index no. of an rfkill switch or one of:
<idx> all wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm
$ rfkill event
1412007426.882932: idx 0 type 1 op 0 soft 0 hard 0
1412007465.911313: idx 0 type 1 op 2 soft 0 hard 1
1412007605.911553: idx 0 type 1 op 2 soft 0 hard 0
1412007705.911463: idx 0 type 1 op 2 soft 0 hard 1
1412007715.911449: idx 0 type 1 op 2 soft 0 hard 0
$
驱动中实现了复杂的特性驱动后。最好完好一个rfkill驱动就再好只是了。Rfkill从原理只是是一个新的sys文件系统中的class。
位于/sys/class/rfkill/。由于它小,所以所说的东西也不是特别多,可是由于它引起了一段经历让人揪心。重点写下来。
写在后面:
研究这个的源由是在移植一个BT驱动的时候,出现了一个怪异的现象。
因为不过系统版本号的升级(从Android4.2升级到Android4.4)所以能够确定硬件是完善的。
对应的驱动先配置后好,烧写系统后BT測试正常。出于「不糊弄」的心态,我决定反測试一下,在内核中将BT相关选项去掉后,測试结果BT确实是不能使用了。再将驱动配置加入上却意外发现仍然不能正常开启。
然后立马回退版本号。測试之前能正常的内核。结果还是成功打开设备。我就開始乱想了。BT IC被我使用软件配置坏了?出现这样的诡异的事件时,答案一般都在厕所或者去厕所的路上,我得去那里找找。顺便洗把脸。找到的概率会更高。
厕所还是给了我一些指点。先确认BT的硬件IC究竟有没有问题,将系统完整地烧回Android4.2系统。測试结果是正常的。我放心一些了,然后使用第二台进行诡异事件的又一次測试。把之前的系统镜像依次烧入,现象和第一台机器是一样的。到此刻就该是逗灵巧的时刻了:一旦执行了不带BT驱动的的镜像,那么再烧写带BT驱动的也不能正常打开驱动了——BT芯片没有复位!
!
!这个是我的推測,立马全然断电再上电,原来包括BT驱动的不能正常打开BT的系统镜像能够正常打开了。
以之前的验证结果为起点进行思考,我又一次烧写系统镜像都是直接按「重新启动键」(硬件上叫复位键)进行系统的重新启动,如今发现它会引起一个问题。BT为什么没有在按下复位键的时候进行复位呢?这个相同仅仅是如果。万用表侍奉。先无论电路怎么连接。直接測试BT的复位管脚,在按下复位键时。电压并没有由高电平变为低电平。这一点得到证实后。查看原理图得知原来BT的复位管脚并非和总复位键相连。而是连接到了CPU的一个GPIO上。再然后依据这个GPIO的名字查出在Android4.2的内核驱动中是要注冊成rfkill中BT的reset管脚的。
照做后一切问题得以解决。
我曾经的印象中一个电路板上的全部的IC的reset管脚都是统一连接到用户的复位开关上呢!这次认识了一直以来都仅是眼熟的rfkill。原来BT的IC一直都没有断电和RESET导致没有办法正常开放。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Linux智能小开关rfkill的更多相关文章
- 微信小程序——智能小秘“遥知之”源码分享(语义理解基于olami)
微信小程序智能生活小秘书开发详解 >>>>>>>>>>>>>>>>>>>>> ...
- 支持语音识别、自然语言理解的微信小程序(“遥知之”智能小秘)完整源码分享
记录自己搭建https的silk录音文件语音识别服务的调用过程,所有代码可在文中找链接打包下载 >>>>>>>>>>>>> ...
- 百度智能小程序弹窗组件wcPop|智能小程序自定义model弹窗模板
百度智能小程序自定义弹窗组件wcPop|百度小程序model对话框|智能小程序弹窗界面模板 最近百度也推出了自己的智能小程序,如是就赶紧去试了下,官方提供的api还不是狠完整.而且官方提供的弹窗组件也 ...
- Linux内核日志开关
Linux内核日志开关 1.让pr_debug能输出 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -59,7 +59,7 ...
- 如何快速将百度大脑AI技术内置智能小程序中
实现效果: 该AI智能小程序目前集成了百度AI开放平台数十个AI服务产品功能,包括人脸识别.文字识别.表格识别.红酒识别.货币识别.地标识别.手势识别.商标识别.果蔬识别.菜品识别等图片识别功能,以及 ...
- Linux通用小技能
Linux通用小技能 前言 无论你用ubuntu还是centos,通通没问题,运维这东西,踩坑写文档就是了. 小技能 新磁盘挂载 不管是阿里云还是腾讯云,还是自己的机器,请记住这条命令. mkfs.e ...
- Linux[Manjaro] 小新15笔记本AMD ryzen锐龙4800U,在安装系统后出现的随即死机冻屏问题
Linux[Manjaro] 小新15AMD ryzen锐龙4800U,在安装系统后出现的随即死机冻屏问题解决办法 年初尝试将manjaro安装在我的笔记本上就存在这个问题,也一度将我劝退.系统安装在 ...
- linux相关小工具的使用(一)————代码相关工具
在linux环境下,对于程序员来说,知道使用一些好用的小工具,对源代码的阅读.编译和调试都有着事半功倍的效果,这里我也是边学边写的原则,把自己知道的一丁点小知识分享给大家. 一. 源代码的阅读 首先 ...
- 一个cheat命令 == Linux命令小抄大全
本文介绍一个Linux超级命令,有了这个命令,你就可以开开心心的使用linux上的各种命令了.当你要执行一个linux命令,在这个命令参数选项众多时,你一般怎么做?对,我们大多数人都会去求助man命令 ...
随机推荐
- ABAP常用字符串处理
1.SEARCH搜索指定字符串 REPORT Z_CHAR. ). MOVE 'Welcom to sap world!' to str. SEARCH str for 'sap'. 如果查找成功sy ...
- delphi 利用HTTP的POST方法做个在线翻译的小工具 good
最近做了一个英汉小翻译的东东,用的是VC,ADO + Access访问数据库,单词数据库是从金山打字通2002弄来的.后来想了想,想再加个在线翻译的功能,记得经常使用GOOGLE翻译网站的在线翻译,也 ...
- 部署Spring Boot应用
在开发Spring Boot应用的过程中,Spring Boot直接执行public static void main()函数并启动一个内嵌的应用服务器(取决于类路径上的以来是Tomcat还是jett ...
- catalan 数——卡特兰数(转)
Catalan数——卡特兰数 今天阿里淘宝笔试中碰到两道组合数学题,感觉非常亲切,但是笔试中失踪推导不出来后来查了下,原来是Catalan数.悲剧啊,现在整理一下 一.Catalan数的定义令h(1) ...
- Linux教程:如何在Linux下进行C++开发?
Linux是一类Unix计算机操作系统的统称,Linux操作系统的内核的名字也是“Linux”, 在Linux下进行C++开发,需要注意许多问题,比如:减少不必要的编辑动作,减少编辑的时间. Wind ...
- uva 11212
非原创!!! 原作者地址:http://www.hardbird.net/?p=238
- J2EE SSH学习(二)安装Eclipse插件和第一个Eclipse项目
(一)安装Eclipse插件 Eclipse有很多功能很强大的插件,我现在作为一个菜鸟只知道插件的功能通常都很牛叉实用或者很有趣,那么该怎么安装Eclipse插件呢? 我使用的是Eclipse 4.3 ...
- 大话spring.net之IOC
在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC). 控制反转(Inversion of Control,英文缩写为IoC).也 ...
- 配置虚拟主机并更改Apache默认解析路径
配置虚拟主机,非常easy 改动以下文件: 加入以下几句话 <VirtualHost *:80> ##ServerAdmin webmaster@dummy-host2.example.c ...
- Java深入解析读书笔记(一)
1. goto,const为java的两个保留关键字,无任何应用语法.因此从不使用. goto 使用循环标签:if,break out,here实现goto的功能. 2. 标识符:可由字母数字下划 ...