Home > external-dhcpcd

external-dhcpcd

External-dhcpcd is a project mainly written in C, it's free.

dhcpcd-4 - DHCP client daemon Copyright 2006-2008 Roy Marples [email protected]

Installation

Edit config.h to match your building requirements. Then just make; make install man dhcpcd for command line options

Notes

If you're cross compiling you may need to set the below knobs to avoid automatic tests. OS=BSD | Linux

If you're building for an MMU-less system where fork() does not work, you should add -DTHERE_IS_NO_FORK to your CPPFLAGS. This also puts the --no-background flag on and stops the --background flag from working.

You can change the default dir with these knobs. For example, to satisfy FHS compliance you would do this:- LIBEXECDIR=/lib/dhcpcd DBDIR=/var/lib/dhcpcd

We now default to using -std=c99. For 64-bit linux, this always works, but for 32-bit linux it requires either gnu99 or a patch to asm/types.h. Most distros patch linux headers so this should work fine. linux-2.6.24 finally ships with a working 32-bit header. If your linux headers are older, or your distro hasn't patched them you can set CSTD=gnu99 to work around this.

Hooks

Not all the hooks in dhcpcd-hooks are installed by default. By default we install 01-test, 10-mtu, 20-resolv.conf and 30-hostname. To add more simply add them in the HOOKSCRIPTS variable. make HOOKSCRIPTS=50-ntp install

Compatibility

If you require compatibility with dhcpcd-3 and older style variables, you can install 50-dhcpcd-compat into the directory $LIBEXECDIR/dhcpcd-hooks We don't install this by default. You should also add -DCMDLINE_COMPAT to your CPPFLAGS if you need to be fully commandline compatible with prior versions.

dhcpcd-3 enabled DUID support by default - this has changed in dhcpcd-4. You can enable it via the --duid, -D command line option or by using the duid directive in dhcpcd.conf. If CMDLINE_COMPAT is defined the we renable DUID support by default IF the dhcpcd.duid file exits. This keeps the clients working as they were, which is good.

dhcpcd no longer sends a default ClientID for ethernet interfaces. This is so we can re-use the address the kernel DHCP client found. To retain the old behaviour of sending a default ClientID based on the hardware address for interface, simply add the keyword clientid to dhcpcd.conf. If CMDLINE_COMPAT is defined, we renable the sending of ClientID by default AND adding clientid to dhcpcd.conf causes it NOT to be sent.

dhcpcd-4 is NOT fully commandline compatible with dhcpcd-2 and older and changes the meaning of some options.

ChangeLog

We no longer supply a ChangeLog. However, you're more than welcome to read the commit log at http://roy.marples.name/projects/dhcpcd/log/