当前位置: 首页>編程日記>正文

rk3568 LTE(N720)

rk3568 LTE(N720)

rk3566/rk3568 Android11 移植4G n720

Android11 使用 wwan 驱动正常移植 n720, 本篇为您简述 n720 移植过程。

提示:此文章为 rk3568 移植 n720,下一篇 rk3568 移植 m750。


文章目录

  • rk3566/rk3568 Android11 移植4G n720
    • 准备
    • 1. kernel n720 usb 驱动
      • 1.1 内核驱动
      • 1.2 增加上电时序控制
      • 1.3 内核驱动验证
      • 1.4 添加权限
    • 2 开启 rild 服务
      • 2.1 平台信息修改
      • 2.2 更替 ppp拨号工具
      • 2.3 网络配置
      • Tips
  • 结语


准备

  • 下载 rild 驱动

1. kernel n720 usb 驱动

1.1 内核驱动

内核默认支持 n720,内核仅需要处理是上电时序。

1.2 增加上电时序控制

查看原理图中 n720 模组上电时序控制。此模组与 EC20 兼容,如果已移植ec20,请忽略此步骤 — dts 配置上电次数
在这里插入图片描述
n720 disable 由gpio1_B5控制,设备树中使用 power 控制信号;
n720 reset 由于gpio1_A2控制,设备树中使用 reset 控制信号;
在这里插入图片描述
n720 供电由于gpio3_A6控制,设备树中使用 vbat 控制信号;

