一、背景

      miracast投屏功能已在大禹200 rk3568开发版上 基于Openharmony 5.0 release分支代码开发完成。功能完备。现在需要将该功能移植到另一个项目上。

二、遇到的问题记录:

问题1:所有对p2p的操作全部失败,日志如下

问题2:p2p接口被异常移除,日志如下

问题3: 创建群组失败,提示频率不支持,日志如下:

 

三. 问题1-所有对p2p的操作全部失败分析过程及原因:

 1)首先对比rk3568,发现rk3568日志是正常的。ifname也是p2p-dev-wlan0

 

分析根据关键日志 "FAIL-NO-IFNAME_MATCH" 分析wpa_supplicant的源码,发现原因是p2p-dev-wlan0这个接口没有添加。

2) 分析Openharmony wifi框架层代码p2p-dev-wlan0接口没有添加的原因

对比rk3568发现。这里也没有添加。所以肯定有其他的方式在添加。通过增加日志发现。rk3568是在EnableWifi的时候,添加wlan0接口时顺便一起添加的

wpa_supplicant的关键函数和逻辑是:得出一个结论--二者的WIFI驱动能力不一致!(后来证实虽然不一致,但不是问题硬件平台差异就是不一致)

3)问题分析的转折点:

        同一时刻,该项目有其它一位同事在调试图库分析应用,也走的是wifi p2p通道。反馈是p2p是可以扫描到设备的。遂对比其日志发现,其对p2p的操作都是成功的,但是使用的接口时p2p0,日志如下:

     

根据上面的分析,可以发现,这里显示 NON_SEPERATE_P2P并没有定义。分析代码也发现这个在wifi 框架层确实没有定义.证据如下:

                                               

所以分析,出问题的时的代码有修改:遂通过查看本地的所有修改,看是否有相关的修改,发现在一个配置文件中这个wifi_feature_non_seperate_p2p被设置成了true。由于是移植的,所以这个地方就照搬rk3568的修改。

4)将config.json的wifi_feature_non_seperate_p2p重新设置为false。编译验证,发现对p2p的操作都成功了。该问题解决!

 

四. 问题2-p2p接口被异常移除分析过程及原因:

1)问题的日志及初步分析如下:

      

2)原因是,上层没有去EnableWifi。 正确EnableWifi后。该问题解决

 

五. 问题3-创建群组失败,提示频率不支持分析过程及原因:

1)问题相关日志及分析,如下图所示

    

2)问题解决方案,上层应用在创建组时,不实用5G的频段,改为使用2G。问题解决

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