Discussion:
[gentoo-user] Spurious error messages at boot up from the new dhcpcd
(too old to reply)
Alan Mackenzie
2023-08-22 10:00:01 UTC
Permalink
Hello, gentoo.

With the new dhcpcd-10.0.2 (previous version being ?9.5.1) I get spurious
error messages on boot up. In particular, I see this:

* Starting DHCP Client Daemon ...
* [ ok ] * Bringing up interface enp38s0
* Caching network module dependencies
* config_enp38s0 not specified; defaulting to DHCP
* dhcp ...
* The dhcpcd version is too old. Please upgrade.
* [ !! ] * ERROR: net.enp38s0 failed to start

.. However, after ~1 hour searching for the problem, I just tried using
enp38s0 to ssh onto my ISP, and it worked. In /var/log/messages, I see
the following:

Aug 22 09:24:20 ACM dhcpcd[2435]: dhcpcd-10.0.2 starting
Aug 22 09:24:20 ACM dhcpcd[2437]: dev: loaded udev
Aug 22 09:24:20 ACM dhcpcd[2437]: DUID 00:01:00:01:20:97:45:37:60:45:cb:9c:5b:d6
Aug 22 09:24:20 ACM dhcpcd[2437]: enp38s0: waiting for carrier
Aug 22 09:24:22 ACM kernel: igb 0000:26:00.0 enp38s0: igb: enp38s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Aug 22 09:24:23 ACM dhcpcd[2437]: enp38s0: carrier acquired
Aug 22 09:24:23 ACM kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp38s0: link becomes ready
Aug 22 09:24:23 ACM dhcpcd[2437]: enp38s0: IAID cb:9c:5b:d6
Aug 22 09:24:24 ACM dhcpcd[2437]: enp38s0: rebinding lease of 192.168.178.86
Aug 22 09:24:24 ACM dhcpcd[2437]: enp38s0: probing address 192.168.178.86/24
Aug 22 09:24:28 ACM dhcpcd[2437]: enp38s0: leased 192.168.178.86 for 864000 seconds
Aug 22 09:24:28 ACM dhcpcd[2437]: enp38s0: adding route to 192.168.178.0/24
Aug 22 09:24:28 ACM dhcpcd[2437]: enp38s0: adding default route via 192.168.178.1
Aug 22 09:24:29 ACM /etc/init.d/net.enp38s0[2686]: config_enp38s0 not specified; defaulting to DHCP
Aug 22 09:24:29 ACM /etc/init.d/net.enp38s0[2695]: The dhcpcd version is too old. Please upgrade.
Aug 22 09:24:29 ACM /etc/init.d/net.enp38s0[2527]: ERROR: net.enp38s0 failed to start

..

So it would appear that everything is working, but I still get error
messages. The "dhcpcd version is too old" is particularly galling, given
that dhcpcd was updated yesterday.

Could anybody suggest how I might get further with this problem? Thanks!
--
Alan Mackenzie (Nuremberg, Germany).
Michael
2023-08-22 11:40:01 UTC
Permalink
Post by Alan Mackenzie
Hello, gentoo.
With the new dhcpcd-10.0.2 (previous version being ?9.5.1) I get spurious
* Starting DHCP Client Daemon ...
* [ ok ] * Bringing up interface enp38s0
* Caching network module dependencies
* config_enp38s0 not specified; defaulting to DHCP
* dhcp ...
* The dhcpcd version is too old. Please upgrade.
* [ !! ] * ERROR: net.enp38s0 failed to start
.. However, after ~1 hour searching for the problem, I just tried using
enp38s0 to ssh onto my ISP, and it worked. In /var/log/messages, I see
Aug 22 09:24:20 ACM dhcpcd[2435]: dhcpcd-10.0.2 starting
Aug 22 09:24:20 ACM dhcpcd[2437]: dev: loaded udev
Aug 22 09:24:20 ACM dhcpcd[2437]: DUID
enp38s0: waiting for carrier
Aug 22 09:24:22 ACM kernel: igb 0000:26:00.0 enp38s0: igb: enp38s0 NIC Link
is Up 1000 Mbps Full Duplex, Flow Control: RX/TX Aug 22 09:24:23 ACM
dhcpcd[2437]: enp38s0: carrier acquired
Aug 22 09:24:23 ACM kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp38s0: link
becomes ready Aug 22 09:24:23 ACM dhcpcd[2437]: enp38s0: IAID cb:9c:5b:d6
Aug 22 09:24:24 ACM dhcpcd[2437]: enp38s0: rebinding lease of 192.168.178.86
Aug 22 09:24:24 ACM dhcpcd[2437]: enp38s0: probing address
192.168.178.86/24 Aug 22 09:24:28 ACM dhcpcd[2437]: enp38s0: leased
enp38s0: adding default route via 192.168.178.1 Aug 22 09:24:29 ACM
/etc/init.d/net.enp38s0[2686]: config_enp38s0 not specified; defaulting to
DHCP
I don't know what your network configuration requirements may be, but if you
have not specified a manual configuration for your enp38s0 interface, then you
probably do not need the netifrc service enabled. You can remove net.enp38s0
service from the default runlevel and reboot, with an eye on the log messages.
Post by Alan Mackenzie
Aug 22 09:24:29 ACM /etc/init.d/net.enp38s0[2695]: The dhcpcd version
is too old. Please upgrade.
I'm running the same version like you and do not see this message, but this
does not explain why you get this printed out.

