中移307cLinux环境中拨号教程
本文详细介绍了中移ML307C模组在Linux系统下的拨号上网配置方法。教程涵盖硬件连接、内核驱动配置(RNDIS/ECM两种模式)、AT端口识别、拨号模式设置(0为RNDIS/1为ECM)、网络连接建立及验证等完整流程。重点讲解了通过udevadm命令识别AT端口、使用AT命令设置拨号模式、通过udhcpc或手动方式配置网络参数等关键步骤,并提供了常见问题解决方案。该教程适用于内核4.14及以上
中移307cLinux环境中拨号教程
本教程专注于 RNDIS 和 ECM 两种主流拨号模式,省略了已不常用的PPP模式,更符合当前开发需求。
中移ML307C模组 Linux环境拨号上网教程
适用型号:ML307C手册来源:中移物联网有限公司《ML307C 拨号上网用户手册 V1.0.0》适用系统:Linux (内核版本 4.14 及以上)
一、准备工作
- 硬件连接
• 使用USB线将ML307C模组(或开发板)连接到Linux主机。
• 确保模组已插入有效的SIM卡并正常开机。 - 确认USB设备识别
在终端执行以下命令,查看是否识别到模组:
lsusb
应能看到类似输出:
Bus 003 Device 004: ID 2ecc:3012 // VID: 0x2ecc, PID: 0x3012
二、配置Linux内核驱动
模组的USB端口需要正确的内核驱动才能被识别。
- 添加USB串口驱动 (option)
确保内核已加载 option 驱动,用于识别AT端口。
方法一:命令行临时加载
modprobe option
echo “2ecc 3012” > /sys/bus/usb-serial/drivers/option1/new_id
方法二:内核编译时配置在 menuconfig 中启用:
Device Drivers —>
USB support —>
USB Serial Converter support —>
<*> USB driver for GSM and CDMA modems
并确保 .config 文件包含:
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_OPTION=m
- 配置网络适配器驱动
根据您选择的拨号模式,选择其一进行配置。
RNDIS模式 (推荐)
Device Drivers —>
Network device support —>
USB Network Adapters —>
<> Multi-purpose USB Networking Framework
<> Host for RNDIS and ActiveSync devices
对应配置:
CONFIG_USB_NET_RNDIS_HOST=m
ECM模式
Device Drivers —>
Network device support —>
USB Network Adapters —>
<> Multi-purpose USB Networking Framework
<> CDC Ethernet support (smart devices such as cable modems)
对应配置:
CONFIG_USB_NET_CDCETHER=m
注意:完成内核配置后,需重新编译并启动系统。
三、识别AT端口
模组连接后,会生成多个 ttyUSBx 设备。需要确定哪个是AT端口。
- 通过Interface Number查找(推荐)手册中指出,ML307C的AT口Interface Number为 02。使用 udevadm 命令查找:
udevadm info -q all -n /dev/ttyUSB2 | grep ID_USB_INTERFACE_NUM
如果输出为 E: ID_USB_INTERFACE_NUM=02,则 /dev/ttyUSB2 即为AT端口。或使用 find 命令:
find /sys/ -name ‘bInterfaceNumber’ -exec grep -l “02” {} ;
输出的路径对应的 ttyUSBx 即为AT口。
2. 通用名称本教程中,将AT端口记为 /dev/ttyUSB_AT,请在实际操作中替换为您的真实设备名(如 /dev/ttyUSB2)。
四、设置拨号模式
注意:此设置需重启模组后生效,且会掉电保存。
- RNDIS模式
发送AT命令
echo -e ‘AT+MDIALUPCFG=“mode”,0\r\n’ > /dev/ttyUSB_AT
重启模组
echo -e ‘AT+CFUN=1,1\r\n’ > /dev/ttyUSB_AT
- ECM模式
发送AT命令
echo -e ‘AT+MDIALUPCFG=“mode”,1\r\n’ > /dev/ttyUSB_AT
重启模组
echo -e ‘AT+CFUN=1,1\r\n’ > /dev/ttyUSB_AT
说明:
• 0 代表 RNDIS
• 1 代表 ECM
五、建立拨号连接
重启后,系统会自动识别出一个以太网设备(如 usb0, eth1 等)。以下为拨号流程。
- 查询网络状态(可选)
关闭回显,避免干扰
stty -F /dev/ttyUSB_AT -echo -onlcr
后台读取AT口
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 表示已驻网)。
2. 发送拨号命令
echo -e ‘AT+MDIALUP=1,1\r\n’ > /dev/ttyUSB_AT
如果成功,AT口会返回IP地址和DNS信息,例如:
+MDIALUP: 1,1,“10.43.159.12”,“”,“183.230.126.225”,“183.230.126.224”
- 配置Linux网络
方法一:使用DHCP客户端(推荐)
udhcpc -i usb0
usb0 请替换为您系统中识别到的实际网卡名。
方法二:手动配置(无DHCP工具时)
根据AT口返回的IP信息手动设置:
设置IP地址和子网掩码
ifconfig usb0 10.43.159.12 netmask 255.255.255.0 up
添加默认路由
route add default dev usb0
配置DNS
echo “nameserver 183.230.126.225” > /etc/resolv.conf
echo “nameserver 183.230.126.224” >> /etc/resolv.conf
六、验证网络连接
-
测试IP连通性
ping 114.114.114.114 -c 3 -
测试域名解析
ping www.baidu.com -c 3
如果两个命令均能成功收到回复,则拨号上网成功。
七、断开连接
echo -e ‘AT+MDIALUP=1,0\r\n’ > /dev/ttyUSB_AT
常见问题 (FAQ)
问题 解决方法
1、udhcpc 获取IP但无法上网
检查 /usr/share/udhcpc/default.script 脚本中的 ifconfig 和 route 命令路径是否正确,可使用 udhcpc -i usb0 -s /path/to/correct/script 指定脚本。/
2、无法打开网页,但能ping通 可能是网络速率过低。
尝试更换环境或切换拨号模式(RNDIS/ECM)。
Couldn’t set tty to PPP discipline 某些内核需将 CONFIG_PPP_ASYNC 配置为模块(=m)而非内置(=y),重新编译内核。
更多推荐



所有评论(0)