1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<!-- retain these comments for translator revision tracking -->
<!-- $Id$ -->
<sect2 condition="supports-bootp" id="tftp-bootp">
<title>Setting up a BOOTP server</title>
<para>
There are two BOOTP servers available for GNU/Linux. The first is CMU
<command>bootpd</command>. The other is actually a DHCP server: ISC
<command>dhcpd</command>. In &debian-gnu; these are contained in the
<classname>bootp</classname> and <classname>dhcp3-server</classname>
packages respectively.
</para><para>
To use CMU <command>bootpd</command>, you must first uncomment (or
add) the relevant line in <filename>/etc/inetd.conf</filename>. On
&debian-gnu;, you can run <userinput>update-inetd --enable
bootps</userinput>, then <userinput>/etc/init.d/inetd
reload</userinput> to do so. Just in case your BOOTP server does not
run &debian;, the line in question should look like:
<informalexample><screen>
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
</screen></informalexample>
Now, you must create an <filename>/etc/bootptab</filename> file. This
has the same sort of familiar and cryptic format as the good old BSD
<filename>printcap</filename>, <filename>termcap</filename>, and
<filename>disktab</filename> files. See the
<filename>bootptab</filename> manual page for more information. For
CMU <command>bootpd</command>, you will need to know the hardware
(MAC) address of the client. Here is an example
<filename>/etc/bootptab</filename>:
<informalexample><screen>
client:\
hd=/tftpboot:\
bf=tftpboot.img:\
ip=192.168.1.90:\
sm=255.255.255.0:\
sa=192.168.1.1:\
ha=0123456789AB:
</screen></informalexample>
You will need to change at least the <quote>ha</quote> option, which
specifies the hardware address of the client. The <quote>bf</quote>
option specifies the file a client should retrieve via TFTP; see
<xref linkend="tftp-images"/> for more details.
<phrase arch="mips">
On SGI machines you can just enter the command monitor and type
<userinput>printenv</userinput>. The value of the
<userinput>eaddr</userinput> variable is the machine's MAC address.
</phrase>
</para><para>
By contrast, setting up BOOTP with ISC <command>dhcpd</command> is
really easy, because it treats BOOTP clients as a moderately special
case of DHCP clients. Some architectures require a complex
configuration for booting clients via BOOTP. If yours is one of
those, read the section <xref linkend="dhcpd"/>. Otherwise you
will probably be able to get away with simply adding the
<userinput>allow bootp</userinput> directive to the configuration
block for the subnet containing the client in
<filename>/etc/dhcp3/dhcpd.conf</filename>, and restart
<command>dhcpd</command> with <userinput>/etc/init.d/dhcp3-server
restart</userinput>.
</para>
</sect2>
|