
子类__WiFi
文章平均质量分 67
KrisFei
工作记录.
展开
-
[RK3288][Android6.0] 调试笔记 --- AP6356S的5G传输速率偏低
Platform: RK3288OS: Android 6.0Kernel: 3.10.92现象:rk3288上使用新的wifi芯片AP6356S做2.4G/5G的传输速率测试,结果与rk3399上AP6356S相差一倍。原因:rk3288默认参考设计使用的sdio 2.0, 也就是clock最大是50MHz,而rk3399上使用的是sdio 3.0,也就最大clock是150MH...原创 2019-04-28 17:08:20 · 3368 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi在Settings中的热点开启流程小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92在Settings中选择要打开wifi热点功能:流程如下:onPreferenceTreeClick -> TetherSettings.java startProvisioningIfNecessary -> sta原创 2017-04-25 15:34:13 · 3745 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- WiFi adb调试(没有USB口情况)
Platform: RockchipOS: Android 6.0Kernel: 3.10.92正常有USB口调试过程如下:1. 使用USB数据线连接设备。2. 在命令行输入adb tcpip 5555 (5555为端口号,可以自由指定)。3. 断开 USB数据,此时可以连接你需要连接的|USB设备。4. 再计算机命令行输入 adb connect :5555原创 2017-04-26 14:54:37 · 4396 阅读 · 6 评论 -
[RK3288][Android6.0] WiFi在Setting中的开启过程小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92当Setting选项中打开Wifi时, 调用流程如下,入口主要是setWifiEnabled()函数.onSwitchChanged -> WifiEnabler.java settings apk中. mWifiManager.setWifiEnabled原创 2017-05-02 17:05:09 · 2555 阅读 · 0 评论 -
[RK3288][Android6.0] Wifi相关文件及类整理
Platform: RockchipOS: Android 6.0Kernel: 3.10.92由上往下相关路径:APP:packages/apps/Settings/src/com/android/settings/wifi //Settings中看到的wifiFramework:frameworks/base/wifi //wifimanager原创 2017-05-04 15:37:13 · 1050 阅读 · 0 评论 -
[RK3288][Android6.0] Wifi Service初始化流程小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92startOtherServices -> SystemServer.java mSystemServiceManager.startService(WIFI_SERVICE_CLASS); -> WIFI_SERVICE_CLASS为 "com.android原创 2017-05-04 17:08:54 · 1345 阅读 · 2 评论 -
[RK3288][Android6.0] WiFi的dts配置说明(AP6335)
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92原理图配置文件参考使用的是AP6335, 硬件上用的是SDIO0.原理图:配置文件:电源部分:wireless-wlan { compatible = "wlan-platdata"; /* wifi_chip_type - wifi chip define原创 2017-06-21 13:49:20 · 9965 阅读 · 2 评论 -
[RK3288][Android6.0] WiFi的HAL层加载问题
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92背景:几年前做高通平台到现在,我一直认为hardware下面目录都是只跟用哪个vendor相关,比如现在用的是rk,那么就是rockchip目录有用,现在才发现broadcom也会在WiFi中被用到,还好偷懒没把此git从仓库中删除…过程:WiFi开启的时候会调用如下流程来加载HAL WifiN原创 2017-06-22 17:11:39 · 5628 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi的wifi_bt_common.mk文件说明
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92发现这个文件里面的定义对代码流程研究有影响,所以做一个说明。wifi_bt_common.mk:ifneq ($(strip $(TARGET_BOARD_PLATFORM)), sofia3gr)BOARD_CONNECTIVITY_VENDOR := BroadcomBOARD_CONNE原创 2017-06-23 14:29:59 · 2737 阅读 · 1 评论 -
[RK3288][Android6.0] WiFi之Framework的socket(客户端)
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92连接: WPAS运行起来之后,Framework就可以通过Socket连接上去了。 hardware/libhardware_legacy/wifi/wifi.c/* Establishes the control and monitor socket connections on原创 2017-06-29 10:18:31 · 1057 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之wpa_supplicant的socket(服务端)
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92研究了Framework客户端如何打开连接上wpa_supplicant(WPAS)后,再来看看WPAS如何打开了socket.external/wpa_supplicant_8/wpa_supplicant/main.cint main(int argc, char *argv原创 2017-06-29 15:01:19 · 1111 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之wpa_supplicant与内核通信的socket
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92入口rtnetlinks socketgeneric netlink socketioctl socket小结参考前面了解了Framework和WPAS的socket交互,这里再看看WPAS和kernel的socket交互。入口:select_driver -> wpa_drivers[原创 2017-06-30 14:34:59 · 2254 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之wpa_supplicant初始化过程
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92主要结构体流程说明具体流程主要结构体:wpa_interface: 每个网络接口的表示,可以支持多个 wpa_supplicant: 每个网络接口相对一个 wpa_params: 记录与网络接口无关的一些参数 wpa_global: 包含所有信息流程说明:2.1 main() a.原创 2017-07-03 10:33:07 · 1074 阅读 · 0 评论 -
[RK3288][Android6.0] 网络服务Netd初始化流程小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92Netd: Network Daemon. 负责网络配置,操作,管理,查询等功能.封装底层各种类型网络,如PPP,SOFTAP等,给framework提供统一接口.说白了就是接收framework命令往下发,接收kernel命令往上发.路径:s原创 2017-04-25 09:29:32 · 2771 阅读 · 0 评论 -
[RK3288][Android6.0] WIFI接入过程的加密和认证方式小结
无线接入过程:扫描 -> 认证 -> 关联扫描:分主动和被动扫描.主动: STA主动发请求帧(Probe Request)给AP, 然后收取探查响应帧(Probe Response)获取无线网络信息.被动: STA监听周围AP发来的信标帧(Beacon)帧获取无线网络信息.认证:分开放认证和共享密钥认证.开放认证: 即部认证.共享密钥认证: AP随机长生原创 2017-04-24 13:44:26 · 1755 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之wpa_supplicant服务启动
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92框架: Android使用wpa_supplicant(开源软件项目,简称WPAS)服务对无线网络进行控制和管理,框架如下(摘自网络) Client调用方式指的是通过wpa_cli客户端的方式调用。也就是说wpa_cli和wpa_supplicant是C/S架构的关系,而 Fra原创 2017-06-29 10:13:35 · 2483 阅读 · 12 评论 -
[RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加
Platform: RK3288OS: Android 6.0Kernel: 3.10.92背景:RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi chip type后,会出现如下error:[ 9.169008] dhdsdio_download_nvram: Open nvram file failed /system/etc/firmw...原创 2019-02-18 17:12:11 · 5767 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi MAC地址获取流程小结
Platform: RK3288OS: Android 6.0Kernel: 3.10.92用户空间如何查看MAC地址?/sys/class/net/wlan0/addressnet目录生成:netdev_kobject_init -> net-sysfs.c class_register(&net_class);net_class:static struct...原创 2018-11-22 19:52:01 · 3063 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- WiFi扫描周期规则
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83亮屏情况: 1. 在WiFi Settings界面,无论WiFi是否有连接,固定扫描时间间隔为10s。 2. 在非WiFi Settings界面,无论WiFi是否有连接,以2的倍数慢慢拉大扫描周期,最小为20s,最大为160s灭屏情况: 1. 当开启了PNO并且WiFi已经连接时,...原创 2018-08-09 17:50:30 · 3310 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- WiFi吞吐量测试
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83说明:WiFi芯片使用的是AP6356S测试是在普通环境,并没有在屏蔽房路由器WiFi最大速率1200Mbps2.4G WiFi LinkSpeed是130Mbps左右5G WiFi LinkSpeed是600Mbps左右PC测试环境是Windows10LinkSpe...原创 2018-07-19 10:49:34 · 5333 阅读 · 12 评论 -
[RK3399][Android7.1] 调试笔记 --- 2.4G WiFi吞吐量测试速率很低
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83说明:WiFi芯片使用的是AP6356S测试是在普通环境,并没有在屏蔽房中现象:测试2.4G的传输速率的时候,发现很低,如下图 上传速率: 下载速率: 原因:SDK中对应的WiFi driver有问题,需要更新。 版本可从Kernel l...原创 2018-07-19 09:14:37 · 3228 阅读 · 10 评论 -
[RK3399][Android7.1] SDIO WiFi调试步骤小结
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83用的是SDIO接口的AP6356S。 此文主要记录下调试的过程和方法。原因:硬件电源上有个0欧姆电阻没焊。调试:检查DTS配置有没有出错:sdio_pwrseq: sdio-pwrseq { compatible = "mmc-pwrseq-simple...原创 2018-07-05 11:23:56 · 9689 阅读 · 18 评论 -
[RK3399][Android7.1] WiFi中的SDIO和电源框架
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83框架:引用网友一张框图,画得很不错 从硬件角度来看: CPU -> SDIO -> AP6356S从软件角度来看分: 电源/IO管理 SDIO通道(Host和Client) WiFi驱动电源/GPIO管理模块:主要完成对电源、GPIO的初始化...原创 2018-07-05 10:45:53 · 4649 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- WiFi一直处于“正在连接”状态
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92现象:Wifi提示正在连接,但是一直连接不上。换了其他的一个AP,也提示连接不上。分析:根据WIFI连接过程可知,显示正在连接时dhcp client会从路由器那边获取ip address.正常Log: 06-13 14:56:23.697 583 13...原创 2018-06-13 17:45:08 · 2399 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi的驱动初始化过程小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92用的是AP6335, SDIO接口。电源相关部分:rfkill_wlan_init -> rfkill-waln.c platform_driver_register -> //platform_driver是rfkill_wlan_driver, name是wlan-原创 2017-06-22 10:28:42 · 6986 阅读 · 0 评论 -
[RK3288][Android6.0] USB WiFi驱动流程小结
Platform: RockchipOS: Android 6.0Kernel: 3.10.92使用的是RTL8188EU, usb接口。这是网友寄给我的模块,正好没调试过rtl8188eu,又是usb接口,遗憾的是只改了dts配置就能工作了。rtl8188eu驱动路径:kernel/drivers/net/wireless/rockchip_wlan/原创 2017-08-31 17:23:46 · 6033 阅读 · 3 评论 -
[RK3288][Android6.0] 无线网络术语(SoftMAC,FullMAC,cfg80211,mac80211)
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92MLMEMAC管理层- cfg80211 内核空间用于无线网络配置管理,而nl80211对应的是用户空间的实现。和FullMAC驱动以及mac80211-based的驱动配合工作FullMAC MLME在通过硬件实现,用了FullMAC就不能通过mac80211写了nl80211原创 2017-08-07 16:34:53 · 2890 阅读 · 1 评论 -
[RK3288][Android6.0] WiFi的配置文件wpa_supplicant.conf
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92期初以为对应的是external/wpa_supplicant_8/wpa_supplicant/wpa_supplicant.conf,对比生成的文件发现是wpa_supplicant_template.conf,来看/data/misc/wifi/下的wpa_supplicant.conf是如原创 2017-06-23 17:46:35 · 5076 阅读 · 1 评论 -
[RK3288][Android6.0] WiFi之通过wpa_cli分析WPAS的连接过程
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92命令操作事件接收函数ADD_NETWORKSET_NETWORKENABLE_NETWORK参考通过客户端wpa_cli来看连接过程,framework也是大同小异,过程大概是 ADD_NETWORK -> SET_NETWORK -> ENABLE_NETWORK命令操作:root原创 2017-07-03 15:33:23 · 1850 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之wpa_supplicant扫描过程
Platform: RockchipOS: Android 6.0Kernel: 3.10.92wpa_supplicant_req_scan -> wpa_supplicant_scan -> wpa_supplicant_enabled_networks //检查是否有已经使能的无线网络 wpa_supplicant_build_filt原创 2017-07-03 17:55:57 · 2263 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之与ConnectivityService的交互
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92在Wifi的整个过程中,有个函数一直会被调用到: setNetworkDetailedState(),它是用来和系统的ConnectivityService关联的,作用是为了告知系统当前wifi的状态,因为系统里存在多个网络,如有线网,数据上网等,像平常我们使用PC的时候,当有线网和wifi同时连原创 2017-07-20 14:32:13 · 1361 阅读 · 2 评论 -
[RK3288][Android6.0] WiFi之NetworkFactory形成的评分机制
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92NetworkFactory作为网络评分机制中一个重要角色而存在,每个模块实现需要继承NetworkFactory当Wifi状态机初始化处于默认状态时,会注册WifiNetworkFactory processMessage -> WifiStateMachine.java//DefaultS原创 2017-07-21 18:05:29 · 2358 阅读 · 2 评论 -
[RK3288][Android6.0] WiFi之NetworkAgent对评分的更新
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92上一篇看了NetworkFactory的使用过程,它是在系统初始化时就被创建,接下来在接入网络时NetworkAgent就会被创建,正是它通过NetworkFactory搭建的环境来触发网络连接评分机制NetworkAgent和NetworkFactory类似,也是通过子类继承的方式去实现,这里对原创 2017-07-24 14:19:58 · 1930 阅读 · 2 评论 -
[RK3288][Android6.0] WiFi之NetworkMonitor对评分机制的影响
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92由来: 在上一篇文章有提到getCurrentScore()会对NetworkAgent传过来的值根据当前的networkCapabilities决定是否扣分,而NetworkMonitor 正是基于管理网络连接状态而诞生的,它用来检测的网络有效性,当有效是,会将networkCapabili原创 2017-07-24 17:10:29 · 2611 阅读 · 2 评论 -
[RK3288][Android6.0] 主动从WLAN网络切换到移动数据网络
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92开发者选项有个栏位是“Aggressive WiFi to Cellular handover”, 这个选项的功能是“当WiFi信号较弱时,将主动从WiFi切换到移动数据网络”,根据之前对网络评分机制的了解,当WiFi分数较低的时候,那么就会被“踢出局”由移动数据网络接替工作,那么此选项是否原创 2017-07-25 15:19:42 · 5491 阅读 · 3 评论 -
[RK3288][Android6.0] 一律运行WLAN漫游扫描选项
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92开发者选项中有一栏是“”Always allow Wi‑Fi Roam Scans“ 解释是运行WLAN漫游扫描,看它是如何影响扫描执行流程对应是string name在 packages/apps/Settings/res/values/strings.xml:3645: <strin原创 2017-07-25 16:39:35 · 4104 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi之网络时间定期同步更新
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92前面有分析了网络时间同步过程,每次开机的时候会同步时间,现在有考虑到一个问题,当一直开机的时候,由于RTC的硬件可能偏移从而导致时间错误的可能,那么NetworkTimeUpdateService这一块有没有定期更新呢,事实上是有的,利用的是alarm和广播机制NetworkTimeUpdateS原创 2017-07-26 09:10:41 · 3026 阅读 · 0 评论 -
[RK3288][Android6.0] 调试笔记 --- Netd测试工具ndc
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92目的: Netd中的命令在命令行可以通过ndc工具来执行.功能: 1.监控Netd 2.发送命令给Netd 源代码路径: system/netd/server/ndc.c原理: ndc的原理其实就是通过socket连接上netd进行交互, 这部分可以从源代码体现:ndc.cint mai原创 2017-08-04 16:10:57 · 4204 阅读 · 0 评论 -
[RK3288][Android6.0] WiFi的Firmware和Nvram文件
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Wifi: AP6335概念:Firmware:WiFi芯片内部有一个小系统,用来运行802.11协议,此部分代码就叫Firmware。有些芯片(例如 broadcom)的Firmware是以文件的形式存放的,有些芯片(例如 realteck)的Firmware是做到驱动代码中的。Nvr原创 2017-08-07 09:44:39 · 6078 阅读 · 2 评论 -
[RK3288][Android6.0] WiFi之cfg80211知识点小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92概念: cfg80211是Linux 802.11用于管理配置的一套API,它是用户和驱动之间的桥梁,替代了WEXT,提供和802.11相关的功能。用户空间通过nl80211用来配置80211设备,即cfg80122与用户空间的交互窗口。 WEXT代码虽然还在,但新功能已经不做添加,只做bug原创 2017-08-08 09:36:11 · 3915 阅读 · 1 评论