%general-entities; ]> $LastChangedBy$ $Date$ dhcpcd-&dhcpcd-version; dhcpcd 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. &lfs90_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &dhcpcd-md5sum; Download size: &dhcpcd-size; Estimated disk space required: &dhcpcd-buildsize; Estimated build time: &dhcpcd-time; dhcpcd Dependencies Optional (with Clang), , chronyd, and ypbind User Notes: 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 : 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 /etc/dhcpcd/dhcpcd.conf General Configuration Information To configure dhcpcd, you need to first install the network service script, /lib/services/dhcpcd included in the package (as user root): dhcpcd (service script) 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: /etc/sysconfig/ifconfig.eth0 (dhcpcd) 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. 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 () command line option or by the option in the /etc/dhcpcd.conf file. Review the dhcpcd man page for switches to add to the DHCP_START value. /etc/resolv.conf 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: /etc/sysconfig/ifconfig.eth0 (dhcpcd) 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 General Configuration Information If you want to configure network interfaces at boot using dhcpcd, you need to install the systemd unit included in package by running the following command as the root user: make install-dhcpcd 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. 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 () command line option or by the option in the /etc/dhcpcd.conf file. /etc/resolv.conf 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. Contents Installed Program Installed Library Installed Directory dhcpcd /lib/dhcpcd/dev/udev.so /{,var/}lib/dhcpcd and /usr/share/dhcpcd Short Descriptions dhcpcd is an implementation of the DHCP client specified in RFC2131. dhcpcd 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. udev.so