[技术问答] NUC980 移植EC20 4G模块

[复制链接]
 楼主| 木木guainv 发表于 2022-11-8 09:03 | 显示全部楼层 |阅读模式
一:  4G模组是通过USB连接的,因此需要连接
查看4G模组的VID和PID的:

将模组连接到电脑后可以识别到VID和PID。

619196369aadb6edd2.png

二:内核编译
1:向内核中添加VID和PID列表。
编辑文件路径:KERNEL_PATH/drivers/usb/serial/option.c
找到option_ids这个结构体,并添加如下:

static const struct usb_device_id option_ids[] = {
#if 1 //Added by Quectel
{ USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */
{ USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */
{ USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25/EC20 R2.0 */
{ USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */
{ USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20 */
{ USB_DEVICE(0x2C7C, 0x0191) }, /* Quectel EG91 */
{ USB_DEVICE(0x2C7C, 0x0195) }, /* Quectel EG95 */
{ USB_DEVICE(0x2C7C, 0x0306) }, /* Quectel EG06/EP06/EM06 */
{ USB_DEVICE(0x2C7C, 0x0296) }, /* Quectel BG96 */
#endif
2: 添加内核USB Serial以及PPP协议支持
终端进入内核路径,输入make menuconfig 修改内核,需要添加的功能如下:


  • Device Drivers –
       
  • USB Support –
            
  • USB Serial Converter support –
                
  • USB driver for GSM and CDMA modems
    选中:支持GSM和CDMA模块的USB转串口驱动,这个驱动作用是虚拟出/dev/ttyUSB0、/dev/ttyUSB1、/dev/ttyUSB2、/dev/ttyUSB3这几个串口,

    他们的作用分别是错误诊断、gps信息接口、模块的的通信接口。

    根据我的测试ttyUSB2和ttyUSB3的功能貌似一样。ttyUSB2不太正常,有重复发送感觉。

    建议使用ttyUSB3。

    如果使用设备树的话,需要将USB的过流检测取消掉。此时就可以检测usb虚拟的串口了。


  • Device Drivers –
        
  • Network device support –
            
  • PPP (point-to-point protocol) support
               <*> PPP 下面带PPP的都勾上
    这个驱动的作用就是支持ppp拨号工具,在应用层使用ppp拨号脚本进行拨号上网

    保存退出,编译内核,烧录到板子上


    查看USB

    ls /dev/TTYusb*
    lsusb
    手动的发送AT指令
    cat /dev/ttyUSB3 &  
    echo -e "AT\r\n" >/dev/ttyUSB3
    三: 下载ppp并编译
    1:下载ppp 并且交叉编译
    sudo wget https://download.samba.org/pub/ppp/ppp-2.4.5.tar.gz
    sudo tar -xzvf ppp-2.4.5.tar.gz
    sudo cd ppp-2.4.5
    sudo ./configure
    sudo make CC=arm-linux-gcc
    如果make不过去 直接指定交叉编译器的位置:

    如:sudo make CC=/usr/local/arm_linux_4.8/usr/bin/arm-linux-gcc

    完成后,分别生成chat,pppd,pppdump,pppstats四个可执行文件,在同名文件夹中,将其复制到开发板根文件目录的/bin下

    2:移动链接库到开发板的根文件系统/lib中:
    如下:查看可执行文件是X86的还是Arm的。我查看了我的依赖。

    b62be7c0eb344e22a2bc5ed33c1a7d80.png

    3ee6adc267164c759157c62a05852c22.png




    将编译器工具链中/lib中的链接库移动到开发板根文件系统的/lib中
    libc.so.0   ld-uClibc.so.0
    移动之后就可以正常启动pppd了

    四:启动拨号:
    在启动拨号之前,需要将拨号脚本文件安放在以下位置

    1: 放置拨号脚本
    etc
    ├── ppp
       ├── ip-up
       ├── peers
       ├── quectel-chat-connect
       ├── quectel-chat-disconnect
       ├── quectel-ppp
       └── quectel-ppp-kill
    将quectel的四个脚本以及ip-up脚本按照该结构放置好

    2:修改拨号参数
    > 拨号上网需要user、password与APN,这三个参数是需要与运营商联系索要
    修改user与password:在quecterl-ppp中,修改user与password
    修改APN:在quectel-chat-connect中

    # Insert the APN provided by your network operator, default apn is 3gnet
    OK AT+CGDCONT=1,”IP”,”3gnet”,,0,0
    将3gnet修改为正确的APN

    3: 启动拨号
    mkdir /var/lock 启动之前先新建该文件夹,否则会报错
    pppd call quectel-ppp &

    在启动完成后通过ifconfig查看网卡,则完成拨号

    4 :挂断拨号
    /etc/ppp/peers/quectel-ppp-kill


  • 天天向善 发表于 2022-11-8 13:40 | 显示全部楼层
    4G模块是通过什么通信和PC进行连接的?
    mollylawrence 发表于 2022-12-2 19:16 | 显示全部楼层
    这个是通过串口驱动的吗              
    sesefadou 发表于 2022-12-2 19:25 | 显示全部楼层
    这个实现的modem的功能吗?
    mnynt121 发表于 2022-12-3 13:38 | 显示全部楼层
    nuc980直接代码驱动4G模块的代码有吗
    chenjun89 发表于 2022-12-3 18:14 来自手机 | 显示全部楼层
    芯唐的处理器系列还是太少了啊!
    海滨消消 发表于 2022-12-3 21:30 来自手机 | 显示全部楼层
    这个模块通过哪种方式驱动了
    jimmhu 发表于 2022-12-4 20:09 | 显示全部楼层
    是否是通过AT指令来实现的对EC20模块的操作呢?
    tpgf 发表于 2022-12-6 08:55 | 显示全部楼层
    通过usb连接的4G模块速度能跟上吗
    qcliu 发表于 2022-12-6 09:58 | 显示全部楼层
    现在的市场上有没有大规模使用的成熟的4G的模块啊
    drer 发表于 2022-12-6 10:22 | 显示全部楼层
    通过usb接口的的通讯协议还是以at指令为主吗
    coshi 发表于 2022-12-6 10:34 | 显示全部楼层
    调试这种模块 必须要预先写好脚本吗 如果不会写脚本怎么入手呢
    kxsi 发表于 2022-12-6 10:51 | 显示全部楼层
    我需要关心以太网的底层驱动吗
    wiba 发表于 2022-12-6 11:25 | 显示全部楼层
    这种模块只能通过拨号进行网络链接吗
    vivilyly 发表于 2022-12-6 12:40 | 显示全部楼层
    这个代码可以兼容air724的硬件吗?
    fengm 发表于 2023-2-2 10:17 | 显示全部楼层
    4G转wifi的工作原理是什么              
    10299823 发表于 2023-2-4 12:32 | 显示全部楼层
    4G模块选择的是移远的EC20,
    ulystronglll 发表于 2023-2-4 13:34 | 显示全部楼层
    用的什么4g模块?               
    sdlls 发表于 2023-2-4 15:16 | 显示全部楼层
    哪些4g模块支持openwrt
    mattlincoln 发表于 2023-2-4 18:28 | 显示全部楼层
    移远EC20是一个兼容性比较强的4G模块。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    188

    主题

    4322

    帖子

    5

    粉丝
    快速回复 在线客服 返回列表 返回顶部