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.3 platform.
Download (HTTP): http://roy.marples.name/downloads/dhcpcd/dhcpcd-7.0.8.tar.xz
Download (FTP): ftp://roy.marples.name/pub/dhcpcd/dhcpcd-7.0.8.tar.xz
Download MD5 sum: 77bbb1d73b6f30d6ddcc8b0fd3eae266
Download size: 616 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 0.1 SBU
llvm (with Clang)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/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
          --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.
        
            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]](images/note.png) 
            
              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.
            
            Although not
            usual, it is possible that you need to configure dhcpcd to use a fixed ip. Here we give an
            example for the System V versions of LFS. 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
        
            If you want to configure network interfaces at boot using
            dhcpcd, you need to
            install the systemd unit included in blfs-systemd-units-20180105 package by
            running the following command as the root user:
          
make install-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.
![[Note]](images/note.png) 
            
              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.
            
![[Note]](images/note.png) 
            Make sure that you disable the systemd-networkd service or configure it not to manage the interfaces you want to manage with dhcpcd.
            At this point you can test if dhcpcd is behaving as expected
            by running the following command as the root user:
          
systemctl start dhcpcd@eth0
          
            To start dhcpcd on
            a specific interface at boot, enable the previously installed
            systemd unit by running the following command as the root user:
          
systemctl enable dhcpcd@eth0
          
            Replace eth0 with the
            actual interface name.
          
Last updated on 2018-09-22 16:32:07 -0700