概述
平台:
s5p4418, ubuntu-core(14.04), WIFI(AP6212)
一、问题描述:
WIFI(AP6212)作为ap模式时, 手机有时搜索不到WIFI热点。(测了五块板子,每块板子重启10次,其中三块大约有3-4次搜索不到板子的WIFI热点)
二、解决过程:
1. 更新原厂提供的驱动版本
1.1 根据原厂提供的< AP6212新旧版兼容说明.pdf> 修改,发现原厂提供的.bin文件和其他文件并不能更新驱动版本。
1.2 同原厂沟通,原厂重新提供了一份WIFI驱动的源代码bcmdhd.1.201.59.x.cn, 用于加入到内核kernel-3.4.39
1.3 把bcmdhd.1.201.59.x.cn加入到内核源码kernel-3.4.39的过程:
1.3.1把bcmdhd.1.201.59.x.cn目录下的文件,替换掉kernel-3.4.39/drivers/net/wireless/bcmdhd 目录下所有的文件。
1.3.2 跟根据原理图修改了dhd_gpio.c中的gpio_wl_reg_on和gpio_wl_host_wake的值,如下图所示:
1.3.3. 编译上述修改的linux内核源码,得到uImage,并制作成boot.img; 发现WIFI并没有起来。
部分错误log如下:
测量gpio_wl_reg_on和gpio_wl_host_wake两处引脚电压都为3.3v
经分析应该是MMC检测错误.
1.4 修改MMC驱动
1.4.1 修改kernel-3.4.39/drivers/net/wireless/bcmdhd/dhd_gpio.c 中的dhd_wlan_set_carddetect 函数
替换为:
1.4.2修改kernel-3.4.39/drivers/net/wireless/bcmdhd/dhd_gpio.c 中的force_presence_change 函数声明.
//extern void force_presence_change(struct platform_device *dev, int state);
修改为:
extern void force_presence_change(/*struct platform_device *dev, */int state);
1.4.3 编译内核得到uImage ,并制作boot.img
经测试,新版本驱动已更新成功,从1.201.59.06更新到1.201.59.11
1.5 新版本驱动已更新成功,测试之后发现仍然存在以下问题:
1.5.1 手机有时搜索不到WIFI热点,具体如下:
测了五块板子,每块板子重启10次,其中三块大约有3-4次搜索不到板子的WIFI热点
1.5.2 经测试分析,搜索不到WIFI热点分为以下两种情况:
a) u-boot启动成功,内核并没有加载, 此时发现电流偏低,测试当然搜索不到WIFI热点
b) 发现系统已启动,命令查看wlan0均已加载成功,有时候手动关闭wlan,再次打开之后,可以搜索得到
WIFI热点; 但有时候这种操作依然搜索不到
2. 解决系统没有启动的问题.
解决方案:电源供电,在WIFI电源部分增加一个电容蓄电
结果:
1) 发现内核没加载成功的情况基本解决
2) 发现系统已启动,命令查看wlan0均已加载成功, 测了五块板子,每块板子重启10次,其中三块大约有1-2次搜索不到板子的WIFI热点
3. 解决系统已启动,WIFI驱动加载成功,但是不稳定的问题
查看各种配置文件
结果,还是没有完全解决!!!
4.重新对WIFI原理图检查,发现 7脚bt-host-wake需要加一个上拉电阻
(原厂协助检查)
5. 发现CONFIG_MMC_DW_IDMAC没有去掉,把CONFIG_MMC_DW_IDMAC去掉
去掉重新编译内核uImage,制作成boot.img
6. 替换fw_bcm43438a1.bin为fw_bcm43438a1_apsta.bin
原厂建议:
是客戶的op_mode設置錯了 NG: [ 7.356000] Final fw_path=/etc/firmware/fw_bcm43438a1.bin [ 7.610000] Firmware up: op_mode=0x0005, MAC=8c:f7:10:0f:af:ce OK: [ 10.034000] Final fw_path=/etc/firmware/fw_bcm43438a1.bin [ 10.193000] Firmware up: op_mode=0x0002, MAC=8c:f7:10:0f:af:dc
建議客戶用AP mode時就用fw_bcm43438a1_apsta.bin,而不是用fw_bcm43438a1.bin
|
操作步骤:
修改linux kernel的.config配置文件
cd /home/kernel-3.4.39/
vim .config
然后重新编译内核生成uImage,制作成boot.img
自此,WIFI稳定性能已解决!
最后
以上就是欣喜百褶裙为你收集整理的S5p4418平台AP6212 WIFI稳定性的解决过程的全部内容,希望文章能够帮你解决S5p4418平台AP6212 WIFI稳定性的解决过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复