PPPD故障:SIM7600模块PAP认证成功后Modem挂断
解决SIM7600模块PPPD认证后Modem挂断的问题
我之前帮不少开发者排查过SIM7600搭配pppd联网时的同类问题,结合你的日志和配置细节,有几个关键调整方向可以尝试:
1. 清理Chat脚本中的冗余冲突命令
你的/etc/ppp/chat里存在不少和PPP拨号模式冲突的指令,这大概率是触发挂断的核心原因:
- 删掉
ATD#777:这是CDMA模块的拨号指令,SIM7600作为LTE模块仅需保留ATD*99#即可 - 移除
AT+CGATT=1和AT+CIPSTART:AT+CGATT会在PDP上下文激活后自动执行,而AT+CIPSTART是模块自带的TCP直连命令,和pppd的PPP链路完全不兼容 - 简化后的参考Chat脚本:
ABORT 'BUSY' ABORT 'NO ANSWER' ABORT 'NO CARRIER' ABORT 'NO DIALTONE' SAY "Initializing modem...\n" '' 'ATZ' OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0' OK 'AT+IFC=0,0' OK 'AT&W' SAY "Setting up PDP context...\n" OK 'AT+CGDCONT=1,"IP","AIRTELWAP.ES"' SAY "Dialing...\n" OK 'ATD*99#' CONNECT ''
2. 调整PPPD参数适配模块特性
从日志里的LCP DiscReq记录来看,链路协商环节存在异常:
- 取消注释
lcp-echo-failure 0和lcp-echo-interval 0:禁用LCP echo检测,部分SIM模块对该检测响应不及时,会主动触发链路断开 - 尝试设置
mtu 1400:LTE模块的MTU通常小于以太网的1500,过大的MTU会导致数据包分片异常,引发挂断 - 确认
user和password与运营商要求一致,你当前使用的WAP@WAP空密码如果是运营商指定则无需修改,否则需要核对当地Airtel的认证信息
3. 验证APN配置的正确性
AIRTELWAP.ES属于WAP类APN,部分地区的这类APN可能需要额外代理设置,或者你应该使用纯数据APN(比如airtelgprs.com,具体需查询当地Airtel的LTE数据APN)。可以先通过AT指令测试APN是否能正常激活:
screen /dev/ttyUSB2 115200 # 进入screen交互后输入以下指令 AT+CGDCONT=1,"IP","AIRTELWAP.ES" AT+CGACT=1,1 # 返回OK说明PDP激活成功,否则更换APN重试
4. 排查硬件与权限问题
- 确认
/dev/ttyUSB2是正确的PPP端口:SIM7600会生成多个ttyUSB设备,通常ttyUSB2为PPP端口,可通过ls /dev/ttyUSB*查看,或用minicom测试哪个端口能正常收发AT指令 - 确保模块供电充足:SIM7600联网时电流较大,树莓派USB口供电可能不足,建议给模块外接独立电源
- 检查串口占用情况:用
lsof /dev/ttyUSB2查看是否有其他进程占用串口,杀掉占用进程后再重新拨号
不少用户遇到过类似问题,大多是Chat脚本冗余命令、APN配置错误或PPPD参数不匹配导致的,按上述步骤调整后基本能解决挂断问题。
内容的提问来源于stack exchange,提问作者rpi_guru




