主页 > 游戏开发  > 

全志A133android10适配SLM770A4G模块

全志A133android10适配SLM770A4G模块
一,模块基本信息 1.官方介绍

SLM770A是美格智能最新推出的一款LTE Cat.4无线通讯模组,最大支持下行速率150Mbps及上行速率50Mbps。同时向下兼容现有的3G和2G网络,以确保即使在偏远地区也可以进行网络通信。 SLM770A模组支持分集接收和MIMO技术,优化数据传输的速度并提高通讯质量。支持NCM/PPP/ECM/TCP/UDP/DTSL/HTTP(S)/FTP/MQTT等多种拨号方式及内置网络协议。集成了UART/I2C/PCM/SPI/SDIO等丰富的硬件接口。广泛应用于工业路由、安防监控、CPE、车载DVR、共享等领域。

2.子端口说明

虚拟出来的各个子端口主要用来实现AT命令收发,网络通信,GPS,诊断等功能。


二,驱动移植与RIL适配 1.添加usb串口驱动

1.1 内核配置打开相应宏 代码路径:longan/kernel/linux-4.9/arch/arm64/configs/sun50iw10p1smp_a100_android_defconfig

#串口驱动 CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_QT2=y #RNDIS驱动支持 CONFIG_MII=y CONFIG_USB_USBNET=y CONFIG_USB_NET_CDCETHER=y CONFIG_USB_NET_RNDIS_HOST=y

1.2 修改option驱动,添加模块支持 代码路径:longan/kernel/linux-4.9/drivers/usb/serial/option.c

diff --git a/longan/kernel/linux-4.9/drivers/usb/serial/option.c b/longan/kernel/linux-4.9/drivers/usb/serial/option.c index 7ca999924d..965b6ed3ce 100644 --- a/longan/kernel/linux-4.9/drivers/usb/serial/option.c +++ b/longan/kernel/linux-4.9/drivers/usb/serial/option.c @@ -88,6 +88,18 @@ static void option_instat_callback(struct urb *urb); #define HUAWEI_PRODUCT_E173S6 0x1C07 #define HUAWEI_PRODUCT_E261 0x1446 +//fy add for meig modem supported start. +#define MEIG_VENDOR_ID 0x2DEE +#define MEIG_PRODUCT_SRM815 0x4D22 +#define MEIG_PRODUCT_SRM815_ECM 0x4D23 +#define MEIG_PRODUCT_SLM790 0x4D20 +#define MEIG_PRODUCT_SLM770 0x4D57 +#define MEIG_QCM_VENDOR_ID 0x05C6 +#define MEIG_QCM_PRODUCT_SLM750_SRM815_SLM868 0xF601 +#define MEIG_PRODUCT_SRM811_RNDIS 0x4D51 +#define MEIG_PRODUCT_SRM811_NCM 0x4D52 +//fy add for meig modem supported end. + #define QUANTA_VENDOR_ID 0x0408 #define QUANTA_PRODUCT_Q101 0xEA02 #define QUANTA_PRODUCT_Q111 0xEA03 @@ -593,6 +605,35 @@ static const struct option_blacklist_info yuga_clm920_ac5_blacklist = { static const struct usb_device_id option_ids[] = { + //fy add for meig modem supported start. + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x03, 0x03) }, //3g app + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x03, 0x13) }, //app + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x03, 0x01) }, //modem + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x03, 0x12) }, //at + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x03, 0x14) }, //gprs + + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x02, 0x03) }, //3g app + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x02, 0x13) }, //app + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x02, 0x01) }, //modem + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x02, 0x12) }, //at + { USB_VENDOR_AND_INTERFACE_INFO(MEIG_VENDOR_ID, 0xff, 0x02, 0x14) }, //gprs + + { USB_DEVICE(MEIG_VENDOR_ID, MEIG_PRODUCT_SRM815), + .driver_info = RSVD(4) | RSVD(5) | RSVD(6) | RSVD(7) }, + { USB_DEVICE(MEIG_VENDOR_ID, MEIG_PRODUCT_SRM815_ECM), + .driver_info = RSVD(4) | RSVD(5) | RSVD(6) | RSVD(7)}, + { USB_DEVICE(MEIG_QCM_VENDOR_ID, MEIG_QCM_PRODUCT_SLM750_SRM815_SLM868), + .driver_info = RSVD(4) | RSVD(5) | RSVD(6) | RSVD(7)}, + { USB_DEVICE(MEIG_VENDOR_ID, MEIG_PRODUCT_SLM790), + .driver_info = RSVD(0) | RSVD(5) | RSVD(6) | RSVD(7)}, + { USB_DEVICE(MEIG_VENDOR_ID, MEIG_PRODUCT_SLM770), + .driver_info = RSVD(0) | RSVD(5) | RSVD(6) | RSVD(7)}, + { USB_DEVICE(MEIG_VENDOR_ID, MEIG_PRODUCT_SRM811_RNDIS), + .driver_info = RSVD(0) | RSVD(1) }, + { USB_DEVICE(MEIG_VENDOR_ID, MEIG_PRODUCT_SRM811_NCM), + .driver_info = RSVD(0) | RSVD(1) }, + //fy add for meig modem supported end. + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },

