commit | 2694ea1dc30009a46a7ceb31e7c55be461edbbac | [log] [tgz] |
---|---|---|
author | Adrian Ratiu <adrian.ratiu@collabora.com> | Mon Oct 14 12:20:02 2024 |
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Oct 15 12:52:26 2024 |
tree | c1d460de925a1392461f81c5612a5913c1c5163a | |
parent | 11e05e2fc47561418704920e795ac9dc4ddca49b [diff] |
BACKPORT: configure: backport epoll for eloop fix This is a backport of the following upstream commit to the v7 branch to fix a regression due to glibc >=2.38 which forces the event argument to be non-null [1]: commit 701a9d031e0f97d7024639a9fbeaa35afb1bbb83 Author: Roy Marples <roy@marples.name> Date: Thu Jan 28 17:26:20 2021 +0000 Linux: Implement epoll(7) for eloop (again) eloop allows for O(1) processing of active fd's. The problems with the prior implementation have now been fixed. The problem is when the epoll check fails, dhcpcd7 uses pselect6 which causes a lot of load on the qemu user network stack, leading to packet loss, corruption and test failures. BUG=b:324437695 TEST=Local build/boot/test on amd64-generic in qemu; CQ. Link: [1] https://github.com/bminor/glibc/commit/5013f6fc6c44160e8ec6bcd34ba676e85d9d6ab6 Change-Id: Idba921d02803da85005a0adf12fa125983628baa Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/dhcpcd/+/5929006 Reviewed-by: Zikai Chen <chenzikai@google.com> Auto-Submit: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com> Commit-Queue: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com> Reviewed-by: Taoyu Li <taoyl@chromium.org> Reviewed-by: George Burgess <gbiv@chromium.org> Tested-by: Adrian Ratiu <adrian.ratiu@collabora.corp-partner.google.com>
dhcpcd is a DHCP and a DHCPv6 client. It‘s also an IPv4LL (aka ZeroConf) client. In layman’s terms, dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration.
If you're a desktop user then you may also be interested in Network Configurator (dhcpcd-ui) which sits in the notification area and monitors the state of the network via dhcpcd. It also has a nice configuration dialog and the ability to enter a pass phrase for wireless networks.
dhcpcd may not be the only daemon running that wants to configure DNS on the host, so it uses openresolv to ensure they can co-exist.
See BUILDING.md for how to build dhcpcd.
If you wish to file a support ticket or help out with development, please visit the Development Area or join the mailing list below.
You should read the dhcpcd.conf man page and put your options into /etc/dhcpcd.conf
. The default configuration file should work for most people just fine. Here it is, in case you lose it.
# A sample configuration for dhcpcd. # See dhcpcd.conf(5) for details. # Allow users of this group to interact with dhcpcd via the control socket. #controlgroup wheel # Inform the DHCP server of our hostname for DDNS. hostname # Use the hardware address of the interface for the Client ID. #clientid # or # Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. # Some non-RFC compliant DHCP servers do not reply with this set. # In this case, comment out duid and enable clientid above. duid # Persist interface configuration when dhcpcd exits. persistent # Rapid commit support. # Safe to enable by default because it requires the equivalent option set # on the server to actually work. option rapid_commit # A list of options to request from the DHCP server. option domain_name_servers, domain_name, domain_search, host_name option classless_static_routes # Respect the network MTU. This is applied to DHCP routes. option interface_mtu # Most distributions have NTP support. #option ntp_servers # A ServerID is required by RFC2131. require dhcp_server_identifier # Generate SLAAC address using the Hardware Address of the interface #slaac hwaddr # OR generate Stable Private IPv6 Addresses based from the DUID slaac private
The dhcpcd man page has a lot of the same options and more, which only apply to calling dhcpcd from the command line.
dhcpcd-5 is only fully command line compatible with dhcpcd-4 For compatibility with older versions, use dhcpcd-4
dhcpcd-7 defaults the database directory to /var/db/dhcpcd
instead of /var/db
and now stores dhcpcd.duid and dhcpcd.secret in there instead of in /etc. The Makefile _confinstall
target will attempt to move the files correctly from the old locations to the new locations. Of course this won't work if dhcpcd-7 is packaged up, so packagers will need to install similar logic into their dhcpcd package.
We no longer supply a ChangeLog. However, you're more than welcome to read the commit log and archived release announcements.