zoukankan      html  css  js  c++  java
  • 高新兴GM510模块调试

    Platform:rk3399

    Os:android7.1

    Kernel:4.4

    1.1 在内核中添加USB串口驱动和USB网卡驱动

    通过指令make ARCH=arm64 menuconfig,配置内核:

    添加 USB 串口驱动:

    device drivers-->
    
     usb support-->
    
    usb serial converter support-->
    
     USB driver for GSM and CDMA modems

    添加 USB 网卡驱动

    device drivers-->
    
     Network device support-->
    
    usb Network Adapters-->
    
     Mulil-purpose USB Networking Framework

    总之,要确保源文件中的 option.c 及其相关的部分(USB 串口驱动),cdc_ether.c 及其相关部分

    USB 网卡驱动)参与编译即可。

    1.2 在内核中添加PPP组件

    device drivers-->
    
    Network device support-->
    
     ppp support-->
    
     ppp filtering
    
    ppp support for async serial ports
    
    ppp support for sync tty ports
    
    ppp deflate compression
    
    ppp BSD-compress compression

    1.3 在内核驱动源文件中添加模组相关的信息:

    在内核驱动源文件中添加模组相关的信息:USB 网卡驱动可以自动识别到 GOSUNCN

    模组,因此,其对应的 cdc_ether.c 文件中不需要添加任何内容。但是 USB 串口驱动不能

    自动识别,必须要添加 GOSUNCN 模组的设备信息到源文件 option.c 中。

    文件路径:/kernel/drivers/usb/serial/option.c

    GM510 的 VID 和 PID 分别是 0x305a 和 0x1415, 添加如下:

    static const struct usb_device_id option_ids[] = {

    。。。。

    { USB_DEVICE(ZTE_GM510_VENDOR_ID, ZTE_PRODUCT_GM510_X) },//wmc add by ZTE GM510

    。。。。

    }

    添加黑名单信息,上面添加模组信息时只添加了设备的 VID 和 PID,没有附加任何额外的端口信息,这样会导致设备的网卡也被加载成为 USB 串口。以下提供一种类似于黑名单的方式,在 option_probe 函数中,将网卡对应的端口加入黑名单,防止 USB 网卡被加载成为 USB 串口。

    ECM 端口模式下,GM510 网卡对应的端口为 0、1,请将以下代码添加到option_probe 函数中。

    1.4在Android系统的init.rc中添加服务

    在以下路径systemcore ootdirinit.rc中修改:

    ril-daemon 服务(添加前注释掉原来的 ril-daemon 服务)

     

    pppd_gprs 服务

     

    1.5修改分配ip地址是挂接到usb0:

    没修改之前,ip地址是挂接到eth0上,都没有接网线,这样肯定不对。

    kerneldrivers etusbusbnet.c中:

     

    eth改为usb。用ifconfig查看ip地址:

     

    1.6打包相关文件到系统中

     

    以上文件是模组厂提供的,只需要预置到系统对应的文件下就可以了。

    1.7 apn配置

    一般是修改apns-conf.xml文件,一般常用的卡比如移动、联通、电信都是有已经配置好在里面了。特殊的卡才需要自己再继续添加。

     

    1.8 buil.prop里面设置网络的优先等级

    ro.telephony.default_network=22

    这个对应frameworksase elephonyjavacomandroidinternal elephonyRILConstants.java

     

    2、调试

    此时,我们的基本适配工作就做完了。编译系统并烧写。首先可以来检查我们的4G模块是否被正确识别到。可以查看内核打印来检查。

     

    通常kernel启动时候打印以上信息,说明驱动没问题了。

    抓取Radio log的方法adb logcat -b radio -v time,如果上不了网,可以通过这个打印信息来分析问题。

    几条调试可能用到的AT指令:

    AT+CPIN? //SIM 卡状态

    AT+CSQ //信号强度

    AT+ZPAS? //注册状态

     

    echo -e "AT+ZSNT?" > /dev/ttyUSB1//查看模块是什么模式

    echo -e "AT+ZSNT=0,0,0" > dev/ttyUSB1//这个是自动模式

    注意:模块要设置成自动模式才可以用。

     

    总结:按照以上的步骤来调试,sim卡装上移动卡和联通卡发现都可以上网,但是装上电信物联卡就不行,经了解原来电信物联卡具有绑定设备的功能,也就是此卡已经绑定之前在用的ec20模块,要在其他设备上使用的话,需要解锁才可以。果然,解锁了之后,插上马上就有信号出来了。

     

    参考:https://www.cnblogs.com/chorm590/p/rk3128_me3630-w.html

    官方文档:高新兴物联模组Android系统RIL适配参考_V1.6-20190315

  • 相关阅读:
    C#飞行棋总结
    用python+pygame写贪吃蛇小游戏
    光线步进——RayMarching入门
    EasyX库进行图片绘制函数
    Unity复杂的旋转-欧拉角和四元数
    MATLAB GUI制作快速入门
    Three.js模型隐藏或显示
    Qt 为QPushButton、QLabel添加鼠标移入移出事件
    Unity c# 状态机的简单入门
    JavaFX Chart设置数值显示
  • 原文地址:https://www.cnblogs.com/wmc245376374/p/13039860.html
Copyright © 2011-2022 走看看