I expect you have the dhcpcd service enabled. Does your NIC come up and
obtain an IP address via dhcpcd, if you remove dhcpcd from the default
runlevel? Careful you do not lock yourself out, if this is a remote system
and no network comes up when you reboot.
Post by Alan Mackenzie
Aug 22 09:24:29 ACM
/etc/init.d/net.enp38s0[2527]: ERROR: net.enp38s0 failed to start
..
So it would appear that everything is working, but I still get error
messages. The "dhcpcd version is too old" is particularly galling, given
that dhcpcd was updated yesterday.
Unless you emerge the latest from trunk, 10.0.2 is shown as the latest stable
dhcpcd version:

[I] net-misc/dhcpcd
Available versions:
9.4.1 [debug +embedded ipv6 privsep +udev]
9.5.1 [debug +embedded ipv6 privsep +udev]
~ 10.0.1 [debug +embedded ipv6 privsep +udev]
10.0.2 [debug +embedded ipv6 privsep +udev]
** 9999 *l [debug +embedded ipv6 privsep +udev]
Installed versions: 10.0.2(09:27:21 08/21/23)(embedded ipv6 udev -debug
-privsep)
Alan Mackenzie
2023-08-22 13:10:01 UTC
Permalink
Hello, Michael.
Post by Michael
Post by Alan Mackenzie
Hello, gentoo.
With the new dhcpcd-10.0.2 (previous version being ?9.5.1) I get spurious
* Starting DHCP Client Daemon ...
* [ ok ] * Bringing up interface enp38s0
* Caching network module dependencies
* config_enp38s0 not specified; defaulting to DHCP
* dhcp ...
* The dhcpcd version is too old. Please upgrade.
* [ !! ] * ERROR: net.enp38s0 failed to start
.. However, after ~1 hour searching for the problem, I just tried using
enp38s0 to ssh onto my ISP, and it worked. In /var/log/messages, I see
Aug 22 09:24:20 ACM dhcpcd[2435]: dhcpcd-10.0.2 starting
Aug 22 09:24:20 ACM dhcpcd[2437]: dev: loaded udev
Aug 22 09:24:20 ACM dhcpcd[2437]: DUID
enp38s0: waiting for carrier
Aug 22 09:24:22 ACM kernel: igb 0000:26:00.0 enp38s0: igb: enp38s0 NIC Link
is Up 1000 Mbps Full Duplex, Flow Control: RX/TX Aug 22 09:24:23 ACM
dhcpcd[2437]: enp38s0: carrier acquired
Aug 22 09:24:23 ACM kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp38s0: link
becomes ready Aug 22 09:24:23 ACM dhcpcd[2437]: enp38s0: IAID cb:9c:5b:d6
Aug 22 09:24:24 ACM dhcpcd[2437]: enp38s0: rebinding lease of 192.168.178.86
Aug 22 09:24:24 ACM dhcpcd[2437]: enp38s0: probing address
192.168.178.86/24 Aug 22 09:24:28 ACM dhcpcd[2437]: enp38s0: leased
enp38s0: adding default route via 192.168.178.1 Aug 22 09:24:29 ACM
/etc/init.d/net.enp38s0[2686]: config_enp38s0 not specified; defaulting to
DHCP
I don't know what your network configuration requirements may be, but if you
have not specified a manual configuration for your enp38s0 interface, then you
probably do not need the netifrc service enabled. You can remove net.enp38s0
service from the default runlevel and reboot, with an eye on the log messages.
I am running a simple workstation, connected to a consumer-grade router
by an ethernet cable. I didn't (and don't) have a specific configuration
for enp38s0. I did

$ rc-update del net.enp38s0 default

and rebooted. The machine came up without error messages, indeed with
fewer messages than it used to. On tty1, I now see just:

