ML307C 4G 模组拨号上网教程(Tina Linux)

一、内核驱动准备

在 Tina Linux SDK 中配置内核,确保以下驱动已启用。

1️⃣ USB 串口驱动

路径:

Device Drivers —>
  USB support —>
    USB Serial Converter support —>
      <*> USB driver for GSM and CDMA modems

2️⃣ RNDIS 模式驱动

路径:

Device Drivers —>
  Network device support —>
    USB Network Adapters —>
      <*> Multi-purpose USB Networking Framework
      <*> Host for RNDIS and ActiveSync devices

3️⃣ ECM 模式驱动

路径:

Device Drivers —>
  Network device support —>
    USB Network Adapters —>
      <*> Multi-purpose USB Networking Framework
      <*> CDC Ethernet support (smart devices such as cable modems)

⚠️ 重新编译内核并烧录后,系统才能识别 4G 模组的网卡接口。


二、硬件连接

  • 模组工作时瞬时电流较大,建议开发板 外接 5V 1A 稳定供电。 若无法外接,可在 4G 模块上加装 超级电容
  • 插入 有效 SIM 卡 后再连接到设备。

三、确认 USB 设备识别

插入模组后,执行:

lsusb

输出示例:

Bus 001 Device 012: ID 2ecc:3012

说明系统已识别到 ML307C 模组。


四、识别 AT 命令端口

运行以下命令,将设备id加入option驱动中

echo 2ecc 3012 > /sys/bus/usb-serial/drivers/option1/new_id

模组连接后会生成多个 /dev/ttyUSBx 设备。

1️⃣ 通过 Interface Number 查找(推荐)

ML307C 的 AT 端口接口号为 02,可执行:

udevadm info -q all -n /dev/ttyUSB2 | grep ID_USB_INTERFACE_NUM

如果输出:

E: ID_USB_INTERFACE_NUM=02

/dev/ttyUSB2 即为 AT 命令口。

或使用:

find /sys/ -name 'bInterfaceNumber' -exec grep -l '02' {} \;

输出路径对应的 ttyUSBx 即为 AT 端口。

本文中统一将 AT 端口记为 /dev/ttyUSB_AT,请替换为你的实际设备名。


五、设置拨号模式

此设置掉电保存,重启模组后生效。

RNDIS 模式

echo -e 'AT+MDIALUPCFG="mode",0\r\n' > /dev/ttyUSB_AT
echo -e 'AT+CFUN=1,1\r\n' > /dev/ttyUSB_AT

ECM 模式(推荐)

echo -e 'AT+MDIALUPCFG="mode",1\r\n' > /dev/ttyUSB_AT
echo -e 'AT+CFUN=1,1\r\n' > /dev/ttyUSB_AT

说明:

参数 模式 说明
0 RNDIS 网卡名通常为 eth1
1 ECM 网卡名通常为 usb0

六、建立拨号连接

模组重启后,系统会自动识别出一个网卡接口(如 usb0eth1)。

1️⃣ 查询网络状态(可选)

关闭回显,避免干扰:

stty -F /dev/ttyUSB_AT -echo -onlcr
cat /dev/ttyUSB_AT &

查询 PDP 上下文:

echo -e 'AT+CGDCONT?\r\n' > /dev/ttyUSB_AT

查询驻网状态:

echo -e 'AT+COPS?\r\n' > /dev/ttyUSB_AT

返回示例:

+COPS: 0,2,"46000",7
OK

表示已驻网(46000 为中国移动,46003 为中国电信)。


2️⃣ 发送拨号命令

echo -e 'AT+MDIALUP=1,1\r\n' > /dev/ttyUSB_AT

成功时返回:

+MDIALUP: 1,1,"10.43.159.12","","183.230.126.225","183.230.126.224"
OK

表示: - 获得 IP 地址:10.43.159.12 - DNS:183.230.126.225, 183.230.126.224


七、配置 Linux 网络

拨号成功后系统会出现新网卡(usb0eth1)。 可使用 DHCP 自动获取 IP:

