No Connection on PPP

Hi Mark,

Thank you very much indeed for your help with this - I will try to be as complete as possible in my answers:

A) Hardware Questions:

Power Supply: Yes, I believe the power supply is healthy - it is the official Raspberry Pi version.

Antennas: I tried the antennas that came with the kit but I found that the ones that come with my ‘usual’ 4G modem I normally use were better. (This is probably because I haven’t stuck the supplied antennas onto a surface yet. I know with Taoglas ‘stick-on’ antennas their VSWR is best when they are applied to a surface). Also, I feel that the antennas are working properly because I quickly get an indication from the LED that the module can see the cell tower ok.

mPCIe Module: It is the Quectel one supplied with the 4G ‘kit’.

SIM Compatibilty: I can’t be sure of this because I’ve never had any problems with it before. I have used this same in lots of other projects, e.g. Arduino, RPi as well as other 4G modems.

B) I have been running the Pi headless except for a USB keyboard/mouse dongle that I left plugged in when I first set it up - I can run it with SSH over wired Ethernet so I will remove this for future testing.

C) I have uninstalled to auto-reconnect service:

login as: pi
pi@192.168.1.69's password:
Linux raspberrypi 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jun 22 17:45:34 2020 from 192.168.1.64

Wi-Fi is currently blocked by rfkill.
Use raspi-config to set the country before use.

pi@raspberrypi:~ $ sudo systemctl stop reconnect.service
pi@raspberrypi:~ $ sudo systemctl disable reconnect.service
Removed /etc/systemd/system/multi-user.target.wants/reconnect.service.
pi@raspberrypi:~ $ sudo rm /etc/ppp/peers/provider
pi@raspberrypi:~ $ sudo rm /etc/chatscripts/chat-connect
pi@raspberrypi:~ $ sudo rm /etc/chatscripts/chat-disconnect
pi@raspberrypi:~ $

D) When I check the port assignment I get:

pi@raspberrypi:~ $ dmesg -T | grep tty
[Mon Jun 22 17:20:34 2020] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 bcm2708_fb.fbwidth=720 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[Mon Jun 22 17:20:34 2020] console [tty1] enabled
[Mon Jun 22 17:20:34 2020] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 81, base_baud = 0) is a PL011 rev2
[Mon Jun 22 17:20:34 2020] 3f215040.serial: ttyS0 at MMIO 0x0 (irq = 53, base_baud = 31250000) is a 16550
[Mon Jun 22 17:20:41 2020] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB0
[Mon Jun 22 17:20:41 2020] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB1
[Mon Jun 22 17:20:41 2020] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB2
[Mon Jun 22 17:20:41 2020] usb 1-1.1.2: GSM modem (1-port) converter now attached to ttyUSB3
pi@raspberrypi:~ $

E) Apologies but at this point I’m not sure what to do. You ask me “…to select the last assigned port to insert into the install script.” This will be ttyUSB3 I guess. Do you mean that you want me to edit the script and insert this text somewhere or should I simply run install.sh and type that text when it gets to this part…

echo "${YELLOW}What is your device communication PORT? (ttyS0/ttyUSB3/etc.)${SET}"
read devicename

If you could please answer that I will continue to follow your instructions.

Again, many thanks for your help.

Good morning,
progress!
yes, enter ttyUSB3 as the port. nothing more the parent path will be added by the script.
a word about port assignment -
on boot they are usually consecutive and grab 0-3, unless you have another peripheral that “boots faster” and thus recognized by the OS sooner. In some cases you can see the port assignment split too. This can be controlled with a SYMLINK rule (I can post tutorial later is anyone is interested).
With all that said, the first two ports are bound for serial comm to the GPS and the last two bound for serial to the LTE modem. You can use either assigned but if you want parallel task you can use both., i.e., I want to retrieve the Signal level, ICCID & IMEI and start a ppp session simultaneously and independent of each other I would use (in your case) ttyUSB2 to fetch my info and ttyUSB3 to establish a session. Also, getting the former information does NOT require an active carrier session.

Post back and let everyone know your status.

Thanks

Many thanks. I have carried out the instructions and for the first time have actually seen some errors. Here is what I did:

I ran…

sh install.sh

…and answered the following:

