本文基于android 7.0 海思 Hi3798MV200 平台

WiFi驱动加载流程:

一、.进入高级设置,无线设置界面(WifiSettings.java)打开WiFi开关(SwitchBar),触发WifiEnabler.java中的onSwitchChanged回调。通过WifiManager.setWifiEnabled(true)打开WiFi。

二、然后通过WiFi状态机WifiStateMachine中的初始化状态机(InitialState)回调来加载驱动

三、调用Native方法  WifiNative.laodDriver()启动加载驱动流程 。先查询WiFi设备ID,然后通过insmod 方法加载驱动.ko文件(如/system/lib/modules/rtl8188eu.ko)

hardware\libhardware_legacy\wifi\wifi.c

WIFI设备通常有三种类型:PCI、USB、SDIO, 查找WiFi设备ID时,会依次查找可能的设备型。

我这边使用的是USB类型的。

进入/sys/bus/usb/devices 目录,可以看到有多个子目录,每个子目录下都保存着一个USB
设备的信息,其中有一个uevent 文件,里面保存着设备类型、设备ID 等信息。依次查
看每个子目录下的uevent 文件中的PRODUCT=xx/xx/xx,看是否有采用的WiFi 的设备
ID,如果找到,那说明已经识别到WiFi 设备,如果没有则WiFi 未插入、未上电或者已经损坏。

至此WiFi驱动加载流程已走完,后面会通过状态机回调进行后续的扫描、连接流程。

android wifi驱动加载流程相关推荐

  1. android wifi驱动加载失败怎么办,wifi驱动无法被安卓系统正常调用

    1.问题现象: 打开wifi的图标,wifi加载后又自动卸载. 2.问题分析 驱动能正常加载,但是又自动卸载,说明驱动没有完全满足安卓的要求,查看wifi加载的源码"hardware/lib ...

  2. android wifi驱动加载失败怎么办,请教WIFI连接失败问题,如何解决

    请各位大师解惑,以下是命令日志: shell@firefly:/ # echo 1 >/sys/class/rkwifi/driver shell@firefly:/ # ifconfig wl ...

  3. linux驱动加载流程分析

    linux驱动加载流程分析 内核是如何加载驱动的,有些是编译到内核里面,有些事编译成ko,让系统自动加载.总的说来,在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载. 静态加载就是把驱动 ...

  4. Android系统字体加载流程

    一.背景 视觉同学提了一个需求,要求手机中显示的字体可以支持medium字体,经过分析,android原生的字体库中并没有中文的medium字体,如果使用bold,显示又太粗,为满足需求,需要分析an ...

  5. Linux上面开发android手机驱动加载.

    之前做了一个山寨机器的定制软件,用ubuntu开发,但是驱动怎么也加载不上去,愁死人了,在网上找了各种方法都是不好用,经过两三天的尝试最后把网上的两中方法进行了融合,最终成功了,所以写下来供大家参考: ...

  6. 【SDX62】WCN6856 wifi驱动加载出现cnss: Invalid SBL log data

    问题log modprobe wlan加载驱动出现 [ 3261.283196] cnss: Dump MHI/PBL/SBL debug data every 7s during MHI power ...

  7. mtk lcm驱动加载流程

    平台:mt6582 + Android 4.4 前面就说过,在mtk代码中支持屏是可兼容的,通过调用驱动中的compare_id函数来匹配驱动和屏,这里来细看一下代码. 1. LK部分(mediate ...

  8. linux Pci字符驱动基本加载流程

    今天有朋友问我linux系统Pci字符驱动加载流程,简单整理了一下,顺便做个记录. 首先说下需要包含的头文件: 一个完整的字符驱动一般包含下面这些头文件: #include <linux/typ ...

  9. Android 开机自动加载新wifi模块驱动

    在android ROM 开发中经常会遇到产品更换wifi模块的情况,一般常见的wifi驱动android内核中自带都有,无需过多调试,要是碰上内核中没有的就需要根据厂商提供的驱动进行移植. wifi ...

最新文章

  1. Android Crash战斗日记(一、原理篇)
  2. EOS开发步骤(2) 钱包操作
  3. mfc 找到字符串中字符_利用滑动窗口解LeetCode438题:找到字符串中所有字母异位词...
  4. python获取div标签的id_Python 获取div标签中的文字实例
  5. C Linux 文件加锁 lock fcntl
  6. 关于类类型的隐式类型转换
  7. 刘奇:当今一切都要更实时、更弹性、更简单,TiDB 就是这样的基础设施 | TiDB DevCon 2020
  8. usb驱动修复_win10 1903 5月29号的质量更新修复了哪些问题?
  9. 高中低压电网光伏并网二次设计——分布式光伏电站并网市电通讯组网
  10. Vmware 虚拟机安装教程
  11. 小学计算机英语,小学英语流利读电脑版
  12. BERT模型—2.BERT模型预训练与微调
  13. 关键词拍卖竞价机制,排序与计费规则
  14. 6s英语语法笔记(图片炸了)
  15. BUUCTF Misc 佛系青年
  16. linux管道通信 半双工通信
  17. 一个运维工程师必须要知道的(工作职责与应用场景)干货整理
  18. SCSS常用语法总结
  19. libevent2从入门到原理解读(1):安装及使用
  20. Java Script的基础

热门文章

  1. mumu的adb_如何使用网易mumu模拟器调试安卓程序?
  2. Win11图标变成白色文件如何解决?
  3. ORA-01400: cannot insert NULL into | 通过SQL链接服务器 往Oracle库的表中 插入默认值问题
  4. 【iOS】—— 懒加载
  5. Android性能优化系列之布局优化,Android程序员校招蚂蚁金服
  6. linux的iso镜像文件,linux系统安装iso文件方法
  7. 机器人出魔切还是三相_UZI卡莎五分钟魔切,绝境四杀带领队伍走向胜利?观众:永远滴神...
  8. 计算机组成原理静态存储器实验报告,静态随机存储器实验报告计算机组成原理...
  9. HttpClient 爬取百度图片
  10. 免费Bootstrap后台管理模板