dhcpcd-6.11.5

Introduction to dhcpcd

dhcpcd is an implementation of the DHCP client specified in RFC2131. A DHCP client is useful for connecting your computer to a network which uses DHCP to assign network addresses. dhcpcd strives to be a fully featured, yet very lightweight DHCP client.

This package is known to build and work properly using an LFS-8.1 platform.

Package Information

dhcpcd Dependencies

Optional

LLVM-4.0.1 (with Clang)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/dhcpcd

Installation of dhcpcd

Install dhcpcd by running the following commands:

./configure --libexecdir=/lib/dhcpcd \
            --dbdir=/var/lib/dhcpcd  &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--libexecdir=/lib/dhcpcd: The default /libexec is not FHS-compliant. Since this directory may need to be available early in the boot, /usr/libexec cannot be used either.

--dbdir=/var/lib/dhcpcd: The default /var/db is not FHS-compliant

--with-hook=...: You can optionally install more hooks, for example to install some configuration files such as ntp.conf. The set of hooks is in the dhcpcd-hooks directory in the build tree.

Configuring dhcpcd

Config Files

/etc/dhcpcd.conf

General Configuration Information

To configure dhcpcd, you need to first install the network service script, /lib/services/dhcpcd included in the blfs-bootscripts-20170731 package (as user root):

make install-service-dhcpcd

Whenever dhcpcd configures or shuts down a network interface, it executes hook scripts. For more details about those scripts, see the dhcpcd-run-hooks and dhcpcd man pages.

Finally, as the root user create the /etc/sysconfig/ifconfig.eth0 configuration file using the following commands. Adjust appropriately for additional interfaces:

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q <insert appropriate start options here>"
DHCP_STOP="-k <insert additional stop options here>"
EOF

For more information on the appropriate DHCP_START and DHCP_STOP values, examine the man page for dhcpcd.

[Note]

Note

The default behavior of dhcpcd sets the hostname and mtu settings. It also overwrites /etc/resolv.conf and /etc/ntp.conf. These modifications to system files and settings on system configuration files are done by hooks which are stored in /lib/dhcpcd/dhcpcd-hooks. Setup dhcpcd by removing or adding hooks from/to that directory. The execution of hooks can be disabled by using the --nohook (-C) command line option or by the nohook option in the /etc/dhcpcd.conf file.

Review the dhcpcd man page for switches to add to the DHCP_START value.

Configuration Information: fixed ip

Although not usual, it is possible that you need to configure dhcpcd to use a fixed ip. Here, we give an example. As the root user create the /etc/sysconfig/ifconfig.eth0 configuration file using the following commands. Adjust appropriately for additional interfaces and for the actual ip and router you need:

cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
ONBOOT="yes"
IFACE="eth0"
SERVICE="dhcpcd"
DHCP_START="-b -q -S ip_address=192.168.0.10/24 -S routers=192.168.0.1"
DHCP_STOP="-k"
EOF

You can either use DNS servers in /etc/resolv.conf from another system, your preferred servers, or just the example /etc/resolv.conf.head file below as is:

cat > /etc/resolv.conf.head << "EOF"
# OpenDNS servers
nameserver 208.67.222.222
nameserver 208.67.220.220
EOF

Contents

Installed Program: dhcpcd
Installed Library: /lib/dhcpcd/dev/udev.so
Installed Directory: /{,var/}lib/dhcpcd and /usr/share/dhcpcd

Short Descriptions

dhcpcd

is an implementation of the DHCP client specified in RFC2131.

udev.so

add udev support for interface arrival and departure; this is because udev likes to rename the interface, which it can't do if dhcpcd grabs it first.

Last updated on 2017-08-25 14:22:07 -0700