Wednesday, January 26, 2011

Find out why Linux chat script for ppp connection fails

Hi everybody, I'm having trouble making a ppp connection over a GSM Modem. The Platform is an ARM based embedded device, running Debian Linux 5. The scripts worked before with this device, but not with the new shipment. I just can't get enough information out of chat (/usr/sbin/chat).

The connection is started out of a C Program and the call looks something like this:

/usr/sbin/pppd ttyS1 connect /usr/sbin/chat -S -s -v -T PIN-Nr -f /etc/chatscripts/chat_gprs_con

I have tracked the Problem down to chat, which handles the communication with the modem hardware.

/usr/sbin/chat -e -v -T PIN-NR -f /etc/chatscripts/chat_gprs_con

chat_gprs_con looks like this:

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"

The only info I get throug the verbose output in /var/log/syslog or /var/log/messages is:

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

But I can't find out WHY it fails :(

Any ideas and help are very apprechiated! Thanks, Ben

  • add debug to your pppd config file

    From topdog
  • It looks like chat is receiving no reply from the modem/serial port.

    Try connecting to the modem using minicom and see what happens when you type stuff in by hand.

    You might also want to compile a copy of serlook for your platform.

    From symcbean
  • Well for it looks like the Modem does not answer at all. You could check for baudrate, and hardware handshake.

    Since our are talking about an embedded plattform you should make shure the GSM module is powered on since some plattforms allow to poweroff the module to save power.

0 comments:

Post a Comment