dhcpcd-7.1.1

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 14. Connecting to a Network

- Prev

  Connecting to a Network

- Next

  DHCP-4.4.1

- Up
- Home

# dhcpcd-7.1.1

## 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.4 platform.

### Package Information

- Download (HTTP): http://roy.marples.name/downloads/dhcpcd/dhcpcd-7.1.1.tar.xz

- Download (FTP): ftp://roy.marples.name/pub/dhcpcd/dhcpcd-7.1.1.tar.xz

- Download MD5 sum: adc0a949cb718b455d81deea9ba2875f

- Download size: 208 KB

- Estimated disk space required: 2.9 MB

- Estimated build time: less than 0.1 SBU

### dhcpcd Dependencies

#### Optional

LLVM-7.0.1 (with Clang), ntp-4.2.8p12, chronyd, and ypbind

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

To test the results, issue: make test.

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-20180105 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

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` | adds 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 2019-02-15 12:59:27 -0600

- Prev

  Connecting to a Network

- Next

  DHCP-4.4.1

- Up
- Home