6 for 3G/4G Base HAT

APN = mobile.o2.co.uk

Password? = Y

Username = o2web

Password = password

Device communication port = ttyUSB3

Activate auto-reconnect = n

(Noted that I should run ‘sudo pon’ to connect and ‘sudo poff’ to disconnect)

Pressed ENTER to reboot

Then got the following:

Press ENTER key to reboot
Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open initctl fifo: Permission denied
Failed to talk to init daemon.
pi@raspberrypi:~ $

(I will leave the device as it is as long as I can without rebooting, etc. in case that’s useful.)

Hi there,
that’s an error in the install script … in short it doesn’t have permission to reboot so it can’t push a reboot message to the terminal window “wall” or broadcast to any other sessions, stop a service, etc.
Just go ahead and reboot it yourself ‘sudo reboot’

    • I misread your early post thinking you did NOT need a username/pwd.
      did you install from the ‘pi’ user account?
      check the home directory for ‘provider’ file
      make sure the user & password values are there & correct.
      ‘noauth’ should read ‘#noauth’, if not change it.
      also check for ‘debug’ on a line by itself, remove ‘#’ if present.
      this should give you more verbose logs to screen when you run.

let us know how you make out.

Again, many thanks.

Yes, I installed from the ‘Pi’ account. I only have that one as far as I know (although I suspect there may also be a ‘root’ that I am ‘sudo’-ing into).

I verified that the ‘provider’ file is set correctly. It needed no changes.

I rebooted the Pi with

sudo reboot

I verified that the blue LED was in its ‘blinking off’ state. (It seems that the ‘blinking on’ state means that it can’t see a cell tower but that might be just me misinterpreting the status.)

As instructed by the installation script I tried ‘sudo pon’ and got this:

pi@raspberrypi:~ $ sudo pon
The file /etc/ppp/peers/provider does not exist. Please create it or use
a command line argument to use another file in the /etc/ppp/peers/ directory.

Should I perhaps copy the ‘provider’ file into the /etc/ppp/peers/ directory? (Seems like a bit of a hack.)

yes, by default user:pi is part of the ‘root’ group. ‘sudo’ elevates your permissions to run/edit etc., without actually being logged in as ‘root’ , a liitle bit of protection if you will.
the install script should have built out the directory trees /etc/… chatscripts & ppp. Your home directory has a copy of: chat-connect & disconnect & provider.
pon is a shell script in /usr/bin/ and by default will call /etc/ppp/peers/provider. - So yes, copy from your home to /peers/ like so: ‘sudo cp ~/provider /etc/ppp/peers/’

  • this is not normal behavior, something went wrong with the install or maybe the uninstall of reconnect, etc.
    because of this missing file check the existence of /etc/chatscripts and copy ‘chat-connect’ & ‘-disconnect’ files there if they don’t exist.
    Post back your status.
    thanks

Ok, thanks, here goes:

I checked ‘chatscripts’ with…

pi@raspberrypi:~ $ sudo ls /etc/chatscripts
gprs  pap  provider

I therefore copied the two files across as you suggested with:

sudo cp ~/chat-connect /etc/chatscripts
sudo cp ~/chat-disconnect /etc/chatscripts

Thinking that this should now be set up correct I tried:

pi@raspberrypi:~ $ sudo pon
/usr/sbin/pppd: The remote system (3gppp) is required to authenticate itself
/usr/sbin/pppd: but I couldn't find any suitable secret (password) for it to use to do so.
pi@raspberrypi:~ $

I’m not sure what secret (password) this is talking about.

so pon calls provider which also calls chat-connect.
‘3gppp’ is the generic name for the connection/carrier, also in ‘provider’
‘provider’ should also have …
user “o2web”
password “password”
#noauth

you can also post the contents of your provider file, there is nothing unique or private to your specific setup.

This is the ‘provider’ file as it is at the moment:

 /etc/ppp/peers/provider
