1 | dhcpcd - DHCP client daemon |
---|
2 | Copyright (c) 2006-2014 Roy Marples <roy@marples.name> |
---|
3 | |
---|
4 | |
---|
5 | Installation |
---|
6 | ------------ |
---|
7 | ./configure; make; make install |
---|
8 | man dhcpcd for command line options |
---|
9 | man dhcpcd.conf for configuration options |
---|
10 | man dhcpcd-run-hooks to learn how to hook scripts into dhcpcd events |
---|
11 | |
---|
12 | |
---|
13 | Notes |
---|
14 | ----- |
---|
15 | If you're cross compiling you may need set the platform if OS is different |
---|
16 | from the host. |
---|
17 | --target=sparc-sun-netbsd5.0 |
---|
18 | |
---|
19 | If you're building for an MMU-less system where fork() does not work, you |
---|
20 | should ./configure --disable-fork. |
---|
21 | This also puts the --no-background flag on and stops the --background flag |
---|
22 | from working. |
---|
23 | |
---|
24 | You can change the default dirs with these knobs. |
---|
25 | For example, to satisfy FHS compliance you would do this:- |
---|
26 | ./configure --libexecdir=/lib/dhcpcd dbdir=/var/lib/dhcpcd |
---|
27 | |
---|
28 | We now default to using -std=c99. For 64-bit linux, this always works, but |
---|
29 | for 32-bit linux it requires either gnu99 or a patch to asm/types.h. |
---|
30 | Most distros patch linux headers so this should work fine. |
---|
31 | linux-2.6.24 finally ships with a working 32-bit header. |
---|
32 | If your linux headers are older, or your distro hasn't patched them you can |
---|
33 | set CSTD=gnu99 to work around this. |
---|
34 | |
---|
35 | Some BSD systems do not allow the manipulation of automatically added subnet |
---|
36 | routes. You can find discussion here: |
---|
37 | http://mail-index.netbsd.org/tech-net/2008/12/03/msg000896.html |
---|
38 | BSD systems where this has been fixed are: |
---|
39 | NetBSD-5.0 |
---|
40 | |
---|
41 | Some BSD systems protect against IPv6 NS/NA messages by ensuring that the |
---|
42 | source address matches an address/prefix on the interface. |
---|
43 | This is an error as the correct check is for on-link prefixes. |
---|
44 | As such, on these systems stateful addressing via DHCPv6 may cause issues |
---|
45 | trying to reach other neighbours. |
---|
46 | BSD systems where this is known to be a problem |
---|
47 | Occured in NetBSD-5.0, fixed in NetBSD-6.99.29 |
---|
48 | Occured in OpenBSD-4.2, fixed in OpenBSD-5.0 |
---|
49 | |
---|
50 | We try and detect how dhcpcd should interact with system services at runtime. |
---|
51 | If we cannot auto-detect how do to this, or it is wrong then |
---|
52 | you can change this by passing shell commands to --serviceexists, |
---|
53 | --servicecmd and optionally --servicestatus to ./configure or overriding |
---|
54 | the service variables in a hook. |
---|
55 | |
---|
56 | Some systems have /dev management systems and some of these like to rename |
---|
57 | interfaces. As this system would listen in the same way as dhcpcd to new |
---|
58 | interface arrivals, dhcpcd needs to listen to the /dev management sytem |
---|
59 | instead of the kernel. However, if the /dev management system breaks, stops |
---|
60 | working, or changes to a new one, dhcpcd should still try and continue to work. |
---|
61 | To facilitate this, dhcpcd allows a plugin to load to instruct dhcpcd when it |
---|
62 | can use an interface. As of the time of writing only udev support is included. |
---|
63 | You can disable this with --without-dev, or without-udev |
---|
64 | |
---|
65 | To shrink dhcpcd you can disable IPv4 or IPv6: |
---|
66 | --disable-inet |
---|
67 | --disable-inet6 |
---|
68 | |
---|
69 | You can also move the embedded extended configuration from the dhcpcd binary |
---|
70 | to an external file (LIBEXECDIR/dhcpcd-definitions.conf) |
---|
71 | --disable-embedded |
---|
72 | If dhcpcd cannot load this file at runtime, dhcpcd will work but will not be |
---|
73 | able to decode any DHCP/DHCPv6 options that are not defined by the user |
---|
74 | in /etc/dhcpcd.conf. |
---|
75 | |
---|
76 | To prepare dhcpcd for import into a platform source tree (like NetBSD) |
---|
77 | you can use the make import target to create /tmp/dhcpcd-$version and |
---|
78 | populate it with all the source files and hooks needed. |
---|
79 | In this instance, you may wish to disable some configured tests when |
---|
80 | the binary has to run on older versions which lack support, such as getline. |
---|
81 | ./configure --without-getline |
---|
82 | |
---|
83 | |
---|
84 | Hooks |
---|
85 | ----- |
---|
86 | Not all the hooks in dhcpcd-hooks are installed by default. |
---|
87 | By default we install 01-test, 02-dump, 10-mtu, 10-wpa_supplicant, |
---|
88 | 15-timezone, 20-resolv.conf, 29-lookup-hostname and 30-hostname. |
---|
89 | The default dhcpcd.conf disables the lookup-hostname hook by default. |
---|
90 | The configure program attempts to find hooks for systems you have installed. |
---|
91 | To add more simply |
---|
92 | ./configure -with-hook=ntp.conf |
---|
93 | |
---|
94 | |
---|
95 | Compatibility |
---|
96 | ------------- |
---|
97 | dhcpcd-5.0 is only fully command line compatible with dhcpcd-4.0 |
---|
98 | For compatibility with older versions, use dhcpcd-4.0 |
---|
99 | |
---|
100 | |
---|
101 | ChangeLog |
---|
102 | --------- |
---|
103 | We no longer supply a ChangeLog. |
---|
104 | However, you're more than welcome to read the commit log at |
---|
105 | http://roy.marples.name/projects/dhcpcd/timeline/ |
---|