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的更多相关文章

  1. 微信小程序——智能小秘“遥知之”源码分享(语义理解基于olami)

    微信小程序智能生活小秘书开发详解 >>>>>>>>>>>>>>>>>>>>> ...

  2. 支持语音识别、自然语言理解的微信小程序(“遥知之”智能小秘)完整源码分享

    记录自己搭建https的silk录音文件语音识别服务的调用过程,所有代码可在文中找链接打包下载 >>>>>>>>>>>>> ...

  3. 百度智能小程序弹窗组件wcPop|智能小程序自定义model弹窗模板

    百度智能小程序自定义弹窗组件wcPop|百度小程序model对话框|智能小程序弹窗界面模板 最近百度也推出了自己的智能小程序,如是就赶紧去试了下,官方提供的api还不是狠完整.而且官方提供的弹窗组件也 ...

  4. Linux内核日志开关

    Linux内核日志开关 1.让pr_debug能输出 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -59,7 +59,7 ...

  5. 如何快速将百度大脑AI技术内置智能小程序中

    实现效果: 该AI智能小程序目前集成了百度AI开放平台数十个AI服务产品功能,包括人脸识别.文字识别.表格识别.红酒识别.货币识别.地标识别.手势识别.商标识别.果蔬识别.菜品识别等图片识别功能,以及 ...

  6. Linux通用小技能

    Linux通用小技能 前言 无论你用ubuntu还是centos,通通没问题,运维这东西,踩坑写文档就是了. 小技能 新磁盘挂载 不管是阿里云还是腾讯云,还是自己的机器,请记住这条命令. mkfs.e ...

  7. Linux[Manjaro] 小新15笔记本AMD ryzen锐龙4800U,在安装系统后出现的随即死机冻屏问题

    Linux[Manjaro] 小新15AMD ryzen锐龙4800U,在安装系统后出现的随即死机冻屏问题解决办法 年初尝试将manjaro安装在我的笔记本上就存在这个问题,也一度将我劝退.系统安装在 ...

  8. linux相关小工具的使用(一)————代码相关工具

    在linux环境下,对于程序员来说,知道使用一些好用的小工具,对源代码的阅读.编译和调试都有着事半功倍的效果,这里我也是边学边写的原则,把自己知道的一丁点小知识分享给大家. 一.  源代码的阅读 首先 ...

  9. 一个cheat命令 == Linux命令小抄大全

    本文介绍一个Linux超级命令,有了这个命令,你就可以开开心心的使用linux上的各种命令了.当你要执行一个linux命令,在这个命令参数选项众多时,你一般怎么做?对,我们大多数人都会去求助man命令 ...

随机推荐

  1. NM_CUSTOMDRAW 消息

    When the control first starts to paint itself, in response to a WM_PAINT, you receive a NM_CUSTOMDRA ...

  2. XMPPclient库Smack 4.0.6一个版本的开发

    XMPPclient库Smack 4.0.6版开发之中的一个 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Smack库概述 Smack是一个开源. ...

  3. 无边无状态栏窗口(使用GetWindowLongPtr设置GWL_EXSTYLE)

    通过SetWindowLongPtr来设置窗口样式 var NewStyle: Integer; begin Application.Initialize; Application.MainFormO ...

  4. 14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory

    14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory 创建一个File-Per-Table Tablespace ...

  5. Java原型模式之基础

    一.是什么? 定义:用原型实例指定创建对象的种类,而且通过拷贝这些原型创建新的对象.(官方定义) 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype. Prototype类须要 ...

  6. 关于PHP的内置服务器的使用

    今天刚开始正式学习PHP(之前有一点了解),推荐学习的网站是w3school.一开始不知道tomcat服务器不支持PHP脚本,直接把.php文件放到tomcat里面去运行,结果嵌入的php代码段没有什 ...

  7. 为Delphi程序增加UAC功能(每个步骤都很详细)

    相关资料:http://bbs.csdn.net/topics/320071356# 操作方法: 在Source\VCL目录下应该有这样两个文件sample.manifest和WindowsXP.rc ...

  8. R语言数据框行转列实例

    目的:须要把数据框的行列进行转置 方法: # 原始数据框 > hrl_jd_mon     年份 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 1 2010年 51 ...

  9. Android资源文件及文件夹介绍

    在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的 1:assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片, ...

  10. Python的经典问题——中文乱码

    关键字:Python UTF-8 GBK 中文 乱码 估计入门时都会遇到的.我是在windows下用的Python25自带的IDLE编辑运行的,发现运行脚本得出的结果有一些中文显示是乱码,但有一些是正 ...