/dev/ttyUSB3 115200
# The chat script, customize your APN in this file
connect 'chat -s -v -f /etc/chatscripts/chat-connect -T mobile.o2.co.uk'
# The close script
disconnect 'chat -s -v -f /etc/chatscripts/chat-disconnect'
# Hide password in debug messages
hide-password
# The phone is not required to authenticate
#noauth
user "o2web"
password "password"
# Debug info from pppd
debug
# If you want to use the HSDPA link as your gateway
defaultroute
# pppd must not propose any IP address to the peer
noipdefault
# No ppp compression
novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local
# For sanity, keep a lock on the serial line
lock
modem
dump
updetach
# Hardware flow control
nocrtscts
remotename 3gppp
ipparam 3gppp
ipcp-max-failure 30
# Ask the peer for up to 2 DNS server addresses
usepeerdns

When you say the file should also have the username and password - those two have always been in there. Do you mean they should be after the reference to 3gppp as well?

that’s all good.
I suspect you’ll have to edit the chap-secrets in /etc/ppp/.
the column heading in this file is:
#client server secret IP addresses
on the next line enter with a [tab]space between each. (the values won’t line up with the column headings but that’s okay)
3gppp raspberrypi password *
save the file & try ‘sudo pon’ again.
post your results and IF you want an explanation of the chap-secrets values I can explain.
thanks

for clarity the asterisk ‘*’ IS the value in the 4th column for sample above.
thanks

Thanks Mark,

(Your explanation of how to edit the file, e.g. tabs, is very helpful.)

I have edited the chap-secrets file as suggested and ended up with this…

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
3gppp   raspberrypi     password        *

I then tried…

sudo pon

…and this time got a lot of text on the screen as follows:

pi@raspberrypi:~ $ sudo pon
pppd options in effect:
debug           # (from /etc/ppp/peers/provider)
updetach                # (from /etc/ppp/peers/provider)
dump            # (from /etc/ppp/peers/provider)
auth            # (from /etc/ppp/options)
user o2web              # (from /etc/ppp/peers/provider)
password ??????         # (from /etc/ppp/peers/provider)
remotename 3gppp                # (from /etc/ppp/peers/provider)
/dev/ttyUSB3            # (from /etc/ppp/peers/provider)
115200          # (from /etc/ppp/peers/provider)
lock            # (from /etc/ppp/peers/provider)
connect chat -s -v -f /etc/chatscripts/chat-connect -T mobile.o2.co.uk          # (from /etc/ppp/peers/provider)
disconnect chat -s -v -f /etc/chatscripts/chat-disconnect               # (from /etc/ppp/peers/provider)
nocrtscts               # (from /etc/ppp/peers/provider)
modem           # (from /etc/ppp/peers/provider)
asyncmap 0              # (from /etc/ppp/options)
lcp-echo-failure 4              # (from /etc/ppp/options)
lcp-echo-interval 30            # (from /etc/ppp/options)
hide-password           # (from /etc/ppp/peers/provider)
novj            # (from /etc/ppp/peers/provider)
novjccomp               # (from /etc/ppp/peers/provider)
ipcp-accept-local               # (from /etc/ppp/peers/provider)
ipcp-accept-remote              # (from /etc/ppp/peers/provider)
ipparam 3gppp           # (from /etc/ppp/peers/provider)
noipdefault             # (from /etc/ppp/peers/provider)
ipcp-max-failure 30             # (from /etc/ppp/peers/provider)
defaultroute            # (from /etc/ppp/peers/provider)
usepeerdns              # (from /etc/ppp/peers/provider)
noccp           # (from /etc/ppp/peers/provider)
noipx           # (from /etc/ppp/options)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
AT^M^M
OK
 -- got it

send (ATE0^M)
expect (OK)
^M
ATE0^M^M
OK

 -- got it

send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel^M
EC25^M
Revision: EC25EFAR06A04M4G^M
^M
SubEdition: V05^M
^M
+CSQ: 16,99^M
^M
+COPS: 0,0,"O2 - UK",7^M
^M
+CGREG: 0,1^M
^M
OK
 -- got it

send (AT+CGDCONT=1,"IP","mobile.o2.co.uk",,0,0^M)
expect (OK)
^M
^M
OK
 -- got it

