平台:

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稳定性的解决过程相关推荐

  1. 设置计算机在睡眠状态下能共享,使用wifi共享精灵的过程中电脑会自动休眠锁屏的解决方法...

    我在使用wifi共享精灵的过程中经常是这样做:电脑一直开着,然后自己躺在床上用手机看小说.看韩剧.但几十分钟之后,电脑会因为长期没人操作而自动休眠,从而导致wifi连接不上,要是每次重启软件又太费事, ...

  2. android的wifi网卡移植详细过程已经通用驱动的问题

    这里有一篇详细的教程,看完还有一个问题 就是android的wifi驱动移植,如果有wifi网卡的驱动代码,是一定需要对android系统本身的代码修改重写编译吗?就是说,有无可能不改变android ...

  3. php curl p12证书处理,PHP如何支持CURL字符串证书传输(详细解决过程)

    背景 最近在对接微信支付的时候,需要在退款处用到证书,由于我们是SAAS平台,要支持多方多渠道支付,如果把所有证书文件保存在应用服务器会受到SLB的影响,会导致某台机器文件不同步而阻碍退款流程,但把文 ...

  4. bat批处理开发-wifi联网系列(5):wifi稳定性分析之日期时间比较及奇特数字的坑

    公司wifi很不稳定,编写了个wifi断网后自动重连的批处理,主要包括:可用wifi查询.联网.wifi切换感知.自动检测及掉线重连,网络状态分析等功能. 上篇:bat批处理开发-wifi联网系列(4 ...

  5. 从应用到平台 – 云服务架构的演进过程

    麦穗技术 屌丝程序员的自我对白 最新 Python 头条资讯 技术文章 LNMP 前端 设计模式 视频 软件 从应用到平台 – 云服务架构的演进过程 目录头条资讯2016年7月12日 转载自:http ...

  6. 基于I.MX6UL平台的WIFI模块AP6214A 驱动移植

    基于I.MX6UL平台的WIFI模块AP6214A 驱动移植 IoT-6ULX简要介绍 IoT-6ULX,主要面向Internet Of Things应用,该产品集成了 ARM Cortex-A7 9 ...

  7. MySQL 遇到的死锁问_一个罕见的MySQL redo死锁问题排查及解决过程

    原标题:一个罕见的MySQL redo死锁问题排查及解决过程 作者:张青林,腾讯云布道师.MySQL架构师,隶属腾讯TEG-基础架构部-CDB内核开发团队,专注于MySQL内核研发&相关架构工 ...

  8. 关于一台电脑无法搜索到另外一台电脑wifi热点的解决方法

    背景:我自己的笔记本在重装系统后无法搜索到台式电脑分享的WiFi热点,但是在没有重装系统之前都是能搜索到并且连接上的.并且我的笔记本能搜索到除了我这台台式电脑分享到的任何信号,比如我的手机热点,我办公 ...

  9. 生产中NFS案例记录---写入权限解决过程

        生产中NFS案例记录---写入权限解决过程 NFS配置要求: 1. 将oracle文件写入到NFS Server端,注意权限要与oracle端一致. 2. Oracle端目录文件所属用户为or ...

  10. 生产环境GC故障解决过程记录

    2019独角兽企业重金招聘Python工程师标准>>> 排查了五六个小时,终于解决了GC的问题,记录一下希望可以帮到有需要的人,本文假定读者对GC知识有一定的了解 如果不了解可以先参 ...

最新文章

  1. 简述进程的启动、终止的方式以及如何进行进程的查看。
  2. 怎样通过css控制table的部分td
  3. java下载zip_从Servlet Java下载zip
  4. Codeforces 864E - Fire(dp)
  5. mongodb mysql 写_MongoDB与MySQL关于写确认的异同
  6. django不修改数据库创外键_Django——model(建表,增删改查,外键,多对多)
  7. 一个关于导出excel模板的实例
  8. Android 使用ViewPager实现view轮播效果,单个item分页样式,多个item分页样式,横向listview
  9. 基于java的数据结构学习——动态数组C++类模板(含拷贝构造,重载常见运算符)
  10. ip 十进制 整型 java_IP地址转换成10进制整数(zt)
  11. oracle硬解析和软解析
  12. Java_一致性哈希算法与Java实现
  13. DO,DTO,VO,POJO, Java 中的各种 O(bject)
  14. 您似乎与家庭管理员不在同一个国家/地区,油管换区过程记录
  15. 基于jsp的网上作业批改系统
  16. Linux网卡驱动pcnet32.c的注释(AM79C9*系列网卡的驱动)
  17. Kubernetes 污点与容忍
  18. 接近8000字的Spring/Spring常用注解总结
  19. 我常去的几家GIS论坛
  20. Linux运维:现状、入门和未来之路【警醒自己】

热门文章

  1. 添加透明FLASH和FLASH大全
  2. Linux基础学习记录
  3. html右下角固定广告,jQuery右下角悬浮广告
  4. 常用值得收藏的网站/软件 持续更新中
  5. 求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。...
  6. html在线围棋对战,闲情奕趣(基于html5的围棋应用)
  7. 浏览器野史 UserAgent列传
  8. 清华计算机系研究生刘艺华,2017年清华大学计算机系硕士录取名单
  9. [破解]Shark恒破解基础教程笔记
  10. 机器人弹性伸缩算法-专利技术交底书