技术专栏
RK3568 开发板 安卓系统之4G模块驱动调试(十四)
4.11 在RK3568开发板上调试4G(EC20)驱动
4.11.1 查看 RK3568 关于4G模块的原理图,获取需要配置的信息
4.11.2 需要配置的信息如下
1 4G模块电源使能引脚GPIO4_C3
2 4G模块W_DISABLE1引脚GPIO4_B5
3 4G模块复位引脚GPIO4_B4
4.11.3 DTS配置如下
{
rk_modem: rk-modem {
compatible="4g-modem-platdata";
pinctrl-names = "default";
pinctrl-0 = <<e_vbat <e_reset <e_pwr>;
4G,vbat-gpios = <&gpio4 RK_PC3 GPIO_ACTIVE_HIGH>;
4G,power-gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>;
4G,reset-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
4.11.4 内核驱动增加对EC20的支持
由于改动较多,步骤不详细叙说,具体参数移远提供的移植文档《Quectel_LTE&5G_Linux_USB_Driver_User_Guide_V2.0.pdf》,说得很详细。
修改驱动
4.11.5 关闭selinux,打开4G模块支持
diff --git a/device/rockchip/common/BoardConfig.mk b/device/rockchip/common/BoardConfig.mk
index e28fd4b43d..5a34fe5996 100755
--- a/device/rockchip/common/BoardConfig.mk
+++ b/device/rockchip/common/BoardConfig.mk
@@ -59,7 +59,7 @@ BOARD_BOOT_HEADER_VERSION ?= 2
BOARD_MKBOOTIMG_ARGS :=
BOARD_PREBUILT_DTBOIMAGE ?= $(TARGET_DEVICE_DIR)/dtbo.img
BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE ?= false
-BOARD_SELINUX_ENFORCING ?= true
+BOARD_SELINUX_ENFORCING ?= false
# Use the non-open-source parts, if they're present
TARGET_PREBUILT_KERNEL ?= kernel/arch/arm/boot/zImage
@@ -439,9 +439,9 @@ BOARD_WIFI_SUPPORT ?= true
#for rk 4g modem
BOARD_HAS_RK_4G_MODEM ?= false
-ifeq ($(strip $(BOARD_HAS_RK_4G_MODEM)),true)
-DEVICE_MANIFEST_FILE += device/rockchip/common/4g_modem/manifest.xml
-endif
+# ifeq ($(strip $(BOARD_HAS_RK_4G_MODEM)),true)
+# DEVICE_MANIFEST_FILE += device/rockchip/common/4g_modem/manifest.xml
+# endif
#USE_CLANG_PLATFORM_BUILD ?= true
4.11.6 去掉原有vendor.rild.libpath配置
diff --git a/device/rockchip/common/device.mk b/device/rockchip/common/device.mk
index 917e8b909a..4d83c11d24 100644
--- a/device/rockchip/common/device.mk
+++ b/device/rockchip/common/device.mk
@@ -273,8 +273,8 @@ PRODUCT_PROPERTY_OVERRIDES += \
ro.telephony.default_network=9
ifeq ($(strip $(TARGET_ARCH)), arm64)
-PRODUCT_PROPERTY_OVERRIDES += \
- vendor.rild.libpath=/vendor/lib64/librk-ril.so
+# PRODUCT_PROPERTY_OVERRIDES += \
+# vendor.rild.libpath=/vendor/lib64/librk-ril.so
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/4g_modem/bin64/dhcpcd:$(TARGET_COPY_OUT_VENDOR)
/bin/dhcpcd \
4.11.7 去掉电话功能
diff --git a/device/rockchip/common/init.rk30board.rc b/device/rockchip/commo
n/init.rk30board.rc
index 6b8f9ec25d..cf913d114a 100755
--- a/device/rockchip/common/init.rk30board.rc
+++ b/device/rockchip/common/init.rk30board.rc
@@ -253,9 +253,9 @@ on property:persist.internet_adb_enable=0
restart adbd
# for telephony function
-on property:ro.boot.noril=true
- setprop ro.radio.noril true
- stop ril-daemon
+#on property:ro.boot.noril=true
+# setprop ro.radio.noril true
+# stop ril-daemon
# set ro.serialno
on property:vendor.serialno=*
4.11.8 添加4G模块的hidl配置
diff --git a/device/rockchip/common/manifest.xml b/device/rockchip/common/man
ifest.xml
index 18ed438f6e..f3c7ce172a 100755
--- a/device/rockchip/common/manifest.xml
+++ b/device/rockchip/common/manifest.xml
@@ -66,6 +66,31 @@
<instance>default</instance>
</interface>
</hal>
+ <hal format="hidl">
+ <name>android.hardware.radio</name>
+ <transport>hwbinder</transport>
+ <fqname>@1.1::IRadio/slot1</fqname>
+ <fqname>@1.1::IRadio/slot2</fqname>
+ <fqname>@1.2::ISap/slot1</fqname>
+ </hal>
+ <hal format="hidl">
+ <name>android.hardware.radio.deprecated</name>
+ <transport>hwbinder</transport>
+ <version>1.0</version>
+ <interface>
+ <name>IOemHook</name>
+ <instance>slot1</instance>
+ </interface>
+ </hal>
+ <hal format="hidl">
+ <name>android.hardware.radio.config</name>
+ <transport>hwbinder</transport>
+ <version>1.0</version>
+ <interface>
+ <name>IRadioConfig</name>
+ <instance>default</instance>
+ </interface>
+ </hal>
<kernel target-level="5"/>
</manifest>
4.11.9 修改file_contexts文件
diff --git a/device/rockchip/common/sepolicy/vendor/file_contexts b/device/ro
ckchip/common/sepolicy/vendor/file_contexts
index 03f49c0111..7db021dc61 100644
--- a/device/rockchip/common/sepolicy/vendor/file_contexts
+++ b/device/rockchip/common/sepolicy/vendor/file_contexts
@@ -222,3 +222,10 @@
/vendor/bin/flash_img.sh u:object_r:vendor_install_recovery_exec:s0
# vibrator aidl
/(vendor|system/vendor)/bin/hw/android\.hardware\.vibrator-service\.rockchip
u:object_r:hal_vibrator_default_exec:s0
+
+/dev/ttyUSB[0-9] u:object_r:radio_device:s0
+/dev/ttyACM[0-9] u:object_r:radio_device:s0
+/dev/cdc-wdm[0-9] u:object_r:radio_device:s0
+/dev/qcqmi[0-9] u:object_r:radio_device:s0
+/vendor/bin/hw/rild u:object_r:rild_exec:s0
+/dev/socket/rildOemHook u:object_r:rild_socket:s0
4.11.10 添加rild.te文件,内容如下
diff --git a/device/rockchip/common/sepolicy/vendor/rild.te b/device/rockchip
/common/sepolicy/vendor/rild.te
new file mode 100644
index 0000000000..03ec17da4c
--- /dev/null
+++ b/device/rockchip/common/sepolicy/vendor/rild.te
@@ -0,0 +1 @@
+allow rild self:packet_socket { create bind write read };
\ No newline at end of file
4.11.11 修改ueventd.rockchip.rc文件,给4G模块读写权限
diff --git a/device/rockchip/common/ueventd.rockchip.rc b/device/rockchip/com
mon/ueventd.rockchip.rc
index 8b92518050..ce7e01bb6a 100755
--- a/device/rockchip/common/ueventd.rockchip.rc
+++ b/device/rockchip/common/ueventd.rockchip.rc
@@ -192,3 +192,10 @@
# for sensors
/dev/input/event* 0666 input system
+
+#quectel port
+/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
\ No newline at end of file
4.11.12 将移植提供的libquectel-ril整个拷贝到device/rockchip/rk356x/目录下并改名为ec20
4.11.13 添加4G模块vendor.rild.libpath的配置
diff --git a/device/rockchip/rk356x/rk3568_aybering/rk3568_aybering.mk b/device/rockchip/rk356x/rk3568_aybering/rk3568_aybering.mk
index 9f2d30b7dc..5dffe5e74c 100644
--- a/device/rockchip/rk356x/rk3568_aybering/rk3568_aybering.mk
+++ b/device/rockchip/rk356x/rk3568_aybering/rk3568_aybering.mk
@@ -43,3 +43,18 @@ PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=160
PRODUCT_PROPERTY_OVERRIDES += ro.wifi.sleep.power.down=true
PRODUCT_PROPERTY_OVERRIDES += persist.wifi.sleep.delay.ms=0
PRODUCT_PROPERTY_OVERRIDES += persist.bt.power.down=true
+
+#20220821 hale 添加4g模块
+PRODUCT_MODEM := EC20
+ifeq ($(strip $(PRODUCT_MODEM)), EC20)
+BOARD_HAS_RK_4G_MODEM := true
+
+PRODUCT_PROPERTY_OVERRIDES += \
+ vendor.rild.libpath=/vendor/lib64/hw/libreference-ril.so
+#PRODUCT_PROPERTY_OVERRIDES += \
+# vendor.rild.libargs=-d /dev/ttyUSB2
+
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/../ec20/arm64-v8a/libreference-ril.so:vendor/lib64/hw/libreference-ril.so
+endif
+#20220821 hale 添加4g模块结束
\ No newline at end of file
4.11.14 修改system/core/init/devices.cpp文件
diff --git a/system/core/init/devices.cpp b/system/core/init/devices.cpp
index 9fbec641be..feb517fe08 100644
--- a/system/core/init/devices.cpp
+++ b/system/core/init/devices.cpp
@@ -492,6 +492,8 @@ void DeviceHandler::HandleUevent(const Uevent& uevent) {
int device_id = uevent.minor % 128 + 1;
devpath = StringPrintf("/dev/bus/usb/%03d/%03d", bus_id, device_id);
}
+ } else if (uevent.subsystem == "usbmisc" && !uevent.device_name.empty()) {
+ devpath = "/dev/" + uevent.device_name;
} else if (StartsWith(uevent.subsystem, "usb")) {
// ignore other USB events
return;
4.11.15 修改hardware/ril/rild/rild.rc文件
diff --git a/hardware/ril/rild/rild.rc b/hardware/ril/rild/rild.rc
index f6beb5468f..d259206f70 100644
--- a/hardware/ril/rild/rild.rc
+++ b/hardware/ril/rild/rild.rc
@@ -1,5 +1,5 @@
service vendor.ril-daemon /vendor/bin/hw/rild
class main
- user radio
- group radio cache inet misc audio log readproc wakelock
+ user root
+ group radio cache inet misc audio sdcard_rw log
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
4.11.16 修改vendor/rockchip/common/phone/etc/apns-full-conf.xml文件,支持物联网卡
diff --git a/vendor/rockchip/common/phone/etc/apns-full-conf.xml b/vendor/rockchip/common/phone/etc/apns-full-conf.xml
index 5718e10ae8..67cdc2b1c2 100644
--- a/vendor/rockchip/common/phone/etc/apns-full-conf.xml
+++ b/vendor/rockchip/common/phone/etc/apns-full-conf.xml
@@ -35498,4 +35498,10 @@
mvno_type="spn"
mvno_match_data="IENTC"
/>
+ <apn carrier="China Telecom" mcc="460" mnc="11" apn="ctnet" type="default,supl" />
+ <apn carrier="中国移动物联网4G" mcc="460" mnc="04" apn="cmiot" type="default,supl" />
+ <apn carrier="中国移动物联网2G" mcc="460" mnc="04" apn="cmmtm" type="default,supl" />
+ <apn carrier="中国联通物联网gzm2mapn" mcc="460" mnc="06" apn="unim2m.gzm2mapn" port="80" type="default,supl" />
+ <apn carrier="中国联通物联网njm2mapn" mcc="460" mnc="06" apn="unim2m.njm2mapn" type="default,supl" />
+ <apn carrier="中国电信物联网m2m" mcc="460" mnc="03" apn="CTNET" user="m2m" password="vnet.mobi" type="default" />
</apns>
4.11.17 修改device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml文件
diff --git a/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml b/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
index 9feb244b2c..2bacfc2ed1 100755
--- a/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
@@ -31,6 +31,14 @@
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>"wifi,1,1,2,-1,true"</item>
+ <item>"mobile,0,0,0,-1,true"</item>
+ <item>"mobile_mms,2,0,2,60000,true"</item>
+ <item>"mobile_supl,3,0,2,60000,true"</item>
+ <item>"mobile_dun,4,0,2,60000,true"</item>
+ <item>"mobile_hipri,5,0,3,60000,true"</item>
+ <item>"mobile_fota,10,0,2,60000,true"</item>
+ <item>"mobile_ims,11,0,2,60000,true"</item>
+ <item>"mobile_cbs,12,0,2,60000,true"</item>
<item>"bluetooth,7,7,0,-1,true"</item>
<item>"ethernet,9,9,9,-1,true"</item>
</string-array>
4.11.18 编译固件后,烧写固件验证
在启动的时候,可以看到串口打印有以下信息,说明正常识别到EC20的PID和VID了
[ 8.606334] usb 1-1.2: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice= 3.18
[ 8.606363] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8.606370] usb 1-1.2: Product: Android
[ 8.606375] usb 1-1.2: Manufacturer: Android
[ 8.607844] option 1-1.2:1.0: GSM modem (1-port) converter detected
[ 8.608369] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[ 8.608901] option 1-1.2:1.1: GSM modem (1-port) converter detected
[ 8.609821] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
[ 8.610600] option 1-1.2:1.2: GSM modem (1-port) converter detected
[ 8.611158] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB2
[ 8.611731] option 1-1.2:1.3: GSM modem (1-port) converter detected
[ 8.612197] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB3
[ 8.613625] qmi_wwan_q 1-1.2:1.4: cdc-wdm0: USB WDM device
[ 8.613958] qmi_wwan_q 1-1.2:1.4: Quectel Android work on RawIP mode
[ 8.614960] qmi_wwan_q 1-1.2:1.4: rx_urb_size = 1520
[ 8.615723] qmi_wwan_q 1-1.2:1.4 wwan0: register 'qmi_wwan_q' at usb-fd800000.usb-1.2, WWAN/QMI device, b6:5a:cb:79:19:c1
开机会,等一段时间后,可以看到在状态栏上有4G图标了,执行以下操作
rk3568_aybering:/ # ifconfig
wwan0 Link encap:Ethernet HWaddr b6:5a:cb:79:19:c1 Driver qmi_wwan_q
inet addr:10.9.62.219 Mask:255.255.255.248
inet6 addr: 240e:47d:32e0:527b:b45a:cbff:fe79:19c1/64 Scope: Global
inet6 addr: 240e:47d:32e0:527b:557b:bafa:c6e:3fe6/64 Scope: Global
inet6 addr: fe80::b45a:cbff:fe79:19c1/64 Scope: Link
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1107 TX bytes:1442
...
rk3568_aybering:/ # ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=54 time=65.8 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=54 time=69.7 ms
64 bytes from 14.215.177.39: icmp_seq=3 ttl=54 time=69.5 ms
64 bytes from 14.215.177.39: icmp_seq=4 ttl=54 time=76.8 ms
64 bytes from 14.215.177.39: icmp_seq=5 ttl=54 time=71.4 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 65.851/70.665/76.806/3.566 ms
rk3568_aybering:/ #
通过以上信息,可以看到,已经可以正常联网了。
4.11.19 调试过程中碰到的问题,能正常上网,但没图标
问题是在device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml添加信息不全造成的。
<item>"mobile,0,0,0,-1,true"</item>
特别说明
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
1
1
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:18179次2022-09-30 16:51:48
-
浏览量:2645次2022-09-30 16:48:25
-
浏览量:4081次2022-10-11 10:48:08
-
浏览量:6597次2022-10-08 14:00:42
-
浏览量:7933次2022-10-13 19:26:04
-
浏览量:9434次2022-10-12 09:28:15
-
浏览量:10295次2022-10-09 15:56:41
-
浏览量:9733次2022-10-10 11:27:15
-
浏览量:2760次2022-10-28 09:28:29
-
浏览量:6600次2022-10-09 10:20:09
-
浏览量:4943次2022-09-30 16:40:59
-
浏览量:8184次2022-10-17 11:49:55
-
浏览量:11454次2022-10-18 09:33:58
-
浏览量:7518次2022-10-10 20:15:42
-
浏览量:2537次2022-09-30 16:46:03
-
浏览量:6002次2022-10-08 13:56:28
-
浏览量:32835次2022-06-11 11:06:24
-
浏览量:5142次2022-07-13 15:47:15
-
浏览量:2981次2021-06-15 09:44:15
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
万万没想到
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注