send (ATD*99#^M)
expect (CONNECT)
^M
^M
CONNECT
 -- got it

Script chat -s -v -f /etc/chatscripts/chat-connect -T mobile.o2.co.uk finished (pid 1048), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth eap> <magic 0x18146ffc> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xd11cb574> <pcomp> <accomp>]
sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xd11cb574> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <auth eap>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap MD5> <magic 0x18146ffc> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x2 <auth chap MD5>]
sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x18146ffc> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x3 <asyncmap 0x0> <magic 0x18146ffc> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x18146ffc]
peer refused to authenticate: terminating link
sent [LCP TermReq id=0x4 "peer refused to authenticate"]
rcvd [LCP DiscReq id=0x1 magic=0xd11cb574]
rcvd [CHAP Challenge id=0x1 <b9453772d48d8104165ed798ac515b61>, name = "UMTS_CHAP_SRVR"]
Discarded non-LCP packet when LCP not open
rcvd [LCP EchoRep id=0x0 magic=0xd11cb574 18 14 6f fc]
rcvd [LCP TermAck id=0x4]
Connection terminated.
Can't get terminal parameters: Input/output error
Script chat -s -v -f /etc/chatscripts/chat-disconnect finished (pid 1054), status = 0x2
disconnect script failed
pi@raspberrypi:~ $

One thing that occurs to me is that in the UK o2 seem to use PAP rather than CHAP. In anticipation of editing this file being needed I took a look at ‘pap-secrets’ in /etc/ppp which looks like this:

# /etc/ppp/pap-secrets
#
# This is a pap-secrets file to be used with the AUTO_PPP function of
# mgetty. mgetty-0.99 is preconfigured to startup pppd with the login option
# which will cause pppd to consult /etc/passwd (and /etc/shadow in turn)
# after a user has passed this file. Don't be disturbed therefore by the fact
# that this file defines logins with any password for users. /etc/passwd
# (again, /etc/shadow, too) will catch passwd mismatches.
#
# This file should block ALL users that should not be able to do AUTO_PPP.
# AUTO_PPP bypasses the usual login program so it's necessary to list all
# system userids with regular passwords here.
#
# ATTENTION: The definitions here can allow users to login without a
# password if you don't use the login option of pppd! The mgetty Debian
# package already provides this option; make sure you don't change that.

# INBOUND connections

# Every regular user can use PPP and has to use passwords from /etc/passwd
*       hostname        ""      *

# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest   hostname        "*"     -
master  hostname        "*"     -
root    hostname        "*"     -
support hostname        "*"     -
stats   hostname        "*"     -

# OUTBOUND connections

# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.

#       *       password

Since I got a “peer refused to authenticate” in the output following the ‘sudo pon’ do you think I need to edit the pap-secrets file instead?

progress!
first try this -
add another record to the chap-secrets file:
raspberrypi 3gppp password *

rerun ‘sudo pon’

Thanks Mark, I have made the edit and the ‘chap-secrets’ file now looks like this:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
3gppp   raspberrypi     password        *
raspberrypi     3gppp   password        *

I then ran ‘sudo pon’ and I got this:

pi@raspberrypi:~ $ sudo pon
pppd options in effect:
debug           # (from /etc/ppp/peers/provider)
updetach                # (from /etc/ppp/peers/provider)
dump            # (from /etc/ppp/peers/provider)
auth            # (from /etc/ppp/options)
user o2web              # (from /etc/ppp/peers/provider)
password ??????         # (from /etc/ppp/peers/provider)
remotename 3gppp                # (from /etc/ppp/peers/provider)
/dev/ttyUSB3            # (from /etc/ppp/peers/provider)
115200          # (from /etc/ppp/peers/provider)
lock            # (from /etc/ppp/peers/provider)
connect chat -s -v -f /etc/chatscripts/chat-connect -T mobile.o2.co.uk         # (from /etc/ppp/peers/provider)
disconnect chat -s -v -f /etc/chatscripts/chat-disconnect               # (from /etc/ppp/peers/provider)
nocrtscts               # (from /etc/ppp/peers/provider)
modem           # (from /etc/ppp/peers/provider)
asyncmap 0              # (from /etc/ppp/options)
lcp-echo-failure 4              # (from /etc/ppp/options)
lcp-echo-interval 30            # (from /etc/ppp/options)
hide-password           # (from /etc/ppp/peers/provider)
novj            # (from /etc/ppp/peers/provider)
novjccomp               # (from /etc/ppp/peers/provider)
ipcp-accept-local               # (from /etc/ppp/peers/provider)
ipcp-accept-remote              # (from /etc/ppp/peers/provider)
ipparam 3gppp           # (from /etc/ppp/peers/provider)
noipdefault             # (from /etc/ppp/peers/provider)
ipcp-max-failure 30             # (from /etc/ppp/peers/provider)
defaultroute            # (from /etc/ppp/peers/provider)
usepeerdns              # (from /etc/ppp/peers/provider)
noccp           # (from /etc/ppp/peers/provider)
noipx           # (from /etc/ppp/options)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
^M
OK
 -- got it

