TITLE: DHCP client daemon LFS VERSION: 2.3 AUTHOR: Simon Perreault SYNOPSIS: How to setup a DHCP client daemon (this is used with cable modems, and possibly others). HINT: I wrote this because the network boot scripts section didn't ever mention that it may be done otherwise for those with dhcp-based access (most cable modems). How to install and configure the DHCP client daemon according to the LFS standards. 1. Get dhcpcd at ftp://ftp.phystech.com/pub/ . Unpack. 2. Execute ./configure --prefix=/usr make make install (Optimizations may be used, but as I told Ian Chilton, I disagree with the use of the -e switch. Do what you want.) 3. Execute mv /etc/dhcpcd /etc/dhcpc This is done because there is a bug in the installation, and it creates the directory as dhcpcd instead of dhcpc. The program needs dhcpc, or else it will complain. 4. Add those two lines to /etc/sysconfdir/network IPADDR=$(head -n 1 /etc/dhcpc/dhcpcd-eth0.info | cut -c 8-) NETMASK=$(head -n 2 /etc/dhcpc/dhcpcd-eth0.info | tail -n 1 | cut -c 9-) You may also add a BROADCAST value, but I think dhcp-based connections don't need those. If you need one, create it yourself. We're learning, and head, tail and cut are must-understand tools. 5. Create /etc/init.d/dhcpcd containing the following #!/bin/sh # Begin /etc/init.d/dhcpcd . /etc/init.d/functions case "$1" in start) echo -n "Starting DHCP client daemon..." start-stop-daemon -S -q -o -x /usr/sbin/dhcpcd evaluate_retval ;; stop) echo -n "Stopping DHCP client daemon..." start-stop-daemon -K -q -o -p /var/run/dhcpcd-eth0.pid >/dev/null 2>&1 evaluate_retval ;; restart) $0 stop sleep 1 $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac # End /etc/init.d/dhcpcd 6. Execute chmod 744 /etc/init.d/dhcpcd cd /etc/rc3.d ln -s ../init.d/dhcpcd S05dhcpcd 7. I think the right host version is the "no network card" version (at least it works for me), because your IP is not static. I haven't found a way to deal with it so that the IP may vary. 8. If you haven't set a BROADCAST value in /etc/sysconfig/network, remove the BROADCAST part in /etc/init.d/ethnet, so that it looks like this echo -n "Bringing up the eth0 interface..." /sbin/ifconfig eth0 $IPADDR netmask $NETMASK evaluate_retval 9. If your dhcp server assigns you a hostname, you may (should) edit /etc/sysconfig/network so that it is based on the /etc/dhcpc/dhcpcd-eth0.info file like other variables. 10. I think that's about it. Important info about your connection can be obtained in /etc/dhcpc/dhcpcd-eth0.info and can be used easily in scripts. PLEASE feel free to send me comments and suggestions.