openharmony从5.0.0 release版本升级到5.0.3后,wifi无法打开问题分析过程
一 问题描述:
开发者手机,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
更多推荐
所有评论(0)