INIT: Entering runlevel: 3
* Checking your configfile (/etc/syslog-ng/syslog-ng.conf) ...
* [ ok ] * Starting syslog-ng ...
* [ ok ] * Starting DHCP Client Daemon ...
* [ ok ] * Setting clock via the NTP client 'ntpdate' ...
* [ ok ] * Starting cronie ...
* [ ok ] * Starting dbus ...
* [ ok ] * Starting cupsd ...
* [ ok ] * Starting gpm ...
* [ ok ] * Mounting network filesystems ...
* [ ok ] * Starting local ...

, and in /var/log/message I see:

Aug 22 12:36:56 ACM dhcpcd[2435]: dhcpcd-10.0.2 starting
Aug 22 12:36:56 ACM dhcpcd[2437]: dev: loaded udev
Aug 22 12:36:56 ACM dhcpcd[2437]: DUID 00:01:00:01:20:97:45:37:60:45:cb:9c:5b:d6
Aug 22 12:36:56 ACM dhcpcd[2437]: enp38s0: waiting for carrier
Aug 22 12:36:58 ACM kernel: igb 0000:26:00.0 enp38s0: igb: enp38s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Aug 22 12:36:59 ACM dhcpcd[2437]: enp38s0: carrier acquired
Aug 22 12:36:59 ACM kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp38s0: link becomes ready
Aug 22 12:36:59 ACM dhcpcd[2437]: enp38s0: IAID cb:9c:5b:d6
Aug 22 12:37:00 ACM dhcpcd[2437]: enp38s0: rebinding lease of 192.168.178.86
Aug 22 12:37:00 ACM dhcpcd[2437]: enp38s0: probing address 192.168.178.86/24
Aug 22 12:37:05 ACM dhcpcd[2437]: enp38s0: leased 192.168.178.86 for 864000 seconds
Aug 22 12:37:05 ACM dhcpcd[2437]: enp38s0: adding route to 192.168.178.0/24
Aug 22 12:37:05 ACM dhcpcd[2437]: enp38s0: adding default route via 192.168.178.1

..
Post by Michael
Post by Alan Mackenzie
Aug 22 09:24:29 ACM /etc/init.d/net.enp38s0[2695]: The dhcpcd version
is too old. Please upgrade.
I'm running the same version like you and do not see this message, but this
does not explain why you get this printed out.
I don't understand what I just did, by deleting net.enp38s0, though it
appeared to have fixed the problem. That worries me. Could you possibly
explain to me a bit more what that removal did? Thanks!
Post by Michael
I expect you have the dhcpcd service enabled. Does your NIC come up and
obtain an IP address via dhcpcd, if you remove dhcpcd from the default
runlevel? Careful you do not lock yourself out, if this is a remote system
and no network comes up when you reboot.
On removing dhcpcd from default, the maching just has no network
connection on booting up.
Post by Michael
Post by Alan Mackenzie
Aug 22 09:24:29 ACM
/etc/init.d/net.enp38s0[2527]: ERROR: net.enp38s0 failed to start
..
So it would appear that everything is working, but I still get error
messages. The "dhcpcd version is too old" is particularly galling, given
that dhcpcd was updated yesterday.
Unless you emerge the latest from trunk, 10.0.2 is shown as the latest stable
[I] net-misc/dhcpcd
9.4.1 [debug +embedded ipv6 privsep +udev]
9.5.1 [debug +embedded ipv6 privsep +udev]
~ 10.0.1 [debug +embedded ipv6 privsep +udev]
10.0.2 [debug +embedded ipv6 privsep +udev]
** 9999 *l [debug +embedded ipv6 privsep +udev]
Installed versions: 10.0.2(09:27:21 08/21/23)(embedded ipv6 udev -debug
-privsep)
Yes, I just emerged it yesterday.

So, the current state is my machine appears to be working, without error
messages on boot-up, but I don't understand why.
--
Alan Mackenzie (Nuremberg, Germany).
Michael
2023-08-22 15:10:01 UTC
Permalink
Hello Alan,
Post by Alan Mackenzie
I don't understand what I just did, by deleting net.enp38s0, though it
appeared to have fixed the problem. That worries me. Could you possibly
explain to me a bit more what that removal did? Thanks!
There are different ways to configure and bring up your network interface.

If you have a complicated network configuration, with static address(es),
bridges, multihoming, etc. then using netifrc scripts is a convenient method
to automate default runlevel service(s) to manage your setup.

For simpler network requirements a dhcp client, like dhcpcd, is adequate for
bringing up and configuring your network interface.

In absence of any manual settings netifrc will also bring up dhcpcd to try to
obtain an IP address from the router.

