一 问题描述:


    开发者手机,openharmony从5.0.0 release版本升级到5.0.3后,wifi无法打开

二.排查思路


1. 排查wifi sa是否正常加载?


    搜索关键日志:SA:1120   有"Scheduler SA:1120 loaded" 说明wifi的sa已经加载成功
        C01810/SAFWK: AddAbility set profile attr for SA:1120
        C01800/SAMGR: SA:1120 OpenSo 86ms
        C01810/SAFWK: StartOndemandSa LoadSaLib SA:1120,spend:86ms
        C01810/SAFWK: OnStartAbility try to start SA:1120
        C01810/SAFWK: Start-SA:1120
        C01810/SAFWK: Publish SA:1120
        C01800/SAMGR: insert SA:1120_95
        C01800/SAMGR: SystemAbilityInvalidateCache SA:1120.
        C01800/SAMGR: Scheduler SA:1120 recv state event
        C01800/SAMGR: Scheduler SA:1120 handle SA event 0 start
        C01800/SAMGR: Scheduler SA:1120 handle load suc event
        C01800/SAMGR: Scheduler SA:1120 state 1 to 2
        C01800/SAMGR: Scheduler SA:1120 loaded  -----表明wifi的sa已经加载成功

 

2.分析Wifi打开的流程,看哪里是否有异常


    搜索关键日志:EnableWifi|StartWifi|wpa_supplicant:|WifiHalStaInterface|WifiServiceScheduler|WifiHalWpaCommon|WifiWpaHal|WifiHalModuleManage

    通过以下日志可以看见:wpa_supplicant start successfully! 但是  Failed to connect to wpa!最终导致AutoStartStaService start wifi fail.

    中间有 WifiHalModuleManage: dlopen libwpa failed.的打印

        C01560/WifiNAPIUtils: Call wifi func: EnableWifi (start)
        C01560/WifiDeviceStub: run OnEnableWifi code 4097, datasize 0
        C01560/WifiDeviceServiceImpl: EnableWifi(), pid:3884, uid:20010023, BundleName:.
        C01560/WifiTogglerManager: StartWifiToggledTimer
        C01560/WifiControllerMachine: Enter ShouldEnableWifi
        C01560/WifiNAPIUtils: Call wifi func: EnableWifi (end), time cost:9294us, 9ms
        C01560/WifiServiceScheduler: WifiServiceScheduler
        C01560/WifiServiceScheduler: AutoStartScanOnly, Wifi scan only state is 0, instId = 0
        C01560/WifiServiceScheduler: AutoStartStaService, current sta state:0
        C01560/WifiServiceScheduler: DispatchWifiOpenRes, state:0
        C01560/WifiServiceScheduler: AutoStartStaService startwifi iface:wlan0 instId:0
        C05200/wpa_supplicant: uid_wifi is 1010, gid_wifi is 1010
        C01560/WifiHalStaInterface: Ready to start wifi
        C01560/WifiHalStaInterface: Start supplicant
        C01560/WifiHalAdapter: CopyConfigFile: destination is /data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf
        C01560/WifiHalAdapter: Execute cmd: cp /system/etc/wifi/wpa_supplicant.conf /data/service/el1/public/wifi/wpa_supplicant/
        C01560/WifiHalAdapter: CopyConfigFile: destination is /data/service/el1/public/wifi/wpa_supplicant/p2p_supplicant.conf
        C01560/WifiHalAdapter: Execute cmd: cp /system/etc/wifi/p2p_supplicant.conf /data/service/el1/public/wifi/wpa_supplicant/
        C01560/WifiHalModuleManage: Create wpa process id is [3982], cmd:wpa_supplicant -c/data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf -g@abstract:/data/service/el1/public/wifi/sockets/wpa/wlan0
        C01560/WifiHalStaInterface: wpa_supplicant start successfully!
        C01560/WifiWpaHal: Wpa connect start.
        C05200/wpa_supplicant: uid_wifi is 1010, gid_wifi is 1010
        C01560/WifiHalWpaCommon: open wpa control recv interface failed!
        C01560/WifiWpaHal: Init wpaCtrl failed: -1
        C01560/WifiHalModuleManage: dlopen libwpa failed.  ----关键错误
        C05200/wpa_supplicant: uid_wifi is 1010, gid_wifi is 1010
        C01560/WifiHalWpaCommon: open wpa control recv interface failed!
        C01560/WifiWpaHal: Init wpaCtrl failed: -1
        C01560/WifiHalStaInterface: Failed to connect to wpa!
        C01560/WifiHalStaInterface: Failed to add wpa interface!
        C01560/WifiHalStaInterface: Ready to disconnect wpa_supplicant.
        C01560/WifiHalStaInterface: Disconnect wpa_supplicant finish!
        C01560/WifiWpaHal: Remove interface: wlan0

3.日志结合代码,分析dlopen libwpa failed失败的原因


   1. WifiHalModuleManage: dlopen libwpa failed 打开失败了。

     

      怀疑是不是这里的路径变了,导致找不到libwpa_sys.z.so.遂加日志上板验证:

       

得到打印如下:根本原因是找不到 libwifi_driver_client.z.so库

C01560/WifiHalModuleManage: dlopen libwpa failed:Error loading shared library libwifi_driver_client.z.so: No such file or directory (needed by /system/lib64/libwpa_sys.z.so)

2.单板上使用find -name libwifi_driver_client.z.so 查找是否有这个库,发现纯在。

3.咨询其它人,得到如下解决方案,

修改文件:base/startup/init/services/sandbox/system-sandbox64.json 新增路径:

 

3.wpa_supplicant初始化失败

  解决了上面的dlopen失败的问题后,出现了wpa_supplicant初始化失败的问题。日志如下:

解决方案:

修改文件:vendor/hardmony/oriole/config.json

      

Logo

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

更多推荐