send (ATE0^M)
expect (OK)
^M
^M
OK
 -- got it

send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel^M
EC25^M
Revision: EC25EFAR06A04M4G^M
^M
SubEdition: V05^M
^M
+CSQ: 15,99^M
^M
+COPS: 0,0,"O2 - UK",7^M
^M
+CGREG: 0,1^M
^M
OK
 -- got it

send (AT+CGDCONT=1,"IP","mobile.o2.co.uk",,0,0^M)
expect (OK)
^M
^M
OK
 -- got it

send (ATD*99#^M)
expect (CONNECT)
^M
^M
CONNECT
 -- got it

Script chat -s -v -f /etc/chatscripts/chat-connect -T mobile.o2.co.uk finished (pid 1477), status = 0x0
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth eap> <magic 0xbc12f5b8> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap MD5> <magic 0xd1963d6c> <pcomp> <accomp>]
sent [LCP ConfAck id=0x2 <asyncmap 0x0> <auth chap MD5> <magic 0xd1963d6c> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <auth eap>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap MD5> <magic 0xbc12f5b8> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x2 <auth chap MD5>]
sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0xbc12f5b8> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x3 <asyncmap 0x0> <magic 0xbc12f5b8> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0xbc12f5b8]
peer refused to authenticate: terminating link
sent [LCP TermReq id=0x4 "peer refused to authenticate"]
rcvd [LCP DiscReq id=0x3 magic=0xd1963d6c]
rcvd [CHAP Challenge id=0x1 <d0e1746bc474d3c986f714c7f46f1e55>, name = "UMTS_CHAP_SRVR"]
Discarded non-LCP packet when LCP not open
rcvd [LCP EchoRep id=0x0 magic=0xd1963d6c bc 12 f5 b8]
rcvd [LCP TermAck id=0x4]
Connection terminated.
Can't get terminal parameters: Input/output error
Script chat -s -v -f /etc/chatscripts/chat-disconnect finished (pid 1484), status = 0x2
disconnect script failed
pi@raspberrypi:~ $

it appears that the carrier is sending a challenge request but your device is not responding AS it is received after your device has started the disconnect process.
let’s extend the global timeout first:
edit - /etc/ppp/peers/provider
insert ‘passive’ (on a line by itself - anywhere is fine really but put it under the ‘password’ line just to keep track of it)

rerun ‘sudo pon’

disregard last instruction if you haven’t implemented yet. If you have you can leave it for now, no harm caused.

I went to the O2 site and see that they want PAP.
uncomment last line in ‘/etc/ppp/pap-secrets’
it will read ’ * password ’
comment out the two lines added to ‘/etc/ppp/chap-secrets’
add ‘+pap’ to ‘/etc/ppp/peers/provider’ OR uncomment this line from ‘/etc/ppp/options’

rerun ‘sudo pon’

sorry for the confusion.

Ok, I have uncommented the last line of ‘pap-secrets’ and it now contains:

#
# /etc/ppp/pap-secrets
#
# This is a pap-secrets file to be used with the AUTO_PPP function of
# mgetty. mgetty-0.99 is preconfigured to startup pppd with the login option
# which will cause pppd to consult /etc/passwd (and /etc/shadow in turn)
# after a user has passed this file. Don't be disturbed therefore by the fact
# that this file defines logins with any password for users. /etc/passwd
# (again, /etc/shadow, too) will catch passwd mismatches.
#
# This file should block ALL users that should not be able to do AUTO_PPP.
# AUTO_PPP bypasses the usual login program so it's necessary to list all
# system userids with regular passwords here.
#
# ATTENTION: The definitions here can allow users to login without a
# password if you don't use the login option of pppd! The mgetty Debian
# package already provides this option; make sure you don't change that.

