我在通过 GSM 调制解调器建立 ppp 连接时遇到了麻烦。该平台是基于 ARM 的嵌入式设备,运行 Debian Linux 5。这些脚本以前可以在此设备上使用,但不能在新设备上使用。我就是无法从聊天 (/usr/sbin/chat) 中获得足够的信息。
连接由 C 程序启动,调用如下所示:
/usr/sbin/pppd ttyS1 connect /usr/sbin/chat -S -s -v -T PIN-Nr -f /etc/chatscripts/chat_gprs_con
我已将问题追溯到聊天,它处理与调制解调器硬件的通信。
/usr/sbin/chat -e -v -T PIN-NR -f /etc/chatscripts/chat_gprs_con
chat_gprs_con 看起来像这样:
TIMEOUT 10
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\RINGRING\r\n\r\nRINGRING\r'
"" AT
'OK-\d+++\d\d\c-OK' ATZ
TIMEOUT 3
OK AT+CSQ
OK ATE1
OK AT+CPIN?
'CPIN: READY-AT+CPIN="\T"-OK' 'AT+COPS?'
OK 'at+cgdcont=1, "IP", "a1.net"'
OK ATD*99***1#
TIMEOUT 25
SAY "\nwaiting for connect...\n"
CONNECT ""
SAY "\nConnected."
SAY "\nIf the following ppp negotiations fail,\n"
SAY "try restarting the phone.\n"
我通过 /var/log/syslog 或 /var/log/messages 中的详细输出获得的唯一信息是:
Jan 1 00:12:30 evm chat[1405]: timeout set to 10 seconds
Jan 1 00:12:30 evm chat[1405]: abort on (\nBUSY\r)
Jan 1 00:12:30 evm chat[1405]: abort on (\nERROR\r)
Jan 1 00:12:30 evm chat[1405]: abort on (\nNO ANSWER\r)
Jan 1 00:12:30 evm chat[1405]: abort on (\nNO CARRIER\r)
Jan 1 00:12:30 evm chat[1405]: abort on (\nNO DIALTONE\r)
Jan 1 00:12:30 evm chat[1405]: abort on (\RINGRING\r\n\r\nRINGRING\r)
Jan 1 00:12:30 evm chat[1405]: send (AT^M)
Jan 1 00:12:30 evm chat[1405]: expect (OK)
Jan 1 00:12:40 evm chat[1405]: alarm
Jan 1 00:12:40 evm chat[1405]: send (\d+++\d\d)
Jan 1 00:12:43 evm chat[1405]: expect (OK)
Jan 1 00:12:53 evm chat[1405]: alarm
Jan 1 00:12:53 evm chat[1405]: Failed
但我不知道为什么它失败了:(
任何想法和帮助都非常感谢!谢谢,Ben
答案1
答案2
将调试添加到您的 pppd 配置文件中
答案3
我刚刚在我的个人资料中看到了这个帖子。
最后发现是硬件制造商搞砸了这个组件。我们把他们送回去修好了。
答案4
嗯,看起来调制解调器根本没有响应。您可以检查波特率和硬件握手。
由于我们正在谈论嵌入式平台,因此您应该确保 GSM 模块已打开,因为某些平台允许关闭模块以节省电量。