GPS问题调试—MobileLog中有关GPS关键LOG的释义
2015-12-03 10:57
387 查看
[DESCRIPTION]
在mobile log中,有很多GPS相关的log出现在main log和kernel log、properties文件中,他们的意思是什么,通过这篇文档进行总结,以便在处理GPS 问题时,能够根据这些log快速的收敛问题。
[SOLUTION]
特别先提醒,这些log并非所有的软件版本上都有,所以只需要根据已经的log结合这份文档即可。
l Properties文件,可以收集到该问题相关的版本信息
1. 168 [ro.mediatek.version.branch]: [KK2.MP13]
2. 169 [ro.mediatek.version.release]: [ALPS.KK2.MP13.V1.1]
3. 222 [gsm.project.baseband]: [6752_LWT_KK_MD1_HW(DEFAULT)]
4. 227 [gsm.version.baseband]: [MOLY.LR9.W1423.MD.LWTG.CMCC.MP.V1.P33
l Kernel log文件
1. 16468 <3>[ 280.806548] (0)[341:mtk_wmtd][WMT-PLAT][I]wmt_plat_dump_pin_conf:GPS_SYNC(not defined)
GPS SYNC pin不用配置
2. 16469 <3>[ 280.806557] (0)[341:mtk_wmtd][WMT-PLAT][I]wmt_plat_dump_pin_conf:GPS_LNA(GPIO-2147483580)
GPIO-2147483580表示的GPIO68,这个GPIO的配置在“GPS问题大全.docx”的4.1章节有提到如何配置该GPIO。如果没有使用外部LNA,那么就不需要配置该GPIO了。
3. 16626 <3>[ 280.852549] (1)[341:mtk_wmtd][WMT-CONF][I]wmt_conf_parse:#32(co_clock_flag)=>0x0
从这一条中的co_clock_flag=0表示采用的TCXO的方案,如果为1表示采用的是Coclock.
4. 17055 <4>[ 281.533172] (0)[237:mnld][GPS] GPS_open: WMT turn on GPS OK!
打开GPS
5. 45005 <4>[ 437.737848] (0)[237:mnld][GPS] GPS_close: WMT turn off GPS OK!
关闭GPS
l Main log文件
1. 03400 05-13 16:07:58.210429 766 1337 V Provider/Settings: from settings cache , name = location_providers_allowed , value = gps,network
Value后面的值表示的定位方式,这里表示gps定位和网络定位。
2. 04132 05-13 16:08:06.191351 766 1387 D LocationManagerService: request 42815df8 gps Request[ACCURACY_FINE gps requested=0 fastest=0] from com.mediatek.ygps(1001)
这里是表示gps定位,其应用是ygps,这一点经常会被用到debug 问题
3. 04142 05-13 16:08:06.193005 766 787 D GpsLocationProvider: startNavigating, singleShot is false
打开GPS
4. 04227 05-13 16:08:06.295280 237 237 D mnl_linux: mnl_utl_load_property: EPO_Enabled: 1
这里表示EPO使能,EPO是可以提供星历辅助数据
5. 04228 05-13 16:08:06.295286 237 237 D mnl_linux: mnl_utl_load_property: BEE_Enabled: 1
这里表示BEE使能,BEE是可以提供星历辅助数据。
6. 04229 05-13 16:08:06.295548 237 237 D mnl_linux: mnl_utl_load_property: SUPL_Enabled: 1
这里表示AGPS使能
7. 04238 05-13 16:08:06.296514 237 237 D MNLD : launch_daemon_thread: chip_id is 0x6752
GPS chip是6752
8. 04279 05-13 16:08:06.301853 237 237 D mnl_linux: mtk_gps_sys_init: gps_tcxo_hz : 26000000
采用26M时钟
9. 04280 05-13 16:08:06.301861 237 237 D mnl_linux: mtk_gps_sys_init: gps_tcxo_ppb : 0
0表示时钟频偏采用默认2000ppm
10. 04286 05-13 16:08:06.301995 237 237 D MNLD : linux_gps_init: TCXO
表示采用的是TCXO,非省晶体方案
11. 03928 01-14 23:36:49.154 171 171 D MNLD : linux_gps_init: GPS coclock
表示采用的是Coclock,省晶体方案
12. 05-13 16:08:07.030960 237 237 D MNLD : linux_gps_init: GNSSOPMode: 2
这里GNSSOPMode=2
13. 17129 05-15 03:36:25.760 288 325 D agps : [agps]
[AGPS] [MNL] read pmtk=[$PMTK764,0,0,0,1,0,128*3D
PMTK764这个log可以知道当前是支持什么卫星系统的, 三个0后面的1表示支持1种卫星系统;
1后面的0和128表示对这个卫星系统的说明,0表示是GPS卫星
0042 $$PMTK764,0,0,0,2,0,128,4,128*15
这个PMTK764中的2表示支持2种卫星系统,(0,128)表示GPS卫星系统,(4,128)表示GLONASS
14. 05-13 16:08:07.031018 237 237 D MNLD : linux_gps_init: init_cfg.C0 = 0
如果是Coclock方案,0表示没有校准
15. 05-13 16:08:07.031026 237 237 D MNLD : linux_gps_init: init_cfg.C1 = 0
如果是Coclock方案,0表示没有校准
16. 05-13 16:08:07.031035 237 237 D MNLD : linux_gps_init: init_cfg.initU = 0
如果是Coclock方案,0表示没有校准
17. 05-13 16:08:07.031043 237 237 D MNLD : linux_gps_init: init_cfg.lastU = 0
如果是Coclock方案,0表示没有校准
18. 04377 05-13 16:08:07.036831 237 237 D MNLD : linux_gps_init: dbg_file_name (/data/misc/gpsdebug.log)
这里表示gps debug log存放在/data/misc下面
19. 016963 05-12 09:48:22.431 266 266 D MNLD : linux_gps_init: dbg_file_name (/storage/sdcard0/mtklog/gpsdbglog/gpsdebug.log)
这里表示gps debug log存放在/storage/sdcard0/mtklog/gpsdbglog/下面
20. 04408 05-13 16:08:07.526851 237 2792 D mnl_linux: mtk_gps_sys_nmea_output_to_app: $PMTK010,001*2E
PMTK010表示GPS软件已经跑正常了,这一点是判断GPS软件正常工作常用的手段。
21. 04419 05-13 16:08:07.531313 237 2792 D mnl_linux: $GNRMC,080807.009,V,3953.7875,N,11620.6085,E,0.000,0.00,130515,,,N*5B
NMEA也是判断GPS软件正常工作常用的手段
22. 04439 05-13 16:08:07.531876 766 787 D gps_mtk : mtk_gps_start: line = 3644sta.status = GPS_STATUS_ENGINE_ON
通过该log“GPS_STATUS_ENGINE_ON”,在手机最上面的状态栏,是可以看到GPS定位状态图标
23. 05944 05-13 16:08:20.550455 766 2574 D GpsLocationProvider: TTFF: 13003
表示GPS的定位时间死13.003s
24. 25275 05-13 16:10:42.491472 766 787 D GpsLocationProvider: stopNavigating
关闭GPS
25. 25366 05-13 16:10:42.511134 766 2574 D gps_mtk : mnld_to_gps_handler: line = 3020sta.status = GPS_STATUS_ENGINE_OFF
通过该log“GPS_STATUS_ENGINE_OFF”,在手机最上面的状态栏,GPS定位状态图标消失
26. 25378 05-13 16:10:42.795323 766 1376 D gps_mtk : mtk_gps_delete_aiding_data: line = 3898Send MNL_CMD_RESTART_FULL in HAL
这里的log表示是FULL start,如果看到下面图片的log,请对应查找
27. 083004 05-12 09:50:00.510 827 1468 D LocationManagerService: request 1434db9 gps Request[ACCURACY_FINE gps requested=+10s0ms fastest=+10s0ms] from com.tct.weather(10052)
108716 05-12 09:50:31.004 827 1468 I LocationManagerService: remove 1434db9
通过上面的log可得知GPS定位开始的时间和结束的时间,是com.tct.weather这个应用打开的GPS,这里的1434db9很重要,是你判断结束的对应log点
28. 109104 05-12 09:50:31.404 827 8800 V GpsLocationProvider: GNSS SV count: 9 ephemerisMask: 0 almanacMask: 0
109105 05-12 09:50:31.405 827 8800 V GpsLocationProvider: sv: 22 snr: 0.0 elev: 66.0 azimuth: 198.0
109106 05-12 09:50:31.406 827 8800 V GpsLocationProvider: sv: 14 snr: 0.0 elev: 54.0 azimuth: 15.0
109107 05-12 09:50:31.408 827 8800 V GpsLocationProvider: sv: 25 snr: 3.0 elev: 52.0 azimuth: 55.0 U
109110 05-12 09:50:31.409 827 8800 V GpsLocationProvider: sv: 31 snr: 2.3600001 elev: 48.0 azimuth: 289.0 U
109111 05-12 09:50:31.409 827 8800 V GpsLocationProvider: sv: 18 snr: 2.48 elev: 36.0 azimuth: 162.0 U
109113 05-12 09:50:31.410 827 8800 V GpsLocationProvider: sv: 32 snr: 0.0 elev: 24.0 azimuth: 318.0
109116 05-12 09:50:31.412 827 8800 V GpsLocationProvider: sv: 12 snr: 3.2 elev: 16.0 azimuth: 39.0 U
109117 05-12 09:50:31.412 827 8800 V GpsLocationProvider: sv: 29 snr: 0.0 elev: 13.0 azimuth: 115.0
109120 05-12 09:50:31.413 827 8800 V GpsLocationProvider: sv: 4 snr: 0.0 elev: 7.0 azimuth: 280.0
从上面的log上可以看到可视卫星有9颗,每颗卫星的ID、SNR、ELEV、AZIMUTH
29. 109109 05-12 09:50:31.408 827 860 D LocationManagerService: incoming location: Location[gps 23.032397,114.349453 acc=7 et=+35m46s616ms alt=43.0 vel=0.0 bear=10.53 {Bundle[{}]}]
有这行log,表示这一秒一定是定位成功的,这个log中的gps表示这个定位成功的位置是GPS提供出来的。
30. 04520 05-13 16:08:07.548131 766 1378 D LocationManagerService: request 42509ab8 network Request[POWER_LOW network requested=+1s0ms fastest=+1s0ms] from com.mediatek.nlpservice(10047)
04566 05-13 16:08:07.576011 766 787 D LocationManagerService: incoming location: Location[network 39.896459,116.343475 acc=257 et=+23m51s504ms]
04580 05-13 16:08:07.582307 766 1226 I LocationManagerService: remove 42509ab8
从这几行log中的“network Request[POWER_LOW network requested”表示是网络定位,是” com.mediatek.nlpservice”应用或者是服务去请求的,网络定位比较快,可以看到立即就拿到了位置,根据42509ab8,可以判断什么时候关闭了这次网络定位
31. 04581 05-13 16:08:07.582319 766 787 D gps_mtk : mtk_gps_inject_location: line = 3845ts.tv_sec= 229820461603619098,ts.tv_nsec = 8953004843085074432
04582 05-13 16:08:07.582352 766 787 D gps_mtk : mtk_gps_inject_location: line = 3846inject location lati= 39.896459, longi = 116.343475,accuracy =257.000000
这里的log表示将位置辅助和参考时间数据注入给GPS 模块,来加速GPS定位。
备注:
分析本次在MT8321上面调试GPS的过程,走了很多弯路,主要是mtk给的参考资料也是每个平台不一样。
在MT8321平台上co-clock 和 dxco方式 ,软件好像不用修改什么(特别提醒:以前的平台是需要修改的),
我们这次搜不到星是因为没有校准,是2G RF校准,不是GPS校准。
猜测原因,可能是校准后cpu(gps集成在cpu了)出来的clock稳定些,不会漂移,所有导致这种现象。
在mobile log中,有很多GPS相关的log出现在main log和kernel log、properties文件中,他们的意思是什么,通过这篇文档进行总结,以便在处理GPS 问题时,能够根据这些log快速的收敛问题。
[SOLUTION]
特别先提醒,这些log并非所有的软件版本上都有,所以只需要根据已经的log结合这份文档即可。
l Properties文件,可以收集到该问题相关的版本信息
1. 168 [ro.mediatek.version.branch]: [KK2.MP13]
2. 169 [ro.mediatek.version.release]: [ALPS.KK2.MP13.V1.1]
3. 222 [gsm.project.baseband]: [6752_LWT_KK_MD1_HW(DEFAULT)]
4. 227 [gsm.version.baseband]: [MOLY.LR9.W1423.MD.LWTG.CMCC.MP.V1.P33
l Kernel log文件
1. 16468 <3>[ 280.806548] (0)[341:mtk_wmtd][WMT-PLAT][I]wmt_plat_dump_pin_conf:GPS_SYNC(not defined)
GPS SYNC pin不用配置
2. 16469 <3>[ 280.806557] (0)[341:mtk_wmtd][WMT-PLAT][I]wmt_plat_dump_pin_conf:GPS_LNA(GPIO-2147483580)
GPIO-2147483580表示的GPIO68,这个GPIO的配置在“GPS问题大全.docx”的4.1章节有提到如何配置该GPIO。如果没有使用外部LNA,那么就不需要配置该GPIO了。
3. 16626 <3>[ 280.852549] (1)[341:mtk_wmtd][WMT-CONF][I]wmt_conf_parse:#32(co_clock_flag)=>0x0
从这一条中的co_clock_flag=0表示采用的TCXO的方案,如果为1表示采用的是Coclock.
4. 17055 <4>[ 281.533172] (0)[237:mnld][GPS] GPS_open: WMT turn on GPS OK!
打开GPS
5. 45005 <4>[ 437.737848] (0)[237:mnld][GPS] GPS_close: WMT turn off GPS OK!
关闭GPS
l Main log文件
1. 03400 05-13 16:07:58.210429 766 1337 V Provider/Settings: from settings cache , name = location_providers_allowed , value = gps,network
Value后面的值表示的定位方式,这里表示gps定位和网络定位。
2. 04132 05-13 16:08:06.191351 766 1387 D LocationManagerService: request 42815df8 gps Request[ACCURACY_FINE gps requested=0 fastest=0] from com.mediatek.ygps(1001)
这里是表示gps定位,其应用是ygps,这一点经常会被用到debug 问题
3. 04142 05-13 16:08:06.193005 766 787 D GpsLocationProvider: startNavigating, singleShot is false
打开GPS
4. 04227 05-13 16:08:06.295280 237 237 D mnl_linux: mnl_utl_load_property: EPO_Enabled: 1
这里表示EPO使能,EPO是可以提供星历辅助数据
5. 04228 05-13 16:08:06.295286 237 237 D mnl_linux: mnl_utl_load_property: BEE_Enabled: 1
这里表示BEE使能,BEE是可以提供星历辅助数据。
6. 04229 05-13 16:08:06.295548 237 237 D mnl_linux: mnl_utl_load_property: SUPL_Enabled: 1
这里表示AGPS使能
7. 04238 05-13 16:08:06.296514 237 237 D MNLD : launch_daemon_thread: chip_id is 0x6752
GPS chip是6752
8. 04279 05-13 16:08:06.301853 237 237 D mnl_linux: mtk_gps_sys_init: gps_tcxo_hz : 26000000
采用26M时钟
9. 04280 05-13 16:08:06.301861 237 237 D mnl_linux: mtk_gps_sys_init: gps_tcxo_ppb : 0
0表示时钟频偏采用默认2000ppm
10. 04286 05-13 16:08:06.301995 237 237 D MNLD : linux_gps_init: TCXO
表示采用的是TCXO,非省晶体方案
11. 03928 01-14 23:36:49.154 171 171 D MNLD : linux_gps_init: GPS coclock
表示采用的是Coclock,省晶体方案
12. 05-13 16:08:07.030960 237 237 D MNLD : linux_gps_init: GNSSOPMode: 2
这里GNSSOPMode=2
13. 17129 05-15 03:36:25.760 288 325 D agps : [agps]
[AGPS] [MNL] read pmtk=[$PMTK764,0,0,0,1,0,128*3D
PMTK764这个log可以知道当前是支持什么卫星系统的, 三个0后面的1表示支持1种卫星系统;
1后面的0和128表示对这个卫星系统的说明,0表示是GPS卫星
0042 $$PMTK764,0,0,0,2,0,128,4,128*15
这个PMTK764中的2表示支持2种卫星系统,(0,128)表示GPS卫星系统,(4,128)表示GLONASS
14. 05-13 16:08:07.031018 237 237 D MNLD : linux_gps_init: init_cfg.C0 = 0
如果是Coclock方案,0表示没有校准
15. 05-13 16:08:07.031026 237 237 D MNLD : linux_gps_init: init_cfg.C1 = 0
如果是Coclock方案,0表示没有校准
16. 05-13 16:08:07.031035 237 237 D MNLD : linux_gps_init: init_cfg.initU = 0
如果是Coclock方案,0表示没有校准
17. 05-13 16:08:07.031043 237 237 D MNLD : linux_gps_init: init_cfg.lastU = 0
如果是Coclock方案,0表示没有校准
18. 04377 05-13 16:08:07.036831 237 237 D MNLD : linux_gps_init: dbg_file_name (/data/misc/gpsdebug.log)
这里表示gps debug log存放在/data/misc下面
19. 016963 05-12 09:48:22.431 266 266 D MNLD : linux_gps_init: dbg_file_name (/storage/sdcard0/mtklog/gpsdbglog/gpsdebug.log)
这里表示gps debug log存放在/storage/sdcard0/mtklog/gpsdbglog/下面
20. 04408 05-13 16:08:07.526851 237 2792 D mnl_linux: mtk_gps_sys_nmea_output_to_app: $PMTK010,001*2E
PMTK010表示GPS软件已经跑正常了,这一点是判断GPS软件正常工作常用的手段。
21. 04419 05-13 16:08:07.531313 237 2792 D mnl_linux: $GNRMC,080807.009,V,3953.7875,N,11620.6085,E,0.000,0.00,130515,,,N*5B
NMEA也是判断GPS软件正常工作常用的手段
22. 04439 05-13 16:08:07.531876 766 787 D gps_mtk : mtk_gps_start: line = 3644sta.status = GPS_STATUS_ENGINE_ON
通过该log“GPS_STATUS_ENGINE_ON”,在手机最上面的状态栏,是可以看到GPS定位状态图标
23. 05944 05-13 16:08:20.550455 766 2574 D GpsLocationProvider: TTFF: 13003
表示GPS的定位时间死13.003s
24. 25275 05-13 16:10:42.491472 766 787 D GpsLocationProvider: stopNavigating
关闭GPS
25. 25366 05-13 16:10:42.511134 766 2574 D gps_mtk : mnld_to_gps_handler: line = 3020sta.status = GPS_STATUS_ENGINE_OFF
通过该log“GPS_STATUS_ENGINE_OFF”,在手机最上面的状态栏,GPS定位状态图标消失
26. 25378 05-13 16:10:42.795323 766 1376 D gps_mtk : mtk_gps_delete_aiding_data: line = 3898Send MNL_CMD_RESTART_FULL in HAL
这里的log表示是FULL start,如果看到下面图片的log,请对应查找
27. 083004 05-12 09:50:00.510 827 1468 D LocationManagerService: request 1434db9 gps Request[ACCURACY_FINE gps requested=+10s0ms fastest=+10s0ms] from com.tct.weather(10052)
108716 05-12 09:50:31.004 827 1468 I LocationManagerService: remove 1434db9
通过上面的log可得知GPS定位开始的时间和结束的时间,是com.tct.weather这个应用打开的GPS,这里的1434db9很重要,是你判断结束的对应log点
28. 109104 05-12 09:50:31.404 827 8800 V GpsLocationProvider: GNSS SV count: 9 ephemerisMask: 0 almanacMask: 0
109105 05-12 09:50:31.405 827 8800 V GpsLocationProvider: sv: 22 snr: 0.0 elev: 66.0 azimuth: 198.0
109106 05-12 09:50:31.406 827 8800 V GpsLocationProvider: sv: 14 snr: 0.0 elev: 54.0 azimuth: 15.0
109107 05-12 09:50:31.408 827 8800 V GpsLocationProvider: sv: 25 snr: 3.0 elev: 52.0 azimuth: 55.0 U
109110 05-12 09:50:31.409 827 8800 V GpsLocationProvider: sv: 31 snr: 2.3600001 elev: 48.0 azimuth: 289.0 U
109111 05-12 09:50:31.409 827 8800 V GpsLocationProvider: sv: 18 snr: 2.48 elev: 36.0 azimuth: 162.0 U
109113 05-12 09:50:31.410 827 8800 V GpsLocationProvider: sv: 32 snr: 0.0 elev: 24.0 azimuth: 318.0
109116 05-12 09:50:31.412 827 8800 V GpsLocationProvider: sv: 12 snr: 3.2 elev: 16.0 azimuth: 39.0 U
109117 05-12 09:50:31.412 827 8800 V GpsLocationProvider: sv: 29 snr: 0.0 elev: 13.0 azimuth: 115.0
109120 05-12 09:50:31.413 827 8800 V GpsLocationProvider: sv: 4 snr: 0.0 elev: 7.0 azimuth: 280.0
从上面的log上可以看到可视卫星有9颗,每颗卫星的ID、SNR、ELEV、AZIMUTH
29. 109109 05-12 09:50:31.408 827 860 D LocationManagerService: incoming location: Location[gps 23.032397,114.349453 acc=7 et=+35m46s616ms alt=43.0 vel=0.0 bear=10.53 {Bundle[{}]}]
有这行log,表示这一秒一定是定位成功的,这个log中的gps表示这个定位成功的位置是GPS提供出来的。
30. 04520 05-13 16:08:07.548131 766 1378 D LocationManagerService: request 42509ab8 network Request[POWER_LOW network requested=+1s0ms fastest=+1s0ms] from com.mediatek.nlpservice(10047)
04566 05-13 16:08:07.576011 766 787 D LocationManagerService: incoming location: Location[network 39.896459,116.343475 acc=257 et=+23m51s504ms]
04580 05-13 16:08:07.582307 766 1226 I LocationManagerService: remove 42509ab8
从这几行log中的“network Request[POWER_LOW network requested”表示是网络定位,是” com.mediatek.nlpservice”应用或者是服务去请求的,网络定位比较快,可以看到立即就拿到了位置,根据42509ab8,可以判断什么时候关闭了这次网络定位
31. 04581 05-13 16:08:07.582319 766 787 D gps_mtk : mtk_gps_inject_location: line = 3845ts.tv_sec= 229820461603619098,ts.tv_nsec = 8953004843085074432
04582 05-13 16:08:07.582352 766 787 D gps_mtk : mtk_gps_inject_location: line = 3846inject location lati= 39.896459, longi = 116.343475,accuracy =257.000000
这里的log表示将位置辅助和参考时间数据注入给GPS 模块,来加速GPS定位。
备注:
分析本次在MT8321上面调试GPS的过程,走了很多弯路,主要是mtk给的参考资料也是每个平台不一样。
在MT8321平台上co-clock 和 dxco方式 ,软件好像不用修改什么(特别提醒:以前的平台是需要修改的),
我们这次搜不到星是因为没有校准,是2G RF校准,不是GPS校准。
猜测原因,可能是校准后cpu(gps集成在cpu了)出来的clock稳定些,不会漂移,所有导致这种现象。
相关文章推荐
- 微信地推传单推广渠道二维码管理—带参数二维码管理平台
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- 14.9.5 Reclaiming Disk Space with TRUNCATE TABLE 回收磁盘空间使用TRUNCATE TABLE
- 使用apt-file,根据文件查找所需安装的软件包
- android 使用AccessibilityService 自动安装应用
- JAVA过滤器
- 程序员最恐怖的梦魇
- 堆排序
- java判断文件是否存在
- Linux中环境变量文件及配置
- 不用分布式方式,处理大量数据的问题
- css颜色编码对照大全
- android smali语法
- ubuntu14配置jdk1.7
- axis实现webservice服务
- 接口和内部类
- 常用网卡/收发器
- 【MongoDB系列】:MongoDB基础知识
- CSS属性的陷阱
- yii2 使用gii