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. JSP的学习(4)——中文乱码的解决

    本篇将以JSP页面中可能存在的中文乱码问题进行分析和解决. 中文乱码的问题一直是国人在编程过程中的一大头疼问题,这点上在JSP.Servlet或Tomcat上随处可见.比如我们在写一个Servlet时 ...

  2. c#1所搭建的核心基础之类型系统的特征

    类型系统的特征简介 几乎每种编程语言都有某种形式的一个类型系统.类型系统大致被分为:强/弱,安全/不安全,静态/动态,显式/隐式等类型. c#在类型系统世界中的位置 c#1的类型系统是静态的.显式的和 ...

  3. cocos2d-x游戏开发系列教程-前言

    cocos2d-x游戏开发前景: 最近企业对于Cocos2D-X开发人才的用人需求很大,而且所提供的薪资相当可观. 为满足广大向往游戏开发行业同学的需求,特推出适合新手的Cocos2D-X手游开发教程 ...

  4. 【IACV】边缘检测技术传统的方法与理论

    1.边缘检测的目的 边缘检测是图像分析中使用到的最常见的操作之一,而且相比其他任何主题来说,文献中提到的与边缘增强(edge enhancement)[1]与边缘检测(edge detection)[ ...

  5. LIS问题分析

    题目来源,待字闺中,原创@陈利人 ,欢迎大家继续关注微信公众账号"待字闺中" 原题这个LIS问题,可不是Longest Increasing Subsequence,而是Large ...

  6. Java常用代码段 - 未完待续

    记录一些自己写项目常用的代码段. 格式化常用日期格式 Date date = new Date(System.currentTimeMillis()); DateFormat d3 = DateFor ...

  7. 使用Curl进行抓取远程内容时url中文编码问题

    PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只 ...

  8. 从源代码角度分析ViewStub 疑问与原理

    一.提出疑问     ViewStub比較简单.之前文章都提及到<Android 性能优化 三 布局优化ViewStub标签的使用>.可是在使用过程中有一个疑惑,究竟是ViewStub上设 ...

  9. 2cifang.com_2次方学习

    2cifang.com_2次方学习

  10. HNCU1100:彩票

    http://hncu.acmclub.com/index.php?app=problem_title&id=111&problem_id=1100 题目描述 有一种彩票的玩法是从1~ ...