We've been using Ubuntu 8.10 with a GPRS modem module to connect to Vodafone in the UK and it's all worked fine. For various other reasons we need to upgrade to Ubuntu 9.10 but now the pppd negotiation fails even though identical /etc/ppp/options and other /etc/ppp/* files (including pap/chap secrets) are being used.

In the old system the negotiation proceeds as follows:

Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfAck id=0x1 ]
rcvd [LCP ConfReq id=0x2 ]
No auth is possible
sent [LCP ConfRej id=0x2 ]
rcvd [LCP ConfReq id=0x3 ]
sent [LCP ConfAck id=0x3 ]
sent [CCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
rcvd [IPCP ConfRej id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [IPCP ConfReq id=0x1 ]
sent [IPCP ConfAck id=0x1 ]
rcvd [IPCP ConfNak id=0x2 ]
sent [IPCP ConfReq id=0x3 ]
rcvd [IPCP ConfAck id=0x3 ]
not replacing existing default route via 192.168.0.1
local IP address 10.94.83.69
remote IP address 10.0.0.1
Script /etc/ppp/ip-up started (pid 4930)
Script /etc/ppp/ip-up finished (pid 4930), status = 0x0
sent [CCP ConfReq id=0x1 ]
sent [CCP ConfReq id=0x1 ]
rcvd [LCP ProtRej id=0x0 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f 32]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received

But now it fails with:

Serial connection established.
using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfAck id=0x1 ]
rcvd [LCP ConfReq id=0xa ]
No auth is possible
sent [LCP ConfRej id=0xa ]
rcvd [LCP ConfReq id=0xb ]
sent [LCP ConfAck id=0xb ]
sent [CCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
rcvd [LCP ProtRej id=0x1 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f 32]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfRej id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [LCP TermReq id=0x3 "Normal Termination by NCP"]
LCP terminated by peer (Normal Termination by NCP)
sent [LCP TermAck id=0x3]
Connection terminated.
Script /usr/sbin/chat -v -f /etc/ppp/gprs-disconnect.chat finished (pid 6306), status = 0x0
Serial link disconnected.
Modem hangup

Thinking the CCP rejection may be involved and noticing that in /etc/ppp/options the wrong "user" had been specified we've tried "noccp" and various other options but the closest we've got is:

Serial connection established.
using channel 4
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfAck id=0x1 ]
rcvd [LCP ConfReq id=0x9 ]
sent [LCP ConfAck id=0x9 ]
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
sent [PAP AuthReq id=0x1 user="web" password=]
rcvd [PAP AuthAck id=0x1 "TTP Com PPP - Password Verified OK"]
Remote message: TTP Com PPP - Password Verified OK
PAP authentication succeeded
sent [IPCP ConfReq id=0x1 ]
rcvd [LCP TermReq id=0x3 "Normal Termination by NCP"]
LCP terminated by peer (Normal Termination by NCP)
sent [LCP TermAck id=0x3]
Connection terminated.
Script /usr/sbin/chat -v -f /etc/ppp/gprs-disconnect.chat finished (pid 11849), status = 0x0
Serial link disconnected.
Modem hangup

But still we're getting this "id=0x03 "Normal Termination by NCP". I've even tried lifting the 8.10 version of /usr/sbin/pppd and replacing the later one in Ubuntu 9.10 but still to no avail.

Any advice gratefully received!