# 新增设备描述节点要 在根节点上添加/ {
+       rk_modem: rk-modem {
+               compatible="4g-modem-platdata";
+               pinctrl-names = "default";
+               pinctrl-0 = <&lte_vbat &lte_power_en &lte_reset>;
+               4G,vbat-gpio = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>; #n720 vbat控制pin
+               4G,power-gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; #n720 power控制 pin
+               4G,reset-gpio = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>; #n720 复位pin
+       };# 增加pinctrl 设定
&pinctrl {
+       rk-modem {
+               lte_vbat: lte-vbat {
+                       rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               lte_power_en: lte-power-en {
+                       rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               lte_reset: lte-reset {
+                       rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+

1.3 内核驱动验证

编译内核完成后,刷机验证可正常识别到 n720, 并生成 /dev/ttyUSBx节点,则证明驱动移植完成。如果所有组 所有者不是radio,则需要添加权限。如果未生成 /dev/cdc-wdm0 节点,请继续 system/core 移植驱动。

$ ls /dev/ttyUSB[0-3] -lh
crw-rw---- 1 radio radio 188,   0 2022-06-22 19:44 /dev/ttyUSB0
crw-rw---- 1 radio radio 188,   1 2022-06-22 19:44 /dev/ttyUSB1
crw-rw---- 1 radio radio 188,   2 2022-06-22 20:05 /dev/ttyUSB2
crw-rw---- 1 radio radio 188,   3 2022-06-22 19:44 /dev/ttyUSB3
$ ls /dev/cdc-wdm* -lh
crw-rw---- 1 radio radio 180, 176 2022-06-23 10:26 /dev/cdc-wdm0

system/core/init/devices.cpp

--- a/init/devices.cpp
+++ b/init/devices.cpp
@@ -492,6 +492,11 @@ void DeviceHandler::HandleUevent(const Uevent& uevent) {int device_id = uevent.minor % 128 + 1;devpath = StringPrintf("/dev/bus/usb/%03d/%03d", bus_id, device_id);}
+#if 1 //add by quectel for mknod /dev/cdc-wdm0
+    } else if (uevent.subsystem == "usbmisc" && !uevent.device_name.empty()) {
+        devpath = "/dev/" + uevent.device_name;
+#endif
+} else if (StartsWith(uevent.subsystem, "usb")) {

1.4 添加权限

rk3566 rk3568 在 device/rockchip/common/ueventd.rockchip.rc 怎加权限

+/dev/ttyUSB*            0660    radio   radio
/dev/ttyACM*            0660    radio   radio

2 开启 rild 服务

n720 相关库以及拨号脚本需要找模组供应商索要包含 rild 拨号文件和相关依赖库的资料;部分厂家资料比较齐全,已经写好 seLinux 文件,可按图索骥一并移植。
特别注意:模组厂家的rild服务因权限不同导致 rild服务缺少 seLinux权限无法正常启动,建议先关闭 seLinux 调试 ;待上网成功后再处理 seLinux 权限

关闭 seLinux 方法 请参照rk3568 LTE(EC20 ) 移植文档 2.1章节。

2.1 平台信息修改

k3568 为 64bit CPU, 选用下载 rild 驱动包中 libquectel-ril\arm64-v8a\ 中 libreference-ril.so 拷贝到 device/rockchip/common/4g_modem/lib64/ 并重命名为 libreference-ril.n720.so;
增加 n720 拨号库拷贝命令和依赖库引用信息 device/rockchip/common/device.mk

diff --git a/device.mk b/device.mk
index 406f19b..c1b5dd3 100755
--- a/device.mk
+++ b/device.mk
@@ -274,11 +274,13 @@ PRODUCT_PROPERTY_OVERRIDES += \ifeq ($(strip $(TARGET_ARCH)), arm64)PRODUCT_PROPERTY_OVERRIDES += \
-               vendor.rild.libpath=/vendor/lib64/librk-ril.so
+               vendor.rild.libargs=-d /dev/ttyUSB2 \
+               vendor.rild.libpath=/vendor/lib64/hw/libreference-ril.n720.soPRODUCT_COPY_FILES += \$(LOCAL_PATH)/4g_modem/bin64/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
-               $(LOCAL_PATH)/4g_modem/lib64/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librk-ril.so
+               $(LOCAL_PATH)/4g_modem/lib64/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librk-ril.so \
+               $(LOCAL_PATH)/4g_modem/lib64/libreference-ril.n720.so:$(TARGET_COPY_OUT_VENDOR)/lib64/hw/libreference-ril.n720.soelse

maniest 增加 HAL 属性信息 与 ec20 移植相同,如果未移植请参照 rk3568 LTE(EC20)
device/rockchip/common/4g_modem/manifest.xml

diff --git a/4g_modem/manifest.xml b/4g_modem/manifest.xml
index 9a19b3c..8c93c6b 100644
--- a/4g_modem/manifest.xml
+++ b/4g_modem/manifest.xml
@@ -2,6 +2,11 @@<hal format="hidl"><name>android.hardware.radio</name><transport>hwbinder</transport>
+        <version>1.0</version>
+        <interface>
+            <name>IRadio</name>
+            <instance>slot1</instance>
+        </interface><fqname>@1.1::IRadio/slot1</fqname><fqname>@1.1::IRadio/slot2</fqname><fqname>@1.2::ISap/slot1</fqname>

开启4G 模组相关平台宏定义
device/rockchip/rk356x/rk3566_r/BoardConfig.mk

BoardConfig.mk:18:BOARD_HAS_RK_4G_MODEM := true

2.2 更替 ppp拨号工具

rk3568 工具保存在 vendor/rockchip/common/phone 目录中为防止拨号工具不兼容单独增加目录存储 n720 的相关工具。
rk3568 为 64bit CPU, 选用下载 rild 驱动包中 libquectel-ril\arm64-v8a\ 中 ip-up, ip-down, chat 文件,放到 vendor/rockchip/common/phone/etc/ppp64/n720 (n720 须手动创建)。

diff --git a/phone/phone.mk b/phone/phone.mk
index 285d016c..010f87b3 100755
--- a/phone/phone.mk
+++ b/phone/phone.mk
@@ -6,13 +6,13 @@ CUR_PATH := vendor/rockchip/common#########################################################ifeq ($(strip $(TARGET_ARCH)), arm64)PRODUCT_COPY_FILES += \
-    $(CUR_PATH)/phone/etc/ppp64/ip-down:system/etc/ppp/ip-down \
-    $(CUR_PATH)/phone/etc/ppp64/ip-up:system/etc/ppp/ip-up \
+    $(CUR_PATH)/phone/etc/ppp64/n720/ip-down:system/etc/ppp/ip-down \
+    $(CUR_PATH)/phone/etc/ppp64/n720/ip-up:system/etc/ppp/ip-up \$(CUR_PATH)/phone/etc/ppp/call-pppd:system/etc/ppp/call-pppd \$(CUR_PATH)/phone/etc/operator_table:system/etc/operator_table \
-    $(CUR_PATH)/phone/etc/ppp64/ip-down:system/bin/ip-down \
-    $(CUR_PATH)/phone/etc/ppp64/ip-up:system/bin/ip-up \
-    $(CUR_PATH)/phone/etc/ppp64/chat:system/bin/chat
+    $(CUR_PATH)/phone/etc/ppp64/n720/ip-down:system/bin/ip-down \
+    $(CUR_PATH)/phone/etc/ppp64/n720/ip-up:system/bin/ip-up \
+    $(CUR_PATH)/phone/etc/ppp64/n720/chat:system/bin/chatelsePRODUCT_COPY_FILES += \$(CUR_PATH)/phone/etc/ppp/ip-down:system/etc/ppp/ip-down \

2.3 网络配置

增加 4G modem 网络配置,否则看不到 SIM 卡图标和信号指示。可参照 rk3568 LTE (EC20) 2.4 小节 配置如下路径文件
device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml

Tips

查看 LTE 模组运行状态方法。如果可以看到基带版本和 SIM卡类型,证明驱动和 libreference 库正常加载。

adb root;adb shell
getprop gsm.operator.alpha
[gsm.operator.alpha]: [CHN-UNICOM]

如果看到 rild 服务正常运行但是无法联网,请从以下几点排查问题:
a) 4G 模组是否安装天线,天线是否松动
b) 安装的 SIM 是否欠费
c) APNS.xml 拨号配置文件是否正常
d) 当前环境是否有强信号屏蔽,对比手机信号即可排查问题

getprop init.svc.vendor.ril-daemon
[init.svc.vendor.ril-daemon]: [running]

如果 rild 服务显示 stopped;可能因 selinux 权限问题,手动关闭 selinux 再重启 rild
可正常联网;原因定位到 缺少 selinux 权限,后面文章会讲 selinux 权限配置

stop vendor.ril-daemon #关闭 rild
start vendor.ril-daemon #开启 rild

结语

从前本无路,走的人多了就变成了路。


https://www.fengoutiyan.com/post/13358.html

相关文章:

  • RK3228A
  • rk3566固件
  • rk3566参数
  • rk8051
  • media tek mt6873 5g
  • rk3566 固件
  • rk836说明书
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機