Part 1 
问:打开wifi,连接wifi热点,提示连接成功,但headbar上不显示wifi图标,back退出wifi设置,再进入,提示wifi已断开。
答:首先现象复现,当现象复现时进入adb shell,然后输入ifconfig 查看是否有wlan0 端口,然后在adb shell 中ping 192.168.1.101(嵌入式设备的IP),如果能Ping通则说明底层wifi设备与AP是连接通的。所以把问题转向上层。上层在frameworks/base/services/java/com/android/server/ConnectivityService.java文件中查看private void handleDisconnect(NetworkInfo info)函数的实现,问题可能出现在这里。
Part 2
问:出现新热点,需要重启WIFI才可以扫描到。
问:20s内无法连接到WIFI热点。
问:已连接的热点关闭,不会自动连接下一个热点。
答:这些问题都是供应商芯片的firmware没有配置好,所以直接找FAE换掉。
Part 3
问:调试中如果遇到dhd_sdio_probe fail 。
问:发现sdio register timeout 。
答:因为我们用到的WIFI数据通道是SDIO接口,所以要在log信息中查看sdcard是否有加载。没加载的话就看看WIFI芯片的上电(如WIFI_REG_ON这个PIN脚)。
Part 4
问:如果在wifi的设置里面选中wifi选项出现ERRO(或错误)的提示。
答:首先在adb shell中lsmod查看.ko文件是否已经加载。如没加载cat /proc/kmsg查看是否是版本匹配的问题。如遇版本匹配则在kernel/scripts/setlocalversion中将echo “+”中去掉。如果顺利加载了驱动,则要看看MAC地址是否有,并且是否合理。
Part 5
问:发现在WIFI设置选项中有已经选上了wifi并且勾应打上了,过一会出现wifi的勾自动消失。
答:这种情况在adb shell中用ifconfig查看Wlan的接口用的是否是wlan0,有可能是eth0。如果是eth0则在hardware/libhardware_legacy/wifi/wifi.c中的#define WIFI_DRIVER_MODULE_ARG  "firmware_path=/system/etc/firmware/wlan/sdio.bin nvram_path=/data/simcom/nvram.txt iface_name=wlan0" 中查看iface_name=wlan0是否已经加上。
Part 6
问:有的路由器不能扫描的到。
答:查看wlan的设置的channel是否在1-14这个频段,因为如果wlan设置成USA模式则channel的范围在1-11之间,channel 12,13,14就不会收索的到。所以要在nvram.txt中修改成ccode=ALL,并且在gqcom_cfg.ini中把APCntryCode=ALL。这样应该就可以扫描到所有的channel了。当然如果上层还是没有收索到的话,在Settings.java中也要做相应的修改。
常用的命令:wl channels_in_country
wl chanlist
wl channels

wl country

Part 7

问:【预置条件】:wifi 已连接 wifi sleep policy模式为When screen turns off
        【操作步骤】:wifi连接网络,静置屏幕熄灭 大约5分钟,再次点亮屏幕
        【测试结果】:wifi一直处在scanning状态,无法连接网络,关闭再打开恢复正常
        【预期结果】:点亮屏幕后,wifi自动连接成功
答:调试分析记录:
1.在frameworks/base/services/java/com/android/server/WifiService.java中修改LCD灭屏后关掉WIFI的时间长短,由以前的2分钟修改为现在的1秒钟。
结果是短时间休眠后唤醒可以顺利连上AP,但经过长时间休眠(如15分钟)后唤醒机器还是无法连接AP。
2.检查Kernel中POWER_ON使能脚,看是否有其它地方被占用过,结果是屏蔽所有其它用到过该脚的代码还是无用。
3.检查CP侧代码,将CP侧POWER_ON引脚由以前的某种特殊功能设置成普通的Output模式,然后AP就可以自由的控制其高低电平了。
修改后的结果还是以无效告终。
4.检查external/wpa_supplicant_6/wpa_supplicant/文件夹下面的代码,检查WEXT驱动代码。结果还是失败。
5.最后在机器休眠15分钟后,用底层命令行来scan、连接等动作的操作,结果根本无法扫描到AP。故把问题集中在驱动底层。经过修改dhd.ko、sdio.bin文件
现在此Bug终于得解。

6.也有问题不出现在驱动dhd.ko文件中,可能出现在mmc驱动中的sdio通道。在函数mmc_pm_notify中当出现PM_POST_SUSPEND或PM_POST_HIBERNATION的情况时就有可能移除掉了sdio通道,所以函数mmc_detect_change(host, 0)要加一个判断,当sdio作为wifi通道时就不能移除。移除后的后果就是此Bug。

Part 8

问:连接成功之后,WIFI显示的状态不是“已连接到*”而是“正在扫描”,此时WIFI网络一栏没有出现扫描中的图标。

