EC200M-CN Android13 Radio1.5 GNSS2.0驱动无法打开rild-nmea端口

radio日志如下:

Quectel RIL Version: Quectel_Android_RIL_Driver_V3.7.0

find quectel module /sys/bus/usb/devices/3-1 idVendor=2c7c idProduct=6002
12-09 17:20:25.725 496 525 D RILU : find_usb_device is 1
12-09 17:20:26.716 496 524 D RILC : dlopen /vendor/lib64/hw/radio.quectel.module.so failed: dlopen failed: library “/vendor/lib64/hw/radio.quectel.module.so” not found
12-09 17:20:26.716 496 524 D RILC : start the service through api…
12-09 17:20:26.716 496 524 D RILC : ql_radio_config_init start
12-09 17:20:26.716 496 524 E RadioConfigFactory: ‘/vendor/manifest.xml’ not exist.
12-09 17:20:26.717 496 524 D RadioConfigFactory: __getIRadioConfigVersion:114 IRadioconfigVersion:2
12-09 17:20:26.717 496 524 D RadioConfigImpl: RadioConfigImpl()
12-09 17:20:26.717 496 524 D RadioConfigImpl_1_2: RadioConfigImpl_1_2:registerAsService(default)
12-09 17:20:26.718 496 524 D RadioConfigFactory: radio_config_register_service status=-2147483648
12-09 17:20:26.718 496 524 D RILC : ql_radio_config_init finish
12-09 17:20:26.718 496 524 D RILC : ql_radio_sap_init start
12-09 17:20:26.718 496 524 D RIL_SAP_1_2: ql_radio_sap_init() start.
12-09 17:20:26.718 496 524 D RIL_SAP_1_2: radio_sap_register_service status=-2147483648
12-09 17:20:26.718 496 524 D RILC : ql_radio_sap_init finish
12-09 17:20:26.726 496 525 D RILU : find /sys/bus/usb/devices/3-1:1.3/ttyUSB1
12-09 17:20:26.726 496 525 D RILU : ttyAT = ttyUSB1
12-09 17:20:26.726 496 525 D RILU : find /sys/bus/usb/devices/3-1:1.2/ttyUSB0
12-09 17:20:26.726 496 525 D RILU : ttyDM = ttyUSB0
12-09 17:20:26.726 496 525 D RILU : find /sys/bus/usb/devices/3-1:1.6/ttyUSB3
12-09 17:20:26.726 496 525 D RILU : ttyGPS = ttyUSB3
12-09 17:20:26.727 496 525 D RILU : MTK debug ql_find_ecm_rndis_ncm: usbnet adapter dir:/sys/bus/usb/devices/3-1:1.0
12-09 17:20:26.727 496 525 D RILU : find /sys/bus/usb/devices/3-1:1.0/net/usb0
12-09 17:20:26.727 496 525 D RILU : usbnet_adapter = usb0
12-09 17:20:26.727 496 525 D RILU : netcard driver: cdc_ether, driver version: 5.10.107
12-09 17:20:26.727 496 525 D RILU : ECM = usb0
12-09 17:20:26.727 496 525 D RILU : kernel_version: 5.10.107
12-09 17:20:26.727 496 525 D RILC : quectel at port is /dev/ttyUSB1
12-09 17:20:26.727 496 525 D RILU : ql_set_autosuspend, enter…
12-09 17:20:26.727 496 525 D RILU : ro_hardware:rk30board

gps_ql日志如下:

open_gps[22]–enter!
12-09 17:20:24.442 D/gps_ql ( 414): gps__get_gps_interface[15]–enter!
12-09 17:20:24.446 D/gps_ql ( 414): [rild-nmea] [0]
12-09 17:20:24.446 D/gps_ql ( 414): get android version:33
12-09 17:20:37.078 D/gps_ql ( 414): ql_gps_get_extension(name=gps-xtra)
12-09 17:20:37.079 D/gps_ql ( 414): ql_gps_get_extension(name=agps_ril)
12-09 17:20:37.080 D/gps_ql ( 414): ql_gps_get_extension(name=agps)
12-09 17:20:37.081 D/gps_ql ( 414): ql_gps_get_extension(name=gps_navigation_message)
12-09 17:20:37.081 D/gps_ql ( 414): ql_gps_get_extension(name=gps_measurement)
12-09 17:20:37.082 D/gps_ql ( 414): ql_gps_get_extension(name=gps-debug)
12-09 17:20:37.082 D/gps_ql ( 414): ql_gps_get_extension(name=gps-debug)
12-09 17:20:37.083 D/gps_ql ( 414): ql_gps_get_extension(name=gnss_configuration)
12-09 17:20:37.083 D/gps_ql ( 414): ql_gps_get_extension(name=gps_geofencing)
12-09 17:20:37.085 D/gps_ql ( 414): GPS DRIVER VERSION: Quectel_Android_GPS_Driver_V2.2.22
12-09 17:20:37.085 D/gps_ql ( 414): MODULE_TYPE:
12-09 17:20:37.085 D/gps_ql ( 414): QL_GPS_CHANNEL:rild-nmea
12-09 17:20:37.085 D/gps_ql ( 414): BAUD_RATE:0
12-09 17:20:37.087 D/gps_ql ( 414): init_times = 0, s->init = 0
12-09 17:20:37.087 D/gps_ql ( 414): init_times = 0
12-09 17:20:37.087 D/gps_ql ( 414): ql_gps_state_init[539]–enter!
12-09 17:20:37.087 D/gps_ql ( 414): ql_gps_state_init start
12-09 17:20:37.087 D/gps_ql ( 414): Android gps will read from ‘rild-nmea’ channel
12-09 17:20:37.088 D/gps_ql ( 414): gps state initialized
12-09 17:20:37.088 D/gps_ql ( 414): set gps status to GPS_STATUS_ENGINE_ON
12-09 17:20:37.088 D/gps_ql ( 414): ql_gps_xtra_init(callbacks=0x70268302f0)
12-09 17:20:37.088 D/gps_ql ( 414): ql_gps_Xtra_start: gpsXtraCallbacks=0x70268302f0
12-09 17:20:37.090 D/gps_ql ( 414): ql_loc_agps_ril_init[37]–enter!
12-09 17:20:37.090 D/gps_ql ( 414): ql_loc_agps_ril_init[38]–leave!
12-09 17:20:37.092 D/gps_ql ( 414): ql_gps_cleanup()
12-09 17:20:37.092 D/gps_ql ( 414): report_gps_state enter
12-09 17:20:37.092 D/gps_ql ( 414): reportStatus GPS_STATUS_SESSION_END
12-09 17:20:37.092 D/gps_ql ( 414): report_gps_state leave
12-09 17:20:37.092 D/gps_ql ( 414): report_gps_state enter
12-09 17:20:37.092 D/gps_ql ( 414): reportStatus to GPS_STATUS_ENGINE_OFF
12-09 17:20:37.092 D/gps_ql ( 414): report_gps_state leave
12-09 17:20:37.092 D/gps_ql ( 414): ql_gps_state_done[233]–enter!
12-09 17:20:37.092 D/gps_ql ( 414): ql_gps_state_stop[247]–enter!
12-09 17:20:37.093 D/gps_ql ( 414): deal_cmd[206]–enter and cmd is 2!
12-09 17:20:37.093 D/gps_ql ( 414): ql_send_to_target() start
12-09 17:20:37.093 D/gps_ql ( 414): ql_send_to_target() end
12-09 17:20:37.093 D/gps_ql ( 414): deal_cmd[228]–exit!
12-09 17:20:37.093 D/gps_ql ( 414): report_gps_state enter
12-09 17:20:37.093 D/gps_ql ( 414): reportStatus GPS_STATUS_SESSION_END
12-09 17:20:37.093 D/gps_ql ( 414): report_gps_state leave
12-09 17:20:37.093 D/gps_ql ( 414): report_gps_state enter
12-09 17:20:37.093 D/gps_ql ( 414): reportStatus to GPS_STATUS_ENGINE_OFF
12-09 17:20:37.093 D/gps_ql ( 414): report_gps_state leave
12-09 17:20:37.097 D/gps_ql ( 414): Error connecting rild-nmea (Connection refused)
12-09 17:20:37.098 D/gps_ql ( 414): fail to open GPS channel !
12-09 17:20:37.102 D/gps_ql ( 414): gps_state_thread[260]–enter!
12-09 17:20:37.103 D/gps_ql ( 414): gps thread running
12-09 17:20:37.112 D/gps_ql ( 414): GPS DRIVER VERSION: Quectel_Android_GPS_Driver_V2.2.22
12-09 17:20:37.112 D/gps_ql ( 414): MODULE_TYPE:
12-09 17:20:37.112 D/gps_ql ( 414): QL_GPS_CHANNEL:rild-nmea
12-09 17:20:37.112 D/gps_ql ( 414): BAUD_RATE:0
12-09 17:20:37.113 D/gps_ql ( 414): init_times = 1, s->init = 1
12-09 17:20:37.113 D/gps_ql ( 414): set gps status to GPS_STATUS_ENGINE_ON
12-09 17:20:37.113 D/gps_ql ( 414): ql_gps_xtra_init(callbacks=0x70268302f0)
12-09 17:20:37.114 D/gps_ql ( 414): ql_loc_agps_ril_init[37]–enter!
12-09 17:20:37.114 D/gps_ql ( 414): ql_loc_agps_ril_init[38]–leave!
12-09 17:20:38.098 D/gps_ql ( 414): Error connecting rild-nmea (Connection refused)
12-09 17:20:38.098 D/gps_ql ( 414): fail to open GPS channel !
12-09 17:20:39.099 D/gps_ql ( 414): Error connecting rild-nmea (Connection refused)

