1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| # 测试AT通信 AT
# 查询模块基本信息 ATI
# 查询SIM卡状态 AT+CPIN?
# 查询SIM卡ICCID AT+ICCID
# 查询IMSI号 AT+CIMI
# 查询网络附着状态 AT+CGATT?
# 查询网络注册状态 AT+CEREG? AT+C5GREG?
# 查询运营商信息 AT+COPS?
# 查询信号强度 AT+CSQ
# 查询详细小区信息(美格) AT^CELLINFO=1
# 配置PDP上下文(IP、APN等) # 中国联通APN: 3gnet # 中国移动APN: cmnet # 中国电信APN: ctnet AT+CGDCONT=1,"IP","3gnet"
# 查询当前PDP上下文配置 AT+CGDCONT?
# 激活PDP上下文(正式拨号) AT+CGACT=1,1
# 确认PDP上下文激活状态 AT+CGACT?
# 查看IP地址 AT+CGPADDR=1
# 查看详细网络信息 AT+CGCONTRDP=1
# 查看ECMDUP AT+ECMDUP?
|
网络配置相关
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| # 启用网卡 ip link set modem.0 up
# 查看数据通路 cat /sys/class/net/modem.0/carrier # 期望输出 1(链路通) cat /sys/class/net/modem.0/operstate # 期望输出 up
# 启动dhcp # OpenWrt 环境(推荐,和自动拨号程序同款参数) udhcpc -i modem.0 -f -n -q -t 5 -T 2 -s /lib/netifd/dhcp.script # 通用 Linux(busybox 默认脚本,自动写 /etc/resolv.conf) udhcpc -i modem.0 # 但是上面的跑不通(!!!!!!!!!!!) udhcpc -i modem.0 -f -n -q -t 5 -T 2
# 手动配置DNS vim /etc/resolv.conf or echo "nameserver 120.80.80.80" > /etc/resolv.conf
# 检查路由表 route -n
# 添加默认路由 ip route add default via 10.4.253.1 dev modem.0
# 删除所有错误路由 ip route flush dev modem.0
# 清理所有手动配置 ip addr flush dev modem.0 ip route flush dev modem.0
# 查看arp arp -a
|
给的那条命令里的 -s /lib/netifd/dhcp.script 是 netifd 内部专用脚本,它靠 netifd 通过 ubus 给它传环境变量、再回写 netifd。你手动直接跑 udhcpc 时没有 netifd 的上下文,脚本内部调用的命令找不到,就报 Command failed: Not found。
结果就是:udhcpc 和模组协商成功了(拿到了 lease),但脚本没能把 IP 写进内核。你 ifconfig 里 modem.0 只有 IPv6(fe80::...)没有 IPv4,就是证据——lease 在手里,没落地。
1 2
| # 正确命令(去掉 -s /lib/netifd/dhcp.script) udhcpc -i modem.0 -f -n -q -t 5 -T 2
|
这样 udhcpc 会用 busybox 自带的默认脚本(OpenWrt 上是 /usr/share/udhcpc/default.script),它会正确地**配 IP + 加默认路由 + 写 resolv.conf(不会写DNS的!!)**。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| # 0. 先确认模组状态正常 AT+CPIN? # 期望 +CPIN: READY AT+CEREG? # 期望 +CEREG: 1,1 或 1,5(已注册) AT+C5GREG? # 5G SA 模式下看这个
# 1. 配 APN(展锐也用 CGDCONT) AT+CGDCONT=1,"IP","3gnet" # APN 按运营商改:移动3gnet/联通3gnet/电信ctnet
# 2. 【关键】美格展锐专用拨号命令,不是 CGACT! AT+ECMDUP=1,0 # 先清理旧会话(幂等,防止残留状态导致 ERROR) AT+ECMDUP=1,1 # 激活数据通路(内部完成 PDP 激活 + ECM/NCM 建立)
# 3. 验证数据通路真的起来了 AT+CGACT? # 此时才应看到 +CGACT: 1,1 cat /sys/class/net/modem.0/carrier # 现在应该输出 1 了 ← 关键标志
# 4. 网卡 up + DHCP(数据通路通了,这步才有效) ip link set dev modem.0 up udhcpc -i modem.0 -f -n -q -t 5 -T 2 -s /lib/netifd/dhcp.script
# 原来的通用拨号(对展锐平台无效): # AT+CGACT=1,$CID
# SRM821 展锐平台应改为: AT+ECMDUP=$CID,0 # 先清理 AT+ECMDUP=$CID,1 # 激活数据通路
|