瑞芯微Rockchip开发者社区
直播中

fejlkel

8年用户 1046经验值
擅长:制造/封装
私信 关注
[问答]

如何去实现RK3568-ANDROID11-4G-EC20移远模块的设计呢

如何去实现RK3568-ANDROID11-4G-EC20移远模块的设计呢?

回帖(1)

史靖文

2022-3-2 15:31:36
  先要获得技术步骤支持
  一,先在USB模块上完成4G
  步骤二,移植到PCIE子座上
  磨刀不费砍材功,请先得到技术支持,我的参考文档首先是:Quectel_Android_RIL_Driver_V3 .3.62_master_beta(支持EC200A).tgz
  主要文件:Quectel_Android_RIL_Driver_V3.3.62_master_beta(支持EC200A)libquectel-rilarm64-v8alibreference-ril.so
  主要文档:Quectel_Android_RIL_Driver_User_Guide_V2.0.pdf
  //##//## //##//##//##//##//##//##//##//##//##//##//##//##// ##//##//##//##//##//##//##
  系统部分:
  1.添加rild库(libquectel-rilarm64-v8alibreference-ril.so)
  译名:librk-ril.so编成这样才编成
  :devicerockcommon4g4glib64librk-ril芯片
  要重新编译编译,有没有库的情况,更新后大可以
  2。更新已下文件
  
  vendorrockchipcommonphonebinchat
  vendorrockchipcommonphoneetcpppip-down
  vendorrockchipcommonphoneetcpppip-up
  vendorrockchipcommonphoneetcql-ril.conf
  vendorrockchipcommonphoneliblibreference-ril-ec20.so
  3.关闭SELINUX
  devicerockchipcommonBoardConfig.mk
  -BOARD_SELINUX_ENFORCING ?= true
  +BOARD_SELINUX_ENFORCING ?= false
  如果在android动画,建议看一降频篇
  4.打开BOARD_HAS_RK_4G_MODEM
  #enable 3g dongle
  BOARD_HAVE_DONGLE ?= false
  ifeq ( $(BOARD_HAVE_DONGLE),true)
  PRODUCT_PACKAGES +=
  android.hardware.radio@1.2 -radio-service
  android.hardware.radio.config@1.0 -service
  PRODUCT_PACKAGES +=
  rild
  com.android.phone.common
  endif
  #for rk 4g modem
  BOARD_HAS_RK_4G_MODEM ?= false
  +BOARD_HAS_RK_4G_MODEM ?= true
  ifeq ($(strip $(BOARD_HAS_RK_4G_MODEM)),true)
  DEVICE_MANIFEST_FILE += device/rockchip/common/4g_modem/manifest.xml
  endif
  5. 删除property:ro.boot.noril
  如果存在这个电话服务,就执行下面的设置内容
  setprop ro.radio.noril 为true
  暂停ril-daemon
  -a/device/rockchip/common/init.rk30board.rc
  + b/device/rockchip/common/init.rk30board.rc
  @@ -238,7 +238,7 @@ on property:sys.boot_completed=1
  # 用于电话功能
  -on property:ro.boot.noril=true
  - setprop ro.radio.noril true
  - 停止 ril-daemon
  +#on property:ro.boot.noril=true
  +# setprop ro.radio.noril true
  +# stop ril-daemon
  6.manifest.xml
  devicerockchipcommon4g_modemmanifest.xml
  《manifest》
  《 hal 》
  《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》
  《fqname》@1.4::IRadio/slot1《/fqname》
  《/hal》
  《hal》
  《name》android.hardware.radio.deprecated《/name》
  《运输》hwbinder《/transport》
  《版本》1.0《/版本》
  《接口》
  《name》IOemHook《/name》
  《instance》slot1《/instance》
  《/interface》
  《/hal》
  《hal》
  《name》android.hardware.radio《/name》
  《transport》hwbinder《/transport》
  《version》 1.0《/version》
  《interface》
  《name》IRadio《/name》
  《instance》slot1《/instance》
  《/interface》
  《/hal》
  《/manifest》
  devicerockchipcommonmanifest.xml
  + 《hal 》
  + 《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》
  7. 添加APN
  vendorrockchipcommonphoneetcapns-full-conf.xml
  《apn
  carrier_id = “2470”
  mcc =“334”
  mnc=“140”
  user=“”
  password=“”
  /》
  + 《apn mcc=“460” mnc=“11” /》
  + 《apn mcc=“460” mnc=“04” /》
  + 《apn mcc=“460” mnc=“04” /》
  + 《apn mcc=“460” mnc=“06” port=“80” /》
  + 《apn mcc=“460” mnc=“06” /》
  + 《apn mcc=“460” mnc=“03” user=“m2m”password=“vnet.mobi” /》 8.G上网正常,但没有状态
  《/
  没有4G图标(完整图标)
  devicerockchiprk356xoverlayframeworksbasecoreresresvalue配置文件
  《!-- 该字符串数组应被设备覆盖以呈现网络
  属性列表。
  连接管理器使用它来根据硬件决定哪些网络可以共存--》
  《!-- “[连接名称]、[连接管理器连接类型]、
  [关联无线电类型]、[优先级]、 [restoral-timer(ms)],[dependencyMet] --》
  《!-- 第5个元素“resore-time”表示自动恢复默认连接前延迟的毫秒数
  。如果连接
  不需要,设置-1 auto-restore.--》
  《!-- 第6个元素表示启动时依赖满足值。--》
  《string-array》
  《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》
  9.在devicerockchipcommonueventd.rockchip.rc中打开权限,增加
  devicerockchipcommonueventd.rockchip.rc #for
  radio
  /dev/ttyUSB* 0666 radio radio
  #for uart
  /dev/ttyS3 0777 根系统
  /dev/ttyS4 0777 根系统
  /dev/ttyS5 0777 根系统
  /dev/ttyS6 0777 根系统
  /dev/ttyS9 0777 根系统
  /dev/ttyS8 0777 根系统
  /dev/ttyS9 0777根系统
  #for cdc-wdm0
  /dev/cdc-wdm* 0660 radio radio
  #for qcqmi0
  /dev/qcqmi* 0660 radio radio
  /dev/cdc-acm* 0660 radio radio
  /dev/ttyACM* 0660 radio radio
  #PCIe
  /dev /mhi_DUN 0660 无线电无线电
  /dev/mhi_DIAG 0660 无线电无线电
  /dev/mhi_BHI 0660 radio radio
  /dev/mhi_LOOPBACK 0660 radio radio
  /dev/mhi_QMI0 0660 radio radio
  10.添加cdc-wdm0节点
  systemcoreinitdevices.cpp
  // Minors被分成128个一组,从“001”
  int bus_id = uevent.minor / 128 + 1;
  int device_id = uevent.minor % 128 + 1;
  devpath = StringPrintf(“/dev/bus/u***/%03d/%03d”, bus_id, device_id);
  }
  +#if 1 //由 quectel 为 mknod 添加 /dev/cdc-wdmo
  + } else if (uevent.subsystem == “u***misc” && !uevent.device_name.empty()) {
  + devpath = “/dev/” + uevent.device_name;
  +#endif
  } else if (StartsWith(uevent.subsystem, “u***”)) {
  忽略其他 USB 事件
  11.实际上应该是使用下面的这个: //这个本来的
  devicerockchip有的commondevice.mk
  ifeq ($(strip $(TARGET_ARCH)), arm64)
  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
  $(LOCAL_PATH)/4g_modem/lib64/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librk-ril.so
  else
  PRODUCT_PROPERTY_OVERRIDES +=
  vendor.rild.libpath=/vendor/lib/librk -ril.so
  PRODUCT_COPY_FILES +=
  $(LOCAL_PATH)/4g_modem/bin32/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd
  $(LOCAL_PATH)/4g_modem/lib32/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib/librk-ril.so
  endif
  12 更新加载文件点
  vendorrockchipcommonphonephone.mk
  CUR_PATH := vendor/rockchip/common
  ########################## ##############################
  3G 加密狗支持
  ################ ########################################
  PRODUCT_COPY_FILES +=
  # $(CUR_PATH )/phone/etc/ppp/ip-down:system/etc/ppp/ip-down
  #$(CUR_PATH)/phone/etc/ppp/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
  PRODUCT_COPY_FILES +=
  + $(CUR_PATH)/phone/etc/ppp/ip-down:system/etc/ppp/ip-down
  + $( CUR_PATH)/phone/etc/ppp/ip-up:system/etc/ppp/ip-up
  + $(CUR_PATH)/phone/bin/chat:system/bin/chat
  + $(CUR_PATH)/phone/lib /libreference-ril-ec20.so:vendor/lib64/libreference-ril-ec20.so
  + $(CUR_PATH)/phone/etc/ppp/ql-ril.conf:system/etc/ql-ril.conf
  + $(CUR_PATH)/etc/spn-conf.xml:system/etc/spn-conf.xml
  ifeq ($(strip $(BOARD_HAVE_DONGLE)),true)
  PRODUCT_PACKAGES +=
  rild
  libril-rk29-dataonly
  u***_dongle
  u***_modeswitch
  聊天
  PRODUCT_PROPERTY_OVERRIDES +=ro.boot.noril=false
  否则
  PRODUCT_PROPERTY_OVERRIDES +=ro.boot.noril=true
  endif
  PRODUCT_PROPERTY_OVERRIDES += keyguard.no_require_sim=true
  
  ro.com.android.dataroaming=true
  ril.function.dataonly=1
  。 13.修改ril-daemon
  - /hardware/ril/rild/rild.rc
  + /hardware/ril/rild/rild.rc
  @@ -1,5 +1,5 @@
  -service vendor.ril-daemon /vendor/ bin/hw/rild
  +service ril-daemon /vendor/bin/hw/rild -l /vendor/lib64/libreference-ril-ec20.so
  类主
  - 用户收音机
  - 组收音机缓存 inet 杂项音频日志 readproc 唤醒锁
  - 功能 BLOCK_SUSPEND NET_ADMIN NET_RAW
  + 用户根
  + group radio cache inet misc audio sdcard_rw log
  + capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
  14.指定使用的库,这里没有配,因为前面的device.mk已经指定
  -a/device/rockchip/rk356x/device.mk
  + b/device/rockchip /rk356x/device.mk
  @@ -77,6 +77,9 @@ PRODUCT_PROPERTY_OVERRIDES +=
  ro.ril.ecclist=112,911
  ro.opengles.version=196610
  wifi.interface=wlan0
  ro.audio.monitorOrientation= true
  debug.nfc.fw_download=false
  debug.nfc.se=false
  +# ro.telephony.default_network=9
  +# rild.libpath=/vendor/lib64/libquectel-ril-ec200t.so
  +# rild.libargs=-d /dev/ttyUSB2
举报

更多回帖

发帖
×
20
完善资料,
赚取积分