那用1.0 能否则正常打开呢?

问题应该不是这里的问题,因为对于EC25_AUX模块GNSS功能是正常的,

目前怀疑是reference-ril.so(驱动版本:Quectel_Android_RIL_Driver_radio1.5_V3.7,GNSS是2.0的)动对于EC200M-CN漏开启了rild-nmea的socket服务?可以帮忙看看源码吗?或者拿EC200M-CN-I05模块测试下吗?非常感谢。

急着解决该问题!!!

库的代码是闭源的。

看看这个模块是否支持GPS吧。

我买的模块是选择的支持GPS的呢。而且直接catttyUSB3也能看到nmea报文,你们提供的驱动目前测试发现3.6.24就已经有这个问题了,还是尽快修复下吧!

还有一个方法。

不用rild-nmea,直接改成/dev/ttyUSB3.

这个方式我试过了,能正常工作,但是我们这套系统还需要适配EC25用于海外客户。还是希望能获得你们基于rild驱动自动适配的方式。您可以帮我修复这个问题,然后给一个新版本的驱动吗?

不用rild-nmea 能工作说明就是这个socket通信有问题。你可以试下新的RIL和GPS库。QuectelWB/Quectel_RIL

这个库是最新的版本的吗?用在Android13没有问题吧?我这边明天测试下,非常感谢啦!

另外我注意到:

Radio1.5_V3.7版本的驱动对EC25 Radio日志识别到的是9X15,而EC200M-CN则提示是ASR Platform,

Radio1.5_V3.5.4的rild驱动上EC200M-CN识别的是9X05并尝试开启rild-nmea,只是该版本驱动未能正确识别ttyGPS对应的串口,导致失败。

我怀疑应该是对于后续驱动中直接对ASR Platform系列忽略了开启rild-nmea通道的代码导致的该BUG

12-09 17:20:26.726 496 525 D RILU : find /sys/bus/usb/devices/3-1:1.6/ttyUSB3
12-09 17:20:26.726 496 525 D RILU : ttyGPS = ttyUSB3

找口的逻辑应该没问题。interface 6 是GPS串口。

RIL 判断模块的类型是为了移远不同的平台的AT指令不能完美兼容,不过和GNSS无关。

除非这个模块打开GPS不是AT+QGPS=1

问题已解决,非常感谢支持。对于ASR平台带GNSS功能的。需要在配置文件ql-ril.conf中启用asr_support_gps=1才能正常创建rild-nmea服务进行转发