udhcpc -i usb0

请将 usb0 替换为你的实际网卡名。

测试联网:

ping www.baidu.com

八、附录:常见问题

问题 原因 解决方案
ERROR APN 未设置正确 执行 AT+CGDCONT=1,"IP","ctnet"
NO CARRIER 信号弱或未驻网 检查 AT+COPS? 是否正常
无网卡接口 驱动未启用或模块未加载 确认内核配置或执行 insmod usbnet.ko cdc_ether.ko
模块反复重启 供电不足 外接 5V/1A 电源或加超级电容

九、拨号成功验证

查询当前拨号状态:

echo -e 'AT+MDIALUP?\r\n' > /dev/ttyUSB_AT

返回示例:

+MDIALUP: 1,1,"10.43.159.12","","183.230.126.225","183.230.126.224"
OK

断开连接:

echo -e 'AT+MDIALUP=1,0\r\n' > /dev/ttyUSB_AT

十、使用 Minicom 操作 ML307C 模组

除了使用 echo 命令发送 AT 指令,也可以通过 minicom 进行交互式操作,这样更方便查看返回结果。


1️⃣ 安装 Minicom

开发板默认已集成minicom,可跳过此步骤。如果提示找不到命令,需要在menuconfig里面启用minicom


2️⃣ 启动 Minicom

执行命令进入 AT 端口:

minicom -D /dev/ttyUSB_AT

其中 /dev/ttyUSB_AT 请替换为你的实际 AT 端口(如 /dev/ttyUSB2)。

如果提示权限不足,可先执行:

chmod 666 /dev/ttyUSB2

3️⃣ Minicom 常用快捷键

在 Minicom 界面中,所有命令均以 Ctrl + A 开头。

功能 快捷键 说明
显示帮助菜单 Ctrl + A, Z 查看所有快捷键
退出 Minicom Ctrl + A, X 正常退出
强制退出 Ctrl + A, Q 不复位直接退出
清屏 Ctrl + A, C 清除终端显示
开启/关闭本地回显 Ctrl + A, E 输入 AT 时可看到自己输入的内容

进入 Minicom 后,建议先按:

Ctrl + A, E

打开本地回显,否则输入的 AT 命令不会显示在屏幕上。


4️⃣ 发送命令示例

在 Minicom 界面中直接输入以下命令(每条后按 Enter):

AT
AT+COPS?
AT+CGDCONT?
AT+MDIALUP=1,1

返回信息示例:

OK
+COPS: 0,0,"CHN-CT",7
OK
+CGDCONT: 1,"IPV4V6","CTNET.MNC011.MCC460.GPRS",,0,0,,,,
OK
+MDIALUP: 1,1,"10.43.159.12","","202.97.224.68","202.97.224.69"
OK

表示已驻网并拨号成功。


5️⃣ 拨号模式切换示例

在 Minicom 中输入以下命令可切换拨号模式:

AT+MDIALUPCFG="mode",1    ← ECM 模式
AT+CFUN=1,1               ← 重启模组

或:

AT+MDIALUPCFG="mode",0    ← RNDIS 模式
AT+CFUN=1,1

重启后,执行:

ifconfig -a

查看是否出现网卡接口(如 usb0 / eth1)。


6️⃣ 退出 Minicom

操作完成后退出 Minicom:

Ctrl + A, X

若出现确认提示,按 Enter 即可。


✅ 使用 Minicom 的优点

  • 可实时查看模块返回信息;
  • 支持连续输入多条命令;
  • 便于调试 AT 指令;
  • 可结合日志功能记录调试过程(Ctrl + A, L 开启/关闭日志)。

✳️ 最终验证流程

  1. 启动 Minicom: bash minicom -D /dev/ttyUSB2

  2. 开启回显: Ctrl + A, E

  3. 输入命令: text AT AT+COPS? AT+CGDCONT=1,"IP","ctnet" AT+MDIALUP=1,1

  4. 拨号成功后,在系统中查看: bash ifconfig -a udhcpc -i usb0 ping www.baidu.com