You had both a netifrc service and a dhcpcd service starting up, each trying
to negotiate an IP address from your router and tripping over themselves.
Post by Alan Mackenzie
On removing dhcpcd from default, the maching just has no network
connection on booting up.
OK, sometimes a service which requires a network connection can bring in
dhcpcd - I have neither netifrc nor dhcpcd services starting here on their
own:

$ rc-update -s -v | grep 'dhcpcd|net'
dhcpcd |
local | default nonetwork
net-online |
net.lo |
netmount | default

but in my case I think chronyd starts dhcpcd to connect to the network.

In your case, dhcpcd launched as a default service is needed to set up your
connection.
Alan Mackenzie
2023-08-23 10:50:01 UTC
Permalink
Hello, Michael.
Post by Michael
Hello Alan,
Post by Alan Mackenzie
I don't understand what I just did, by deleting net.enp38s0, though it
appeared to have fixed the problem. That worries me. Could you possibly
explain to me a bit more what that removal did? Thanks!
There are different ways to configure and bring up your network interface.
If you have a complicated network configuration, with static address(es),
bridges, multihoming, etc. then using netifrc scripts is a convenient method
to automate default runlevel service(s) to manage your setup.
OK.
Post by Michael
For simpler network requirements a dhcp client, like dhcpcd, is adequate for
bringing up and configuring your network interface.
Which is appropriate for my setup.
Post by Michael
In absence of any manual settings netifrc will also bring up dhcpcd to try to
obtain an IP address from the router.
You had both a netifrc service and a dhcpcd service starting up, each trying
to negotiate an IP address from your router and tripping over themselves.
Ah, so that was it! Thanks!
Post by Michael
Post by Alan Mackenzie
On removing dhcpcd from default, the maching just has no network
connection on booting up.
OK, sometimes a service which requires a network connection can bring in
dhcpcd - I have neither netifrc nor dhcpcd services starting here on their
$ rc-update -s -v | grep 'dhcpcd|net'
dhcpcd |
local | default nonetwork
net-online |
net.lo |
netmount | default
but in my case I think chronyd starts dhcpcd to connect to the network.
OK.
Post by Michael
In your case, dhcpcd launched as a default service is needed to set up your
connection.
Yes. Thanks again for the explanation.
--
Alan Mackenzie (Nuremberg, Germany).
Nuno Silva
2023-08-22 21:50:01 UTC
Permalink
Post by Alan Mackenzie
Hello, gentoo.
With the new dhcpcd-10.0.2 (previous version being ?9.5.1) I get spurious
* Starting DHCP Client Daemon ...
* [ ok ] * Bringing up interface enp38s0
* Caching network module dependencies
* config_enp38s0 not specified; defaulting to DHCP
* dhcp ...
* The dhcpcd version is too old. Please upgrade.
* [ !! ] * ERROR: net.enp38s0 failed to start
[...]
Post by Alan Mackenzie
So it would appear that everything is working, but I still get error
messages. The "dhcpcd version is too old" is particularly galling, given
that dhcpcd was updated yesterday.
A check (in netifrc) didn't account for two-digit major version numbers
when checking the dhcpcd version.

https://bugs.gentoo.org/show_bug.cgi?id=904422

So check if there's a newer version of net-misc/netifrc available.
--
Nuno Silva
Alan Mackenzie
2023-08-23 10:50:01 UTC
Permalink
Hello, Nuno.
Post by Nuno Silva
Post by Alan Mackenzie
With the new dhcpcd-10.0.2 (previous version being ?9.5.1) I get spurious
* Starting DHCP Client Daemon ...
* [ ok ] * Bringing up interface enp38s0
* Caching network module dependencies
* config_enp38s0 not specified; defaulting to DHCP
* dhcp ...
* The dhcpcd version is too old. Please upgrade.
* [ !! ] * ERROR: net.enp38s0 failed to start
[...]
Post by Alan Mackenzie
So it would appear that everything is working, but I still get error
messages. The "dhcpcd version is too old" is particularly galling, given
that dhcpcd was updated yesterday.
A check (in netifrc) didn't account for two-digit major version numbers
when checking the dhcpcd version.
https://bugs.gentoo.org/show_bug.cgi?id=904422
Thanks, I've had a look at that bug. It was a simple coding error.
Post by Nuno Silva
So check if there's a newer version of net-misc/netifrc available.
I've currently got netifrc-0.7.3 installed. There are 0.7.4 and 0.7.5
available (according to eshowkw). But, for some reason, portage hasn't
upgraded my system (an amd64) to 0.7.5. It looks as though I should do
this by hand.
Post by Nuno Silva
--
Nuno Silva
--
Alan Mackenzie (Nuremberg, Germany).
Loading...