首页 > 其他分享 >RK3588-添加4G通信(EC20)

RK3588-添加4G通信(EC20)

时间:2024-07-27 09:25:25浏览次数:11  
标签:USB RK3588 RIL 添加 radio EC20 4G NET 1.1

RK3588-Android 12添加4G通信

文章目录


所使用3588开发板为临滴LCB3588开发板,根据其Android11源码进行修改添加

1. 相关驱动添加 — 挂载EC20硬件

添加 USB接口 EC20 进行 4G 通信需要先将硬件设备挂载到系统内核上。

1.1. qmi_wwan_q 驱动

qmi_wan 是 Linux 内核中的一个 USB 驱动程序,用于支持基于 QMI(Qualcomm MSM Interface)协议的 USB 无线宽带设备。驱动文件源码:Quectel_Linux_Android_QMI_WWAN_Driver_V1.2.6.zip
qmi_wwan_q.c 添加到 kernel-5.10/drivers/net/usb/qmi_wwan_q.c 目录下

  • 对应 Makefile 修改

    diff --git a/kernel-5.10/drivers/net/usb/Makefile 
    		   b/kernel-5.10/drivers/net/usb/Makefile
    index 99fd12b..32228ef 100644
    --- a/kernel-5.10/drivers/net/usb/Makefile
    +++ b/kernel-5.10/drivers/net/usb/Makefile
    @@ -37,7 +37,8 @@ obj-$(CONFIG_USB_NET_CX82310_ETH)     += cx82310_eth.o
    obj-$(CONFIG_USB_NET_CDC_NCM)  += cdc_ncm.o
    obj-$(CONFIG_USB_NET_HUAWEI_CDC_NCM)   += huawei_cdc_ncm.o
    obj-$(CONFIG_USB_VL600)                += lg-vl600.o
    -obj-$(CONFIG_USB_NET_QMI_WWAN) += qmi_wwan.o
    +#obj-$(CONFIG_USB_NET_QMI_WWAN)        += qmi_wwan.o
    +obj-$(CONFIG_USB_NET_QMI_WWAN) += qmi_wwan_q.o
    obj-$(CONFIG_USB_NET_CDC_MBIM) += cdc_mbim.o
    obj-$(CONFIG_USB_NET_CH9200)   += ch9200.o
    obj-$(CONFIG_USB_NET_AQC111)   += aqc111.o
    
1.2. option.c 添加 EC20

向 option.c 中添加 EC20 相关信息并重新编入内核。 (重新提供修改后的option.c,见文未)

1.3. 验证 EC20 挂载
  • 编译完成后使用 adb shell 验证驱动是否编入内核( wwan0 设备为 EC20 的网络设备 ):

    evk_8mp:/ $ adb shell
    evk_8mp:/ $ ifconfig wwan0                                                             
    wwan0     Link encap:UNSPEC    Driver qmi_wwan_q
              NOARP  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
              collisions:0 txqueuelen:1000 
              RX bytes:0 TX bytes:0
    
2. 添加RIL库

Android 12使用的RIL版本:Quectel_Android_RIL_Driver_V3.6.14_master_Release_ndk_20231013_10_54

  • RIL 编入 Android 系统:

    将特定版本的 libreferece-ril.so 拷贝到SDK device/rockchip/common/libquectel-ril/arm64-v8a/libreferece-ril.so 目录下编译;

    注:ndk版本只需要修改 libreferece-ril.so ,libril.so不需要修改。

2.1. RIL 服务声明

用于启动 RIL Daemon(Radio Interface Layer Daemon)。(RIL Daemon 是 Android 系统中用于处理与无线电通信(比如移动网络)相关的功能的后台进程。)在 device/rockchip/rk3588/init.rk3588.rc 目录下添加如下内容:

service ril-daemon /vendor/bin/hw/rild -l <libreference-ril path>
 class main
 user radio
 group radio cache inet misc audio sdcard_rw log
 capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
  • service 表明这是一个服务声明

  • vendor.ril-daemon 是服务的名称,表示这是供应商(vendor)提供的 RIL Daemon 服务

  • /vendor/bin/hw/rild 是服务的可执行文件路径,即 RIL Daemon 的二进制文件的位置

  • -l /vendor/lib64/libreference-ril.so 表示 RIL Daemon 将加载的库文件的路径,这里是 libreference-ril.so

  • **class main**指定了服务的类别,这里是 main 类别。main 类别通常表示这是一个主要的系统服务

  • **user radio**指定了服务的运行用户,这里是 radio 用户

  • **group radio cache inet misc audio log readproc wakelock**指定了服务的运行组,这里列出了多个组,包括 radiocacheinetmiscaudiologreadprocwakelock

  • **capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW**指定了服务的 Linux 能力(Linux capabilities)。这些能力用于提供特定的权限。在这里,包括 BLOCK_SUSPENDNET_ADMINNET_RAW

