关于A7升级后BT地址建立失败问题的解决

现象描述:

CSR A7平台,在recovery结束后,存在偶发(3%左右的概率)的蓝牙(BT)地址建立失败的问题,此时蓝牙没有MAC地址,进一步表现为车机闪屏(点亮--熄灭--点亮),串口的log显示profile文件多次被加载:

 

问题定位:

1、怀疑与升级有关

1)升级中关于BT地址备份的操作:

在车接界面点击全部升级,APP会将BT地址相关的文件(/boot/bt.inf和/root/var/lib/trail/bt.inf)备份到U盘的/update/mac_backup目录

车机重启进行recovery解压update.zip,产生/root/var/lib/trail/trail/bt.inf(编译得到的默认BT地址文件)

recovery程序将U盘/update/mac_backup/下的备份文件还原到车机/boot和/root/var/lib/trail/目录

结束recovery车机重启进入正常系统

 

2)分析及对策

怀疑copy_file()函数有问题;添加LOGE信息,验证copy_file()没有问题

怀疑copy成功后存在sync同步写入失败;添加判断copy后文件是否存在,验证文件写入成功

 

2、怀疑与分区的mount有关

在进行recovery时,会另外开启进程执行update-script-linux脚本,该脚本分别将/dev/mmcblk0p2和/dev/mmcblk0p3分区mount到boot 、root下,然后解压update.zip,完成update.zip的解压后退出进程回到recovery,并没有unmount boot、root。接下来将在recovery中执行BT的备份动作,此时用的destination path还是update-script-linux脚本里mount出的boot、root。

退出进程回到recovery后,重新建立mount路径,然后再备份BT地址文件,偶发概率大约0.5%

3、怀疑与CSR校验方式有关

 

对BT验证主要通过SOC厂家提供的licensemanger模块来处理,在系统启动后,该模块会启动侦听进程,对于内部BT、WIFI、KAS的进行侦听。接下来分别会使用到csr_synergy​下面的文件bt.inf、trail下面的bt.inf,来确认BT的MAC是否正常,cvc功能是否允许。

MAC判断默认使用的是boot分区中的bt.inf文件,如果第一次确认了后,该文件会被主动copy到csr_synergy目录下,以后就直接使用csr_synegry目录中的文件。cvc文件判定使用的是trail下面的bt.inf文件。licensemanger3.1版本中,BT的判断,只会用boot分区中的bt.inf文件。

由1、2的定位及分析,最终定位CSR的licenseManager模块可能有问题,通过与CSR沟通,怀疑BT 的service可能启动的太快而这时候connx_tool还没有将boot下的bt.inf copy到/var/lib/csr_synergy/目录下,此时MAC地址可能建立失败,而BT的services并不会一直等待MAC的建立。

下图可以看出,出现BT地址建立失败的问题时,synergy_bt_service状态为s,说明synergy_bt_service已经正常启动。

 

问题解决:

最终,在recovery时copy bt.inf到csr_synergy 目录,测试结果没有发现MAC地址建立失败的问题。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值