答:此问题主要出现在Hal层的wifi.c文件中的函数int wifi_wait_for_event(char *buf, size_t buflen),这个函数主要向上层报数据或命令的操作,向上层报数据或命令的函数是wpa_ctrl_recv(monitor_conn, buf, &nread),这个函数把数据或命令保存在buf中。问题就出现在向上层报数据的buf中,我们必须把向上报数据或指令的buf由先前的state=1和state=2两种状态改为state=2一种状态,这样图标就会只显示“正在扫描”一种状态了。

BCM4330 WIFI 调试记录相关推荐

  1. openwrt wifi调试记录

    前言 目前wifi模块使用过pcie接口和sdio接口两款.pcie接口的wifi模块使用较广,内核一般都有现成的驱动支持,至于sdio接口的wifi驱动,可以找芯片厂商拿.本人从事系统及驱动开发,看 ...

  2. android 蓝牙 驱动,转个蓝牙修改帖--Android BCM4330 蓝牙BT驱动调试记录

    本帖最后由 旋律2014 于 2014-3-27 09:15 编辑 一.关于BT driver的移植: 1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_ ...

  3. 2020-02-24 RK3288 Android7.1 5.1 增加AP6256 WI-FI Bluetooth调试记录

    RK3288 Android7.1 5.1 增加AP6256 WI-FI Bluetooth调试记录 一.硬件连接图,AP6335.AP6255.AP6256 Pin对Pin,可以直接替换. 二.原本 ...

  4. AP6236 WiFi模块调试记录

    AP6236 WiFi模块调试记录 Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 AP6236 WiFi模块调试记录 内核驱动移植 1. 更 ...

  5. AML8726调试记录

    一:源代码下载: 1:Installing Repo # mkdir ~/bin # PATH=~/bin:$PATH # curl https://dl-ssl.google.com/dl/goog ...

  6. 华为adb wifi调试断线问题解决

    原文:华为adb wifi调试断线问题解决(hbuilderx wifi调试) 开启wifi调试 手机打开usb调试,通过usb连接电脑,手机选择传输文件模式 打开命令行输入:adb tcpip 55 ...

  7. ROS上同时预览depth,IR,RGB 调试记录

    ROS上同时预览depth,IR,RGB 调试记录 用rviz同时显示RGB,IR,DEPTH(验证设备:astraprosm,canglong2,deeyea) 1.编译libuvc库 cd lib ...

  8. ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值——bug调试记录

    ML之回归预测:利用十(xgboost,10-1)种机器学习算法对无人驾驶汽车系统参数(2017年的data,18+2)进行回归预测值VS真实值--bug调试记录 目录 输出结果 1.增加XGBR算法 ...

  9. mac android wifi调试

    mac android wifi调试 1,用USB连接你的手机: 2,打开命令行输入: adb tcpip 5555; 结果: MacBook-Pro:~ user$ adb tcpip 5555;r ...

最新文章

  1. iOS抓取日志方式(1)
  2. java dom4j 去除空行_如何从XML文件中删除多余的空行?
  3. 传真故障排除示例--编码不一致导致传真失败
  4. 新手制作bom表格教程_抖音短视频怎么制作?这里有全部最新教程+指导,新手0基础上手!...
  5. 微博短视频千万级高可用、高并发架构如何设计?
  6. TDSQL 安装部署(多图预警)
  7. 为什么说微服务一定要有 API 网关?
  8. break和continue的区别和执行过程
  9. 【Tomcat】Tomcat下设置项目为默认项目
  10. liunx安装Lamp
  11. (转贴)正则表达式学习心得体会(1)
  12. 用于无人驾驶技术的车道线_自动驾驶汽车可用于查找车道的4种技术
  13. python如何使用ppip安装xlwt_如何安装python xlwt
  14. 绕过tp路由器管理密码_TP-LINK 无线路由器设置详解
  15. Flink快速回忆之Operators(运算符)
  16. 报错“/sbin/ldconfig.real: /usr/lib/x86_64-linux-gnu/libopencv_video.so.3.2 is not a symbolic link“
  17. C++ 链表的基本操作
  18. centos代码切换图形_CentOS已死;微软将强行升级部分旧版本 Windows 10 用户;黑客远程打开莫斯科近3000个快递柜...
  19. Python基础笔记(1-1)
  20. Mysql常用命令行大全(三)

热门文章

  1. java关于23种设计模式之泡MM版(推荐)
  2. SDS(Simple Dynamic String)一个简易动态字符串库
  3. 定时每天凌晨一点在linux系统上执行一个autobuild.sh脚本如何实现?
  4. 大型项目如何进行项目管理?
  5. 浅析TD源链的未来发展趋势
  6. Android RxJava操作符的学习---组合合并操作符---合并数据源并展示
  7. linux默认时区pdt,Linux的时区设置
  8. 前世五百次的回眸,才赢得今世的擦肩而过
  9. html中标签必须嵌套于head标签中,网页设计与制作测试题
  10. 速卖通选品分享:宠物用品韩国市场洞察