Pppd problem since 179

[root@ipfire /]# tail /var/log/messages
Oct 4 19:28:53 ipfire connectd[29425]: No pppd is running. Trying reconnect.
Oct 4 19:28:54 ipfire connectd[29425]: Reconnecting: Attempt 5 of 5
Oct 4 19:28:54 ipfire connectd[29425]: Switched to backup profile 1
Oct 4 19:28:54 ipfire connectd[29425]: Exiting gracefully connectd with PID 29425.
Oct 4 19:28:55 ipfire pppd[29614]: pppd 2.5.0 started by root, uid 0
Oct 4 19:28:55 ipfire pppd[29614]: Can’t create lock file /var/run/pppd/lock/LCK…ttyUSB0: No such file or directory
Oct 4 19:28:55 ipfire pppd[29614]: Exit.
Oct 4 19:28:55 ipfire connectd[29615]: Connectd (start) started with PID 29615
Oct 4 19:28:55 ipfire connectd[29615]: No pppd is running. Trying reconnect.
Oct 4 19:28:56 ipfire connectd[29615]: Reconnecting: Attempt 1 of 5

The same modem/ppp configuration worked ok since version ~163. Did not change a thing.

Maybe has to do with pppd 2.5.0 changed lock path, and nothing creates /run/ppp/lock (#15145) · Issues · alpine / aports · GitLab ?

And how to return to 178 without modem connection ?

Is it possible to dl the 178 image, scp it to my APU and then downgrade from 179 ?

I am not a pppd user so I cannot help there…

All of the archived images are here:
https://mirror1.ipfire.org/releases/ipfire-2.x/

At the bottom of the page is CU 178.

You may want to work with the Community before going back to 178

The message log above looks like it may be the middle of the reconnect messages. Can you look earlier in the log for the beginning and then look in the area (AND before). Please post those.


EDIT: ppp did change in August:
https://git.ipfire.org/?p=ipfire-2.x.git&a=search&h=HEAD&st=commit&s=pppd
https://git.ipfire.org/?p=ipfire-2.x.git&a=search&h=HEAD&st=commit&s=ppp

Yes, looks like the 2.5.0 update missed changed the lock file and don’t create it if it is not present.

All the people who tested out the 2.5.0 version in CU179 Testing flagged up a few bug issues with the configure settings but the lock file was not one of them. All those people must have setups that aren’t using the lock file.

The ppp devs are working on a 2.5.1 update which is intended to have the fix for this. A Pull Request for the problem has been raised

https://github.com/ppp-project/ppp/issues/419

but it is not yet finalised. There was some talk about making the lock file location configurable via configure but they now will hard code it but to the correct location. The ppp plan is to have the Pull Request (PR) for the patch done by end of this week or so.

https://github.com/ppp-project/ppp/pull/435

Once that is finalised then I can create an IPFire patch from the PR and submit a patch which would end up in Core Update 181 unless version 2.5.1 comes out quickly.

When CU181 Testing comes out it would be good if you can evaluate it to confirm that it works. I can create the update patches but I don’t have any ability to test out a ppp connection. I am running with dhcp from glass fibre via a code converter from optical signals to ethernet signals.

As a workaround it might work for you if you create the /var/run/ppd/lock/ directory because the message seems to be that the directory was not found and ppp does not create it if it is not present.

2 Likes

Adolf, i thank you for the detailed information about this pppd topic.

As soon as i am back on my APU i will tryout both and report back here.

How do i update or install a different release or a patch without internet connection on my APU ?

You can’t. Without internet your only option would be a fresh install of a core update followed by a restore of your IPFire backup but that presumes you already have an iso copy of the installation stored somewhere locally.

That is why I think your best bet is to try out creating the directory that is requested by ppp. If that directory is available then ppp will be able to place its lock file there and it should then start.

One thing I have noticed is that on IPFire the /var/run directory is symlinked to the /run directory.

So you need to create the pppd/lock/ directory in the /rundirectory so you create the directory /run/pppd/lock/.
After creating the directory the permissions of the pppd and lock directories should be 755. I would expect that to be the case but worth checking.

Once the directory is created then rebooting should allow ppp to find it.

What I don’t understand is why your configuration requires the lock file and all the other users who tested the 2.5.0 update did not run into this problem at all.

https://community.ipfire.org/t/core-update-179-testing-evaluating-ppp-2-5-0/10227

Maybe the use of a lock file is only required if the modem being used requests it in the communication flow.

1 Like

I can confirm the problem after the update

17:15:34 pppd[4324]: Can’t create lock file /var/run/pppd/lock/LCK…ttyUSB0: No such file or directory
17:15:34 pppd[4324]: pppd 2.5.0 started by root, uid 0
17:15:04 pppd[3869]: Exit.
17:15:04 pppd[3869]: Can’t create lock file /var/run/pppd/lock/LCK…ttyUSB0: No such file or directory
17:15:04 pppd[3869]: pppd 2.5.0 started by root, uid 0
17:14:28 pppd[3660]: Exit.
17:14:28 pppd[3660]: Can’t create lock file /var/run/pppd/lock/LCK…ttyUSB0: No such file or directory
17:14:28 pppd[3660]: pppd 2.5.0 started by root, uid 0
17:02:16 pppd[3686]: secondary DNS address yy.yy.yy.yy
17:02:16 pppd[3686]: primary DNS address yy.yy.yy.yy
17:02:16 pppd[3686]: remote IP address xx.xx.xx.xx
17:02:16 pppd[3686]: local IP address xx.xx.xx.xx
17:02:16 pppd[3686]: Could not determine remote IP address: defaulting to 10.xx.xx.xx
17:02:15 pppd[3686]: Connect: ppp0 ↔ /dev/ttyUSB0
17:02:15 pppd[3686]: Using interface ppp0
17:02:15 pppd[3686]: speed 20 not supported
17:02:15 pppd[3686]: Serial connection established.
17:02:15 chat[3712]: send ()
17:02:15 chat[3712]: – got it
17:02:15 chat[3712]: CONNECT
17:02:15 chat[3712]: sleep 5^MdATDT*99#^M^M
17:02:15 chat[3712]: OK^M
17:02:15 chat[3712]: AT^M^M

edit
The usb lte modem mentioned here is the Huawei E3372.

BR

Can you try creating the directory /run/pppd/lock/ and see if that solves the problem?

1 Like

I’m sorry but I have no way to check at the moment. :frowning:
This IPFire is at a distance of about 100 kilometers.
I did the actualization in early September.
I didn’t have time to analyze so I converted the lte modem to hilink.

edit:

After converting the lte usb modem to hilink, it began to work, but there was another problem:
IPFire works after reboot
but
after powering off and powering on it doesn’t work (restarting after unplugging, plugging in lte usb modem helps) :confused:

Today I caught a free moment.
In my “resources” I found an E3131 usb modem (no hilink) and used it for testing on a virtual machine.

IPFire 2.27 (x86_64) - Core-Update 178
The modem connects.


After upgrade to IPFire 2.27 (x86_64) - Core-Update 179 and reboot

obraz


After adding /var/run/pppd/lock,

the modem connects

16:49:34 pppd[3067]:  Script /etc/ppp/ip-up finished (pid 3126), status = 0x0
16:49:09 pppd[3067]:  Script /etc/ppp/ip-up started (pid 3126)
16:49:09 pppd[3067]:  secondary DNS address 89.xx.xx.xx
16:49:09 pppd[3067]:  primary DNS address 185.xx.xx.xx
16:49:09 pppd[3067]:  remote IP address 10.xx.xx.xx
16:49:09 pppd[3067]:  local IP address 10.yy.yy.yy
16:49:09 pppd[3067]:  Could not determine remote IP address: defaulting to 10.xx.xx.xx
16:49:09 pppd[3067]:  rcvd [IPCP ConfAck id=0x4 <addr 10.yy.yy.yy> <ms-dns1 185.xx.xx.xx> <ms-dns2 89.xx.xx.xx>]
16:49:09 pppd[3067]:  sent [IPCP ConfReq id=0x4 <addr 10.yy.yy.yy> <ms-dns1 185.xx.xx.xx> <ms-dns2 89.xx.xx.xx>]
16:49:09 pppd[3067]:  rcvd [IPCP ConfNak id=0x3 <addr 10.yy.yy.yy> <ms-dns1 185.xx.xx.xx> <ms-dns2 89.xx.xx.xx>]
16:49:08 pppd[3067]:  sent [IPCP ConfReq id=0x3 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
16:49:08 pppd[3067]:  rcvd [IPCP ConfNak id=0x2 <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
16:49:07 pppd[3067]:  sent [IPCP ConfAck id=0x2]
16:49:07 pppd[3067]:  rcvd [IPCP ConfReq id=0x2]
16:49:07 pppd[3067]:  sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
16:49:07 pppd[3067]:  rcvd [IPCP ConfNak id=0x1 <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
16:49:07 pppd[3067]:  sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
16:49:07 pppd[3067]:  rcvd [IPCP ConfReq id=0x1]
16:49:07 pppd[3067]:  sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
16:49:07 pppd[3067]:  sent [LCP ConfAck id=0x2 <mru 1500> <magic 0x54f>]
16:49:07 pppd[3067]:  rcvd [LCP ConfReq id=0x2 <mru 1500> <magic 0x54f>]
16:49:07 pppd[3067]:  rcvd [LCP ConfAck id=0x1 <magic 0xd8363709>]
16:49:07 pppd[3067]:  sent [LCP ConfRej id=0x1 <accomp> <pcomp> <asyncmap 0x0> <auth chap MD5>]
16:49:07 pppd[3067]:  No auth is possible
16:49:07 pppd[3067]:  rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x54f > <auth chap MD5>]
16:49:07 pppd[3067]:  sent [LCP ConfReq id=0x1 <magic 0xd8363709>]
16:49:06 pppd[3067]:  Connect: ppp0 <--> /dev/ttyUSB0
16:49:06 pppd[3067]:  Using interface ppp0
16:49:06 pppd[3067]:  using channel 1
16:49:06 pppd[3067]:  Serial connection established.
16:49:06 pppd[3067]:  Script /etc/ppp/dialer finished (pid 3087), status = 0x0
16:49:06 chat[3087]: send ()
16:49:06 chat[3087]: -- got it
16:49:06 chat[3087]: CONNECT
16:49:06 chat[3087]: sleep 5^MdATDT*99#^M^M
16:49:06 chat[3087]: OK^M
16:49:06 chat[3087]: AT^M^M
16:49:06 chat[3087]: OK^M
16:49:06 chat[3087]: AT^M^M
16:49:06 chat[3087]: ERROR^M
16:49:06 chat[3087]: ATM0^M^M
16:49:06 chat[3087]: ^M
16:49:06 chat[3087]: expect (CONNECT)
16:49:06 chat[3087]: send (dATDT*99#^M)
16:49:06 chat[3087]: -- got it
16:49:06 chat[3087]: OK
16:49:06 chat[3087]: ATH0^M^M
16:49:06 chat[3087]: ^M
16:49:06 chat[3087]: expect (OK)
16:49:06 chat[3087]: timeout set to 45 seconds
16:49:06 chat[3087]: send (sleep 5^M)
16:49:06 chat[3087]: send (AT^M)
16:49:06 chat[3087]: send (AT^M)
16:49:06 chat[3087]: -- got it
16:49:06 chat[3087]: OK
16:49:06 chat[3087]: +++ATZ^M^M
16:49:06 chat[3087]: ^M
16:49:06 chat[3087]: expect (OK)
16:49:06 chat[3087]: send (ATM0^M)
16:49:06 chat[3087]: -- got it
16:49:06 chat[3087]: OK
16:49:06 chat[3087]: AT+CGDCONT=1,"IP","internet"^M^M
16:49:06 chat[3087]: ^M
16:49:06 chat[3087]: expect (OK)
16:49:06 chat[3087]: send (ATH0^M)
16:49:06 chat[3087]: -- got it
16:49:06 chat[3087]: OK
16:49:06 chat[3087]: +++ATZ^M^M
16:49:06 chat[3087]: expect (OK)
16:49:05 chat[3087]: send (+++ATZ^M)
16:49:05 chat[3087]: send (AT+CGDCONT=1,"IP","internet"^M)
16:49:05 chat[3087]: send (+++ATZ^M)
16:49:05 chat[3087]: abort on (^JNO CARRIER^M)
16:49:05 chat[3087]: abort on (^JRINGING^M^J^M^JRINGING^M)
16:49:05 chat[3087]: abort on (^JNO ANSWER^M)
16:49:05 chat[3087]: abort on (^JBUSY^M)
16:49:05 chat[3087]: report (CONNECT)
16:49:05 chat[3087]: timeout set to 3 seconds
16:49:04 pppd[3067]:  pppd 2.5.0 started by root, uid 0
16:48:33 pppd[2810]:  Exit.
16:48:33 pppd[2810]:  Can't create lock file /var/run/pppd/lock/LCK..ttyUSB0: No such file or directory
16:48:33 pppd[2810]:  pppd 2.5.0 started by root, uid 0
16:48:02 pppd[2571]:  Exit.
16:48:02 pppd[2571]:  Can't create lock file /var/run/pppd/lock/LCK..ttyUSB0: No such file or directory
16:48:02 pppd[2571]:  pppd 2.5.0 started by root, uid 0
16:47:31 pppd[2097]:  Exit.

After a reboot, the /pppd/lock subfolders disappear.

Best Regards

1 Like

Duuh.

Of course they do. The /var/run directory tree is a temporary set as /run is created anew every time a reboot is done.

However it is good news that creating the tree allows ppp to work for you and hopefully @robidoo .

When the fixed package is available then it will be okay as ppp will then use /var/run/lock and that tree is created in the boot sequence.

Until the updated package is available then the best option is to put the commands creating the /ppd/lock directories into a script and place in rc.local, that way they will be recreated when a reboot is carried out.

When the updated package is available then that script can be disposed of.

2 Likes

Ok, i added “mkdir -p /run/pppd/lock” to /etc/sysconfig/rc.local and my Huawei ME909s-120 connects again.

Thanks @bonnietwin @tphz @jon for caring!

1 Like