<!-- 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>isc-dhcp-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.

</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/dhcp/dhcpd.conf</filename>, and restart
<command>dhcpd</command> with <userinput>/etc/init.d/isc-dhcp-server
restart</userinput>.

</para>
  </sect2>
