我们的平台:全志A523 安卓13 内核Linux5.15
根据开发文档《Quectel_Android_RIL驱动_用户指导_V1.0.0_Preliminary_20230824》
3.5.3. 添加 HIDL 描述(Android 8.x~13.x)
在我们的平台代码中,找到了manifest.xml
根据文档建议安卓13应采用IRadio 1.5,故添加了
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.5::IRadio/slot1</fqname>
<fqname>@1.2::ISap/slot1</fqname>
</hal>
添加后无法编译通过,报错,信息请看截图
不添加HIDL描述则编译上没有问题,请教应如何处理????
编译报错.txt (23.1 KB)
manifest.xml.txt (2.7 KB)
您好。这是因为需要添加兼容矩阵。
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml
index 8ef0b3a..89c584a 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml
@@ -348,6 +348,10 @@
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml
index 12b85c7..49860a2 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml
@@ -384,8 +384,12 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
- <version>1.4</version>
<version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
index e19d2dd..f98897c 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
@@ -225,7 +225,10 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.gnss</name>
- <version>2.0-1</version>
+ <version>2.1</version>
+ <version>2.0</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
@@ -441,6 +444,12 @@
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.6</version>
+ <version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml
index 26b8d63..ed78bf8 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml
@@ -248,7 +248,10 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.gnss</name>
- <version>2.0-1</version>
+ <version>2.1</version>
+ <version>2.0</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
@@ -516,6 +519,22 @@
<instance>default</instance>
</interface>
</hal>
+ <hal format="hidl" optional="true">
+ <name>android.hardware.radio</name>
+ <version>1.6</version>
+ <version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
+ <interface>
+ <name>IRadio</name>
+ <instance>slot1</instance>
+ <instance>slot2</instance>
+ <instance>slot3</instance>
+ </interface>
+ </hal>
<hal format="aidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1</version>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml
index 886f7f5..1175dc6 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml
@@ -520,6 +520,22 @@
<instance>default</instance>
</interface>
</hal>
+ <hal format="hidl" optional="true">
+ <name>android.hardware.radio</name>
+ <version>1.6</version>
+ <version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
+ <interface>
+ <name>IRadio</name>
+ <instance>slot1</instance>
+ <instance>slot2</instance>
+ <instance>slot3</instance>
+ </interface>
+ </hal>
<hal format="aidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1</version>
感谢您的支持
按此修改后,可以编译通过,但运行起来后,有异常 @BiaoWang-Q
当前我们内核用的USB Serial Driver
安卓层radio日志持续重复报错
logcat -b radio -v time
06-22 05:34:00.818 D/RILD ( 4546): RIL Daemon Started
06-22 05:34:00.818 D/RILD ( 4546): RILd param count=10
06-22 05:34:00.819 E/RILD ( 4546): dlopen failed: dlopen failed: library “android.hardware.secure_element@1.0.so” not found: needed by /vendor/lib64/libreference-ril.so in namespace (default)
在设备上搜索了下,android.hardware.secure_element@1.0.so这个文件确实不存在
getprop init.svc.ril-daemon
restarting
一直在重启
cat /vendor/etc/init/*rild.rc | grep ril-daemon
service ril-daemon /vendor/bin/hw/rild -l /vendor/lib64/libreference-ril.so – -d /dev/ttyUSB2 -B 115200 -C 0
使用ttyUSB2这个串口对吗???
libreference-ril.so确定是移远提供的,从设备上提取出来比较过hash
找个mk 加上
PRODUCT_PACKAGES += \
android.hardware.secure_element@1.0 \
android.hardware.secure_element@1.1 \
android.hardware.secure_element@1.2 \
感谢您的支持,相关问题已进行排查处理,当前状态,底层驱动似乎正常,radio有相关日志,但是设备不能上网
帮忙看看啥原因 @BiaoWang-Q
radio_log.txt (78.3 KB)
all_log.txt (1.4 MB)
- IRadio 版本不对。
这里需要确认
- 移远的libril.so 放进去了吗?使用的是1.5 里的吗?配置的是IRadio 1.5 吗?
将设备里的 vendor/etc/vintf/ 目录打包发出来看看。
- 要用移远的qmi_wwan_q.c ,内核自带的qmi_wwan.c 不行;
我们的平台本身会编译libril.so,可能存在冲突覆盖了,我再排查下
配置的IRadio是1.5的
我们的移植资料包里,没有qmi_wwan_q.c源码文件,移植资料是让我们手动改qmi_wwan, 添加VID PID,添加raw ip模式
vintf.zip (12.5 KB)
覆盖掉平台自带的libril.so 遇到的冲突要你们自己解决了。
从log 看看怀疑是不是预制进去的libril.so 版本不对
请将 vendor/etc/vintf/manifest.xml/radio.xml 删掉。
重新排查处理了下,编译了新系统,还是不能上网,ping不通,wwan0节点也没有ip
@BiaoWang-Q
- 确定新系统的libril.so和libreference-ril.so库是移远提供的,从设备上提取出文件比较过hash值
- getprop init.svc.ril-daemon的返回值是空的,getprop gsm.version.ril-impl的返回值也是空的,不知道这个有没有关系
- vendor/etc/vintf/manifest/radio.xml文件已不集成到系统了
radio_log.txt (61.4 KB)
all_log.txt (1.4 MB)
vintf.zip (12.2 KB)
从log 看到
||Line 3639: 01-01 08:00:17.150 197 197 I hwservicemanager: getTransport: Cannot find entry android.hardware.radio.config@1.1::IRadioConfig/default in either framework or device VINTF manifest.|
|---|---|
||Line 3640: 01-01 08:00:17.150 651 669 E HidlServiceManagement: Service android.hardware.radio.config@1.1::IRadioConfig/default must be in VINTF manifest in order to register/get.|
IRadio 1.5 的配置写法
<!-- IRADIO -->
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.5::IRadio/slot1</fqname>
<fqname>@1.2::ISap/slot1</fqname>
</hal>
<!-- RADIO CONFIG -->
<hal format="hidl">
<name>android.hardware.radio.config</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IRadioConfig</name>
<instance>default</instance>
</interface>
</hal>
添加下IRadioConfig 1.1
IRadioConfig 1.1已添加,日志上看不报之前的那个错误了,但是其他情况依旧
@BiaoWang-Q
all_log.txt (1.7 MB)
RadioMonitor的源码已移除,重新编译了系统,目前还是不能上网,安卓层也没有IP,比较奇怪,帮忙分析下还有哪些因素会导致故障 @BiaoWang-Q
all_log.txt (1.7 MB)
我使用移远的库在A523上面可以了,你可以查看一下我的
RILD和RILJ没有连上。
RILJ : Radio HAL version: -1.-1 [PHONE0]
ps -elf | grep ril
ps -elf | grep radio
getprop | grep ril
看看
如果是公司,可以直接联系前线技术支持让他们帮忙安排远程看看吧。