MT7688 openwrt 4G调试

MT7688上有一个4G模块G403LTE-FAG采用LTE 3GPP Rel.10。技术支持最大下行速率 150Mbps 和最大上行
速率 50Mbps, 可实现从 3G 网络向 4G 网络的轻松平滑过渡。G403LTE-FAG 模块包含 LCC 和
Mini_PCIe 两个版本, 它能够向后兼容现存的 EDGE 和 GSM/GPRS 网络, 以确保在缺乏 3G 和 4G
网络的偏远地区也能正常工作。

1. Linux 系统驱动安装指导

     本章是给 G403LTE-FAG 全网通 4G 模块添加驱动并且正常拨号上网,源码为Openwrt 1505,对应的内核为 linux-3.18.45
1.1 添加USB串口驱动
      当我们成功的给 G403LTE-FAG 全网通 4G 模块添加了 USB 串口驱动后,我们可以在设备节
点中查看到以下设备节点信息。

接下来讲解如何添加USB串口驱动

1.1.1 添加VID 和 PID

为了能识别到 G403LTE-FAG 全网通 4G 模块, 我们需要按照下面的方法添加 VID 和 PID。

文件: [KERNEL]/drivers/usb/serial/option.c
MT7688 openwrt 4G调试_第1张图片

如果你的内核代码中存在下列代码, 请将它们删除。 它们将干扰 G403LTE-FAG 全网通 4G
模块 USB 串口驱动。
文件: [KERNEL]/drivers/usb/serial/qcserial.c


文件: [KERNEL]/drivers/net/usb/qmi_wwan.c

1.1.2  添加 Zero Packet 机制
在传输大量数据的时候, USB 协议需要添加处理 Zero Packet 的机制

对于高于 2.6.34 的内核版本, 需要做如下修改。
文件: [KERNEL]/drivers/usb/serial/usb_wwan.c

MT7688 openwrt 4G调试_第2张图片MT7688 openwrt 4G调试_第3张图片

对于低于 2.6.34 的内核版本, 需要做如下修改。
文件: [KERNEL]/drivers/usb/serial/usb_wwan.c
MT7688 openwrt 4G调试_第4张图片

1.1.3  添加 Reset Resume
对于一些 USB 控制器, 当主控进入休眠或者待机模式时, 它将掉电或者重启。 而当主控
退出休眠或者待机模式时, USB 主控将不能重启 USB 设备, 反而, 它将执行 Reset Resume,
因此我们需要添加如下内容。
对于高于 3.4 的内核版本, 需要做如下修改
文件: [KERNEL]/drivers/usb/serial/option.c
MT7688 openwrt 4G调试_第5张图片MT7688 openwrt 4G调试_第6张图片

对于低于 3.4 的内核版本, 需要做如下修改。
文件: [KERNEL]/drivers/usb/serial/option.c
MT7688 openwrt 4G调试_第7张图片


1.1.4 扩大 URBs
如果您的内核版本低于 2.6.29, 您需要扩大 URBs 来提高传输速度
文件: [KERNEL]/drivers/usb/serial/option.c

1.1.5 使用 GobiNet 或者 QMI 驱动
如果您需要使用 GobiNet 或者 QMI 驱动, 为了防止系统将 G403LTE-FAG 全网通 4G 模块
的接口 4 当作 USB 转串口设备, 需要添加以下代码。
对于高于 2.6.30 的内核版本, 需要做如下修改。
文件: [KERNEL]/drivers/usb/serial/option.c
MT7688 openwrt 4G调试_第8张图片

对于低于 2.6.30 的内核版本, 需要做如下修改
文件: [KERNEL]/drivers/usb/serial/option.c
MT7688 openwrt 4G调试_第9张图片

1.1.6 修改内核配置
经过上面对源码的修改以后, 我们还需要进行相关内核的配置, 才能真正的支持 USB 串
口驱动。
总的来说, 我们需要将以下内容, 配置进内核即可

配置方法:

1)在OpenWrt 源码顶层目录执行 make menuconfig 命令进入配置界面

2)配置 kmod-usb-serial