2.2. 配置自动RILD拨号

Android系统中的 /vendor/etc/vintf/manifest.xml 文件一般是由SDK中 device/设备名/manifest.xml 进行导入,RK3588厂商对其进行了定制修改,由 device/rockchip/common/manifests/manifest_level_31.xml 进行配置。

device/rockchip/common/manifests/manifest_level_31.xml 中添加如下内容:

<hal format="hidl">
   <name>android.hardware.radio</name>
   <transport>hwbinder</transport>
     <fqname>@1.1::IRadio/slot1</fqname>
     <fqname>@1.1::ISap/slot1</fqname>
</hal>

修改后在 hardware/interfaces/compatibility_matrices/compatibility_matrice.6.xml 中查看是否兼容 @1.1::IRadio/slot1 和 @1.1::ISap/slot1 ,修改如下:

<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>				<!-- 兼容添加:1.1::IRadio/slot1 -->
    <interface>
        <name>IRadio</name>
        <instance>slot1</instance>		<!-- 兼容添加:1.1::IRadio/slot1 -->
        <instance>slot2</instance>
        <instance>slot3</instance>
    </interface>
</hal>
<hal format="hidl" optional="true">
    <name>android.hardware.radio</name>
    <version>1.1</version>				<!-- 兼容添加:1.1::ISap/slot1 -->
    <interface>
        <name>ISap</name>				<!-- 兼容添加:1.1::ISap/slot1 -->
        <instance>slot1</instance>
    </interface>
</hal>
<hal format="hidl" optional="true">
    <name>android.hardware.radio.config</name>
    <!--
        See compatibility_matrix.4.xml on versioning of radio config HAL.
        -->
    <version>1.1</version>
    <!-- <version>1.2</version> -->
    <version>1.0</version>
    <interface>
        <name>IRadioConfig</name>
        <instance>default</instance>
    </interface>
</hal>
3. 设备文件权限和属性的设置

EC20设备会转出4个USB串口,若不修改设备权限会导致上层无法使用。

  • 临时权限

chmod 777 /dev/ttyUSB* # 临时使用直接chmod进行权限开放


- **永久权限**

添加 **mkcombinedroot/vendor/ueventd.rc** 内容如下:

```sh
/dev/ttyUSB* 0660 radio radio
/dev/ttyACM* 0660 radio radio
/dev/cdc-wdm* 0660 radio radio
/dev/qcqmi* 0660 radio radio
/dev/cdc-acm* 0660 radio radio
/dev/ttyUSB* 	0660 		radio 		radio
# 设备文件		设备权限	设备所有者	设备所有者所在组
4. 验证

编译完成后烧写至开发板:

asu@asu:~$ adb root & adb remount & adb shell
rk3588_s: cat /vendor/etc/vintf/manifest.xml  # 复制到本机修改内容如5.1
rk3588_s: adb push manifest.xml /vendor/etc/vintf/ # push到3588
rk3588_s: adb shell
rk3588_s: sync
rk3588_s: find -name "*.xml" 2>/dev/null | xargs grep IRadio   
# 查看是否修改<fqname>@1.1::IRadio/slot</fqname>
rk3588_s: reboot  # 重启更新修改
asu@asu:~$ adb root & adb remount & adb shell
rk3588_s: ifconfig -a      # 查看是否有wwan0 网络设备(需要多等一会)
rk3588_s: ping www.baidu.com # ping通即通信成功

若通信失败,修改 vendor/etc/vintf/manifest.xml 中 android.hardware.radio 部分,如下:

<hal format="hidl">
 <name>android.hardware.radio</name>
 <transport>hwbinder</transport>
 <fqname>@1.1::IRadio/slot1</fqname>  #修改为1.1
 <fqname>@1.1::ISap/slot1</fqname>    #修改为1.1
</hal>

修改后再次重启测试。

5. 上述修改所需文件获取

相关文件存放在合肥服务器:192.168.10.100/upload/data/RK3588-Android12添加4G所需文件.zip

RK3588-Android12添加4G所需文件/
├── option.c
├── qmi_wwan_q.c
├── Quectel_Android_RIL_Driver_V3.6.14_master_Release.rar
└── Quectel_Linux_Android_QMI_WWAN_Driver_V1.2.6.zip

0 directories, 4 files

使用资源与IMX8MP通用

标签:USB,RK3588,RIL,添加,radio,EC20,4G,NET,1.1
From: https://blog.csdn.net/Fearlessness/article/details/140689827

相关文章

  • RK3588 RKNN环境部署
    前言,官方提供两种部署环境,其中按照官方说法为了完全运行RKNN环境采用Docker的部署环境方案。1.安装Docker环境 (1)检查卸载老版本Docker sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc (2)安装Docker依赖 sudoapt-getinstallca-certifica......
  • CF1684G Euclid Guess
    很需要直觉的一个题,想到关键就很简单了首先注意到允许输出的数对数量很多,完全不用考虑\(2\times10^4\)的限制,那么直觉就是让每个pair产生尽可能少的数首先考虑怎么能只产生一个数,不妨设这个数为\(x\),则最小的pair只能取\((3x,2x)\),因此\(\le\frac{m}{3}\)的数都是能......
  • 【RK3588】正点原子RK3588开发板,旗舰八核、性能强悍!
    正点原子RK3588开发板采用瑞芯微RK3588高性能八核处理器(四核ARM Cortex-A76+四核ARMCortex-A55),支持8K视频编解码,6TOPS超强NPU算力,外设/接口资源丰富,同时提供丰富的开发资料助力开发者更加快速的上手、产品快速落地!RK3588是一颗高性能、低功耗的应用处理器芯片,集成4个Cor......
  • 4g模块安全方案升级引发的一系列问题
    用usb转ttl给4g模块升级(模块串口),升级失败问题新买的串口,ttl、rs232、rs485三合一的,需要配置,是工具的问题升级成功后,用智慧屏的卡,插入到卡槽中,验证卡槽接线是否正常A台正常,B台有问题(红灯闪缩频率是慢的)查找B台设备为啥红灯闪烁慢的问题发送AT+CPIN指令,4g模块没有回复,即可推......
  • RK3588 tinyalsa_hal添加一个自定义声卡输入和输出
    一、添加输出声卡输出流程图:在声卡列表snd_out_sound_cards里添加一个自己的声卡,比如---a/tinyalsa_hal/audio_hw.h+++b/tinyalsa_hal/audio_hw.h@@-216,6+216,7@@enumsnd_out_sound_cards{SND_OUT_SOUND_CARD_SPDIF,SND_OUT_SOUND_CARD_SPDIF_1,......
  • [附开题]flask框架的基于web的小区疫情防控信息管理系统ca4gz(python+源码)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景近年来,全球公共卫生事件频发,特别是新冠疫情的爆发,对社区管理提出了前所未有的挑战。小区作为城市的基本单元,其疫情防控的效率和效果直接关......
  • 2024go语言micro框架搭建踩坑解决(go版本: 1.22.5, 操作系统: ubuntu24.04, 感觉坑和
    在这两天准备学习go语言微服务相关东西时要使用micro框架,因为看的视频是用的低版本go编译器和GOPATH,使用的是旧版本的micro框架,因为找不到和视频对应的框架版本,下载了半天跑不动网上一搜全是22,21甚至更早的搭建micro的文档,很到东西现在不适应了(比如"github.com/golang/pr......
  • 开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)
    前言本文适用开发环境:Windows开发环境:Windows764bit、Windows1064bitLinux开发环境:Ubuntu14.04.364bit虚拟机:VMware15.1.0U-Boot:U-Boot-2017.01Kernel:Linux-4.9.0、Linux-RT-4.9.0进行本文档操作前,请先按照调试工具安装、Linux开发环境搭建相关文档,安装......
  • 可扩展的单核至四核[email protected]工业级核心板规格书
    1核心板简介 创龙科技SOM-TL62x是一款基于TISitara系列AM62x单/双/四核ARMCortex-A53+单核ARMCortex-M4F多核处理器设计的高性能低功耗工业核心板,通过工业级B2B连接器引出2xTSNEthernet、9xUART、3xCAN-FD、GPMC、2xUSB2.0、CSI、DISPLAY等接口。处理器ARMCortex-A......
  • 中移ML307R(4G Cat1,C-SDK,OpenCPU)模组学习开发-AT指令测试
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307R_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>   AT指令手册(串口默认通信波特......