# INBOUND connections

# Every regular user can use PPP and has to use passwords from /etc/passwd
*       hostname        ""      *

# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest   hostname        "*"     -
master  hostname        "*"     -
root    hostname        "*"     -
support hostname        "*"     -
stats   hostname        "*"     -

# OUTBOUND connections

# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.

        *       password

I have commented out the two lines added in ‘chap-secrets’ which now contains:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
# 3gppp raspberrypi     password        *
# raspberrypi   3gppp   password        *

It was easier to understand how to uncomment the ‘+pap’ line from /etc/ppp/options so I did that.

When I ran ‘sudo pon’ I got this:

pi@raspberrypi:~ $ sudo pon
/usr/sbin/pppd: The remote system (3gppp) is required to authenticate itself
/usr/sbin/pppd: but I couldn't find any suitable secret (password) for it to use to do so.
pi@raspberrypi:~ $

As a guess I then inserting the line ‘+pap’ above the username and password in ‘provider’ and then ran ‘sudo pon’ but got the same result.

ugh!
Okay, try this …
edit ‘/etc/ppp/options’ again …
find '#name ’ and change to ‘name o2web’
edit ‘/etc/ppp/pap-secrets’
comment out ‘* password’
add line ‘o2web * password’ - [tab] spacing between each.

rerun ‘sudo pon’

thanks

Ok:

I edited /etc/ppp/options’, found '#name’ and changed it to ‘name o2web’

I edited ‘/etc/ppp/pap-secrets’ and commented out ‘* password’.

‘/etc/ppp/pap-secrets’ now says:

#
# /etc/ppp/pap-secrets
#
# This is a pap-secrets file to be used with the AUTO_PPP function of
# mgetty. mgetty-0.99 is preconfigured to startup pppd with the login option
# which will cause pppd to consult /etc/passwd (and /etc/shadow in turn)
# after a user has passed this file. Don't be disturbed therefore by the fact
# that this file defines logins with any password for users. /etc/passwd
# (again, /etc/shadow, too) will catch passwd mismatches.
#
# This file should block ALL users that should not be able to do AUTO_PPP.
# AUTO_PPP bypasses the usual login program so it's necessary to list all
# system userids with regular passwords here.
#
# ATTENTION: The definitions here can allow users to login without a
# password if you don't use the login option of pppd! The mgetty Debian
# package already provides this option; make sure you don't change that.

# INBOUND connections

# Every regular user can use PPP and has to use passwords from /etc/passwd
*       hostname        ""      *

# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest   hostname        "*"     -
master  hostname        "*"     -
root    hostname        "*"     -
support hostname        "*"     -
stats   hostname        "*"     -

# OUTBOUND connections

# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.

#       *       password
o2web   *       password

I re-ran ‘sudo pon’ and got:

pi@raspberrypi:~ $ sudo pon
/usr/sbin/pppd: The remote system (3gppp) is required to authenticate itself
/usr/sbin/pppd: but I couldn't find any suitable secret (password) for it to use to do so.
pi@raspberrypi:~ $

Sorry this is being such a nuisance!

no worries.
Data only services in the States do not require auth so I haven’t had to reference it in a long time.

A couple other things you can try;

  1. shutdown, pull power for count of ~10, apply power to reboot. rerun ‘sudo pon’
    OR
  2. in ‘/etc/ppp/peers/provider’

uncomment ‘#noauth
comment ‘user …’ | ‘password…’ | ‘passive’
comment ‘+pap’ in ‘/etc/ppp/options’
rerun ‘sudo pon’

  • I know it appears that O2 wants PAP Auth but maybe it’s worth a try.
    OR
    If still unsuccessful … uninstall the entire sixfab package, reboot and reinstall making sure that you run from your /home/pi/ directory and follow the instructions exactly.
    There’s still the question as to why providers, chat-connect/disconnect had to be copied to their applicable folders. Make sure root owns these files after install too.

If you’re interested in raeding about PPP have a look here: https://www.tldp.org/HOWTO/PPP-HOWTO/

Post back and let us know if any of this worked!?

thanks