3)配置 kmod-usb-serial-option

4)配置 kmod-usb-serial-wwan

5)配置 kmod-usb-net

6)配置 usb-modeswitch

7) 最后, 保存退出配置界面即可

1.2 添加 GobiNet 驱动
如果您要给 G403LTE-FAG 全网通 4G 模块添加 GobiNet 驱动, 请仔细阅读本章节, 否则请
跳过。
当 GobiNet 驱动识别到 G403LTE-FAG 全网通 4G 模块时, 会创建一个网络设备节点和 QMI
通道。 这个网络设备节点叫做 ethX(如果内核版本低于 2.6.39 则叫 usbX), 这个 QMI 通道叫
/dev/qcqmiX。 这个网络设备节点用于数据传输和 QMI 通道用于 QMI 消息传输。
接下来给大家介绍如何添加 GobiNet 驱动

1.2.1 修改驱动源码
G403LTE-FAG 全网通 4G 模块添加 GobiNet 驱动源码由我们公司提供。 我们需要拷贝这些
驱动文件到“[KERNEL]/drivers/net/usb/” ([KERNEL]/drivers/usb/net/ 如果内核版本低于 2.6.22)。

MT7688 openwrt 4G调试_第10张图片

接下来需要修改当前目录下的 Makefile 文件, 具体如下。

MT7688 openwrt 4G调试_第11张图片

1.2.3 修改内核配置

经过上面对源码的修改以后, 我们还需要进行相关内核的配置, 才能真正的使能 GobiNet
驱动。

1)在openwrt源码顶层目录执行 make kernel_menuconfig 命令进入配置界面。

2)接下来将下面 2 个选项配置进内核, 然后保存退出即可。

MT7688 openwrt 4G调试_第12张图片

1.3 添加拨号软件

G403LTE-FAG 全网通 4G 模块 GobiNet 驱动对应的拨号软件由我们公司提供(对应压缩包
为 quectel_cm.zip)。 将该压缩包拷贝到 package 目录, 然后进行解压和配置。

1) 解压

2). 通过 make menuconfig 将拨号软件配置进系统

3)Kernel modules  --->
    Other modules  ---> 
        <*> kmod-G403LTE-FAG_Control_Drv

2. 编译调试

重新编译固件,插入4G模块,查看/dev目录,必须生成以下节点才能正常拨号:
/dev/ttyUSB0、/dev/ttyUSB1、/dev/ttyUSB2、/dev/ttyUSB3、/dev/qcqmi1

2.1.修改network、firewall配置文件
2.1.1 修改network,添加以下配置:
config interface '4g'
        option proto 'dhcp'
        option ifname 'eth1'
        option dns '114.114.114.114'

2.1.2 修改firewall
config zone
        option name             wan
        list   network          'wan'
       list   network          '4g'     ------添加这行
        list   network          'wan6'

2.2.拨号,直接执行"fournet &",2

2.2.1 如果一直出现以下打印信息,可以尝试执行“ifconfig eth1 down”,“ifconfig eth1 up”这两条指令:
[07-19_08:09:08:000] requestRegistrationState2 MCC: 460, MNC: 1, PS: Attached, DataCap: LTE
[07-19_08:09:08:128] requestSetupDataCall WdsConnectionIPv4Handle: 0x86fe99f0
[07-19_08:09:08:224] requestQueryDataCall ConnectionStatus: CONNECTED
[07-19_08:09:23:585] requestQueryDataCall ConnectionStatus: DISCONNECTED
[07-19_08:09:23:617] requestRegistrationState2 MCC: 460, MNC: 1, PS: Attached, DataCap: LTE
[07-19_08:09:23:776] requestSetupDataCall WdsConnectionIPv4Handle: 0x86fe99f0
[07-19_08:09:23:873] requestQueryDataCall ConnectionStatus: CONNECTED

[07-19_08:09:39:233] requestQueryDataCall ConnectionStatus: DISCONNECTED


2.3拨号后执行ifconfig指令看下eth1是否获取到ip,获取到则拨号成功。

2.4 拨号成功能ping通外网



 

你可能感兴趣的:(openwrt)