1.3 添加USB设备节点权限 代码路径:android/device/softwinner/ceres-common/ueventd.sun50iw10p1.rc 文件中添加以下配置内容:

/dev/ttyUSB* 0777 system system

1.4 编译更新内核 驱动加载后,插入模块时。dev/目录会生成ttyUSB串口设备:

console:/ # ls -l dev/ttyUSB* crwxrwxrwx 1 system system 188, 0 2025-02-20 13:20 dev/ttyUSB0 crwxrwxrwx 1 system system 188, 1 2025-02-20 13:20 dev/ttyUSB1 crwxrwxrwx 1 system system 188, 2 2025-02-20 14:45 dev/ttyUSB2 2.添加RIL配置

2.1 驱动包解压 将Meig_Android_Driver_V5.0.7.3.zip解压到Android源码根目录vendor/meig 目录: SLM770A 4G模块资料下载链接: download.csdn.net/download/weixin_45639314/90408097

2.2 在mk文件中添加美格ril配置 代码路径:android/device/softwinner/ceres-b6/ceres_b6.mk

diff --git a/android/device/softwinner/ceres-b6/ceres_b6.mk b/android/device/softwinner/ceres-b6/ceres_b6.mk index 321272978e..8e36d8cd74 100644 --- a/android/device/softwinner/ceres-b6/ceres_b6.mk +++ b/android/device/softwinner/ceres-b6/ceres_b6.mk @@ -159,9 +159,9 @@ PRODUCT_PACKAGES += \ #PRODUCT_PACKAGES += AllwinnerGmsIntegration -############################### 3G Dongle Support ############################### +############################### 4G Dongle Support ############################### # Radio Packages and Configuration Flie -$(call inherit-product-if-exists, vendor/aw/public/prebuild/lib/librild/radio_common.mk) +$(call inherit-product-if-exists, vendor/meig/meig_radio.mk) BUILD_WITH_GOOGLE_APPS := false ifeq ($(strip $(BUILD_WITH_GOOGLE_APPS)), true)

2.3 添加HIDL配置 代码路径:android/device/softwinner/ceres-b6/configs/manifest.xml

diff --git a/android/device/softwinner/ceres-b6/configs/manifest.xml b/android/device/softwinner/ceres-b6/configs/manifest.xml index fb82972d59..b9c7cb5178 100644 --- a/android/device/softwinner/ceres-b6/configs/manifest.xml +++ b/android/device/softwinner/ceres-b6/configs/manifest.xml @@ -25,6 +25,24 @@ <name>IUsb</name> <instance>default</instance> </interface> + </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</name> + <transport>hwbinder</transport> + <version>1.0</version> + <interface> + <name>IRadio</name> + <instance>slot1</instance> + </interface> </hal> <hal format="hidl"> <name>android.hardware.audio.effect</name>
二,调试 1.状态查看 console:/ # getprop | grep ril [gsm.version.ril-impl]: [MEIG_RIL_Android7.x-later-V5.0.7.3] [init.svc.vendor.meig-ril]: [running] [init.svc.vendor.ril-daemon]: [stopped] [ril.datachannel]: [/dev/ttyUSB1] [rild.dongle_name]: [SLM770A] [rild.libargs]: [-d /dev/ttyUSB2] [rild.libpath]: [/vendor/lib/libmeig-ril.so] [ro.boottime.vendor.meig-ril]: [5185500126] [ro.radio.noawril]: [true] [ro.radio.noril]: [false] [sys.mgril.unrecverr]: [false] [vendor.rild.libargs]: [-d /dev/ttyUSB2] [vendor.rild.libpath]: [/vendor/lib/libmeig-ril.so] 2.usb串口驱动检查 adb root adb shell dmesg | grep option

打印以下信息:

3.查看节点 console:/ # cat sys/kernel/debug/usb/devices T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 5 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=2dee ProdID=4d57 Rev= 1.00 S: Manufacturer=Marvell S: Product=Mobile Composite Device Bus S: SerialNumber=200806006809080000 C:* #Ifs= 6 Cfg#= 1 Atr=c0 MxPwr=500mA A: FirstIf#= 0 IfCount= 2 Cls=e0(wlcon) Sub=01 Prot=03 I:* If#= 0 Alt= 0 #EPs= 1 Cls=e0(wlcon) Sub=01 Prot=03 Driver=rndis_host E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=4096ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0b(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option E: Ad=88(I) Atr=03(Int.) MxPS= 64 Ivl=4096ms E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=4096ms E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none) E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0e(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
标签:

全志A133android10适配SLM770A4G模块由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“全志A133android10适配SLM770A4G模块