| 13 |
|
|
| 14 |
</para><para> |
</para><para> |
| 15 |
|
|
| 16 |
You need to setup a TFTP server, and for many machines, a BOOTP server |
You need to setup a TFTP server, and for many machines a DHCP |
| 17 |
<phrase condition="supports-rarp">, or RARP server</phrase> |
server<phrase condition="supports-rarp">, or RARP |
| 18 |
<phrase condition="supports-dhcp">, or DHCP server</phrase>. |
server</phrase><phrase condition="supports-bootp">, or BOOTP |
| 19 |
|
server</phrase>. |
| 20 |
|
|
| 21 |
</para><para> |
</para><para> |
| 22 |
|
|
| 23 |
<phrase condition="supports-rarp">The Reverse Address Resolution Protocol (RARP) is |
<phrase condition="supports-rarp">The Reverse Address Resolution Protocol (RARP) is |
| 24 |
one way to tell your client what IP address to use for itself. Another |
one way to tell your client what IP address to use for itself. Another |
| 25 |
way is to use the BOOTP protocol. </phrase> |
way is to use the BOOTP protocol.</phrase> |
| 26 |
|
|
| 27 |
<phrase condition="supports-bootp">BOOTP is an IP protocol that |
<phrase condition="supports-bootp">BOOTP is an IP protocol that |
| 28 |
informs a computer of its IP address and where on the network to obtain |
informs a computer of its IP address and where on the network to obtain |
| 29 |
a boot image. </phrase> |
a boot image.</phrase> |
| 30 |
|
|
| 31 |
<phrase arch="m68k"> Yet another alternative exists on VMEbus |
<phrase arch="m68k">Yet another alternative exists on VMEbus |
| 32 |
systems: the IP address can be manually configured in boot ROM. </phrase> |
systems: the IP address can be manually configured in boot ROM.</phrase> |
| 33 |
|
|
| 34 |
<phrase condition="supports-dhcp">The DHCP (Dynamic Host Configuration |
The DHCP (Dynamic Host Configuration Protocol) is a more flexible, |
| 35 |
Protocol) is a more flexible, backwards-compatible extension of BOOTP. |
backwards-compatible extension of BOOTP. |
| 36 |
Some systems can only be configured via DHCP. </phrase> |
Some systems can only be configured via DHCP. |
| 37 |
|
|
| 38 |
</para><para arch="powerpc"> |
</para><para arch="powerpc"> |
| 39 |
|
|
| 41 |
good idea to use DHCP instead of BOOTP. Some of the latest machines |
good idea to use DHCP instead of BOOTP. Some of the latest machines |
| 42 |
are unable to boot using BOOTP. |
are unable to boot using BOOTP. |
| 43 |
|
|
| 44 |
</para><para arch="alpha"> |
</para><para arch="alpha"> |
| 45 |
|
|
| 46 |
Unlike the Open Firmware found on Sparc and PowerPC machines, the SRM |
Unlike the Open Firmware found on Sparc and PowerPC machines, the SRM |
| 47 |
console will <emphasis>not</emphasis> use RARP to obtain its IP |
console will <emphasis>not</emphasis> use RARP to obtain its IP |
| 48 |
address, and therefore you must use BOOTP for net booting your Alpha. |
address, and therefore you must use BOOTP for net booting your |
| 49 |
You can also enter the IP configuration for network interfaces |
Alpha<footnote> |
|
directly in the SRM console. |
|
| 50 |
|
|
|
<footnote> |
|
| 51 |
<para> |
<para> |
|
|
|
| 52 |
Alpha systems can also be net-booted using the DECNet MOP (Maintenance |
Alpha systems can also be net-booted using the DECNet MOP (Maintenance |
| 53 |
Operations Protocol), but this is not covered here. Presumably, your |
Operations Protocol), but this is not covered here. Presumably, your |
| 54 |
local OpenVMS operator will be happy to assist you should you have |
local OpenVMS operator will be happy to assist you should you have |
| 55 |
some burning need to use MOP to boot Linux on your Alpha. |
some burning need to use MOP to boot Linux on your Alpha. |
|
|
|
| 56 |
</para> |
</para> |
| 57 |
</footnote></para><para arch="hppa"> |
|
| 58 |
|
</footnote>. You can also enter the IP configuration for network |
| 59 |
|
interfaces directly in the SRM console. |
| 60 |
|
|
| 61 |
|
</para><para arch="hppa"> |
| 62 |
|
|
| 63 |
Some older HPPA machines (e.g. 715/75) use RBOOTD rather than BOOTP. |
Some older HPPA machines (e.g. 715/75) use RBOOTD rather than BOOTP. |
| 64 |
An RBOOTD package is available on the parisc-linux web site. |
There is an <classname>rbootd</classname> package available in Debian. |
| 65 |
|
|
| 66 |
</para><para> |
</para><para> |
| 67 |
|
|
| 71 |
this section, we shall provide commands for SunOS 4.x, SunOS 5.x |
this section, we shall provide commands for SunOS 4.x, SunOS 5.x |
| 72 |
(a.k.a. Solaris), and GNU/Linux. |
(a.k.a. Solaris), and GNU/Linux. |
| 73 |
|
|
| 74 |
|
<note arch="x86"><para> |
| 75 |
|
|
| 76 |
|
To use the Pre-boot Execution Environment (PXE) method of TFTP |
| 77 |
|
booting, you will need a TFTP server with <userinput>tsize</userinput> |
| 78 |
|
support. On a &debian; server, the <classname>atftpd</classname> and |
| 79 |
|
<classname>tftpd-hpa</classname> packages qualify; we recommend |
| 80 |
|
<classname>tftpd-hpa</classname>. |
| 81 |
|
|
| 82 |
|
</para></note> |
| 83 |
|
|
| 84 |
</para> |
</para> |
| 85 |
|
|
| 86 |
&tftp-rarp.xml; |
&tftp-rarp.xml; |
| 96 |
something like the following line in <filename>/etc/inetd.conf</filename>: |
something like the following line in <filename>/etc/inetd.conf</filename>: |
| 97 |
|
|
| 98 |
<informalexample><screen> |
<informalexample><screen> |
|
|
|
| 99 |
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot |
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot |
|
|
|
| 100 |
</screen></informalexample> |
</screen></informalexample> |
| 101 |
|
|
| 102 |
Debian packages will in general set this up correctly by default when they |
Debian packages will in general set this up correctly by default when they |
| 103 |
are installed. |
are installed. |
| 104 |
|
|
| 105 |
</para><para> |
</para> |
| 106 |
|
<note><para> |
| 107 |
|
|
| 108 |
Look in that file and remember the directory which is used as the |
Historically TFTP servers used <filename>/tftpboot</filename> as directory |
| 109 |
argument of <command>in.tftpd</command>; you'll need that below. The |
to serve images from. However, &debian; packages may use other directories |
| 110 |
<userinput>-l</userinput> argument enables some versions of |
to comply with the <ulink url="&url-fhs-home;">Filesystem Hierarchy |
| 111 |
<command>in.tftpd</command> to log all requests to the system logs; |
Standard</ulink>. For example, <classname>tftpd-hpa</classname> by default |
| 112 |
this is useful for diagnosing boot errors. If you've had to change |
uses <filename>/var/lib/tftpboot</filename>. You may have to adjust the |
| 113 |
<filename>/etc/inetd.conf</filename>, you'll have to notify the |
configuration examples in this section accordingly. |
|
running <command>inetd</command> process that the file has changed. |
|
|
On a Debian machine, run <userinput>/etc/init.d/inetd |
|
|
reload</userinput>; on other machines, |
|
|
find out the process ID for <command>inetd</command>, and run |
|
|
<userinput>kill -HUP <replaceable>inetd-pid</replaceable></userinput>. |
|
| 114 |
|
|
| 115 |
</para><note arch="i386"><para> |
</para></note> |
| 116 |
|
<para> |
| 117 |
|
|
| 118 |
To use the Pre-boot Execution Environment (PXE) method of TFTP |
Look in <filename>/etc/inetd.conf</filename> and remember the directory which |
| 119 |
booting, you will need a TFTP server with <userinput>tsize</userinput> |
is used as the argument of <command>in.tftpd</command><footnote> |
|
support. On a &debian; server, the <classname>atftpd</classname> and |
|
|
<classname>tftpd-hpa</classname> packages qualify; we recommend |
|
|
<classname>tftpd-hpa</classname>. |
|
| 120 |
|
|
| 121 |
</para></note><para arch="mips"> |
<para> |
| 122 |
|
The <userinput>-l</userinput> argument enables some versions of |
| 123 |
|
<command>in.tftpd</command> to log all requests to the system logs; |
| 124 |
|
this is useful for diagnosing boot errors. |
| 125 |
|
</para> |
| 126 |
|
|
| 127 |
|
</footnote>; you'll need that below. |
| 128 |
|
If you've had to change <filename>/etc/inetd.conf</filename>, you'll have to |
| 129 |
|
notify the running <command>inetd</command> process that the file has changed. |
| 130 |
|
On a Debian machine, run <userinput>/etc/init.d/inetd reload</userinput>; on |
| 131 |
|
other machines, find out the process ID for <command>inetd</command>, and run |
| 132 |
|
<userinput>kill -HUP <replaceable>inetd-pid</replaceable></userinput>. |
| 133 |
|
|
| 134 |
|
</para><para arch="mips"> |
| 135 |
|
|
| 136 |
If you intend to install Debian on an SGI machine and your TFTP server is a |
If you intend to install Debian on an SGI machine and your TFTP server is a |
| 137 |
GNU/Linux box running Linux 2.4, you'll need to set the following on your |
GNU/Linux box running Linux 2.4, you'll need to set the following on your |
| 138 |
server: |
server: |
| 139 |
|
|
| 140 |
<informalexample><screen> |
<informalexample><screen> |
| 141 |
|
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc |
|
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc |
|
|
|
|
| 142 |
</screen></informalexample> |
</screen></informalexample> |
| 143 |
|
|
| 144 |
to turn off Path MTU discovery, otherwise the Indy's PROM can't |
to turn off Path MTU discovery, otherwise the SGI's PROM can't |
| 145 |
download the kernel. Furthermore, make sure TFTP packets are sent from |
download the kernel. Furthermore, make sure TFTP packets are sent from |
| 146 |
a source port no greater than 32767, or the download will stall after |
a source port no greater than 32767, or the download will stall after |
| 147 |
the first packet. Again, it's Linux 2.4.X tripping this bug in the |
the first packet. Again, it's Linux 2.4.X tripping this bug in the |
| 148 |
PROM, and you can avoid it by setting |
PROM, and you can avoid it by setting |
| 149 |
|
|
| 150 |
<informalexample><screen> |
<informalexample><screen> |
| 151 |
|
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range |
|
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range |
|
|
|
|
| 152 |
</screen></informalexample> |
</screen></informalexample> |
| 153 |
|
|
| 154 |
to adjust the range of source ports the Linux TFTP server uses. |
to adjust the range of source ports the Linux TFTP server uses. |
| 160 |
<title>Move TFTP Images Into Place</title> |
<title>Move TFTP Images Into Place</title> |
| 161 |
<para> |
<para> |
| 162 |
|
|
| 163 |
Next, place the TFTP boot image you need, as found in |
Next, place the TFTP boot image you need, as found in |
| 164 |
<xref linkend="where-files"/>, in the <command>tftpd</command> |
<xref linkend="where-files"/>, in the <command>tftpd</command> |
| 165 |
boot image directory. Generally, this directory will be |
boot image directory. You may have to make a link from that |
|
<filename>/tftpboot</filename>. You'll have to make a link from that |
|
| 166 |
file to the file which <command>tftpd</command> will use for booting a |
file to the file which <command>tftpd</command> will use for booting a |
| 167 |
particular client. Unfortunately, the file name is determined by the |
particular client. Unfortunately, the file name is determined by the |
| 168 |
TFTP client, and there are no strong standards. |
TFTP client, and there are no strong standards. |
| 176 |
<filename>yaboot-netboot.conf</filename>. Just rename this to |
<filename>yaboot-netboot.conf</filename>. Just rename this to |
| 177 |
<filename>yaboot.conf</filename> in the TFTP directory. |
<filename>yaboot.conf</filename> in the TFTP directory. |
| 178 |
|
|
| 179 |
</para><para arch="i386"> |
</para><para arch="x86"> |
| 180 |
|
|
| 181 |
For PXE booting, everything you should need is set up in the |
For PXE booting, everything you should need is set up in the |
| 182 |
<filename>netboot/netboot.tar.gz</filename> tarball. Simply extract this |
<filename>netboot/netboot.tar.gz</filename> tarball. Simply extract this |
| 183 |
tarball into the <command>tftpd</command> boot image directory. Make sure |
tarball into the <command>tftpd</command> boot image directory. Make sure |
| 184 |
your dhcp server is configured to pass <filename>/pxelinux.0</filename> |
your dhcp server is configured to pass <filename>pxelinux.0</filename> |
| 185 |
to <command>tftpd</command> as the filename to boot. |
to <command>tftpd</command> as the filename to boot. |
| 186 |
|
|
| 187 |
</para><para arch="ia64"> |
</para><para arch="ia64"> |
| 201 |
|
|
| 202 |
For DECstations, there are tftpimage files for each subarchitecture, |
For DECstations, there are tftpimage files for each subarchitecture, |
| 203 |
which contain both kernel and installer in one file. The naming |
which contain both kernel and installer in one file. The naming |
| 204 |
convention is tftpimage-<replaceable>subarchitecture</replaceable> or |
convention is |
| 205 |
tftpimage-<replaceable>subarchitecture</replaceable>.gz. If the |
<filename><replaceable>subarchitecture</replaceable>/netboot-boot.img</filename>. |
| 206 |
tftpimage is gzipped (the name ends with .gz), you need to unpack it |
Copy the tftpimage file you would like to use to |
|
first with <userinput>gunzip |
|
|
tftpimage-<replaceable>subarchitecture</replaceable>.gz</userinput>, |
|
|
as DECstations cannot boot compressed files by TFTP. Copy the |
|
|
tftpimage file you would like to use to |
|
| 207 |
<userinput>/tftpboot/tftpboot.img</userinput> if you work with the |
<userinput>/tftpboot/tftpboot.img</userinput> if you work with the |
| 208 |
example BOOTP/DHCP setups described above. |
example BOOTP/DHCP setups described above. |
| 209 |
|
|
| 212 |
The DECstation firmware boots by TFTP with the command <userinput>boot |
The DECstation firmware boots by TFTP with the command <userinput>boot |
| 213 |
<replaceable>#</replaceable>/tftp</userinput>, where |
<replaceable>#</replaceable>/tftp</userinput>, where |
| 214 |
<replaceable>#</replaceable> is the number of the TurboChannel device |
<replaceable>#</replaceable> is the number of the TurboChannel device |
| 215 |
from which to boot. On most DECstations this is "3". If the |
from which to boot. On most DECstations this is <quote>3</quote>. If the |
| 216 |
BOOTP/DHCP server does not supply the filename or you need to pass |
BOOTP/DHCP server does not supply the filename or you need to pass |
| 217 |
additional parameters, they can optionally be appended with the |
additional parameters, they can optionally be appended with the |
| 218 |
following syntax: |
following syntax: |
| 278 |
<title>SPARC TFTP Booting</title> |
<title>SPARC TFTP Booting</title> |
| 279 |
<para> |
<para> |
| 280 |
|
|
| 281 |
SPARC architectures for instance use the subarchitecture names, such |
Some SPARC architectures add the subarchitecture names, such as |
| 282 |
as ``SUN4M'' or ``SUN4C''; in some cases, the architecture is left |
<quote>SUN4M</quote> or <quote>SUN4C</quote>, to the filename. Thus, |
| 283 |
blank, so the file the client looks for is just |
if your system's subarchitecture is a SUN4C, and its IP is 192.168.1.3, |
| 284 |
<filename>client-ip-in-hex</filename>. Thus, if your system |
the filename would be <filename>C0A80103.SUN4C</filename>. However, |
| 285 |
subarchitecture is a SUN4C, and its IP is 192.168.1.3, the filename |
there are also subarchitectures where the file the client looks for is |
| 286 |
would be <filename>C0A80103.SUN4C</filename>. |
just <filename>client-ip-in-hex</filename>. An easy way to determine the |
| 287 |
|
hexadecimal code for the IP address is to enter the following command |
| 288 |
|
in a shell (assuming the machine's intended IP is 10.0.0.4). |
| 289 |
|
|
| 290 |
|
<informalexample><screen> |
| 291 |
|
$ printf '%.2x%.2x%.2x%.2x\n' 10 0 0 4 |
| 292 |
|
</screen></informalexample> |
| 293 |
|
|
| 294 |
|
To get to the correct filename, you will need to change all letters to |
| 295 |
|
uppercase and if necessary append the subarchitecture name. |
| 296 |
|
|
| 297 |
|
</para><para> |
| 298 |
|
|
| 299 |
|
If you've done all this correctly, giving the command <userinput>boot |
| 300 |
|
net</userinput> from the OpenPROM should load the image. If the image |
| 301 |
|
cannot be found, try checking the logs on your tftp server to see which |
| 302 |
|
image name is being requested. |
| 303 |
|
|
| 304 |
</para><para> |
</para><para> |
| 305 |
|
|
| 330 |
</sect3> |
</sect3> |
| 331 |
|
|
| 332 |
<sect3 arch="mips"> |
<sect3 arch="mips"> |
| 333 |
<title>SGI Indys TFTP Booting</title> |
<title>SGI TFTP Booting</title> |
| 334 |
<para> |
<para> |
| 335 |
|
|
| 336 |
On SGI Indys you can rely on the <command>bootpd</command> to supply |
On SGI machines you can rely on the <command>bootpd</command> to supply |
| 337 |
the name of the TFTP file. It is given either as the |
the name of the TFTP file. It is given either as the |
| 338 |
<userinput>bf=</userinput> in <filename>/etc/bootptab</filename> or as |
<userinput>bf=</userinput> in <filename>/etc/bootptab</filename> or as |
| 339 |
the <userinput>filename=</userinput> option in |
the <userinput>filename=</userinput> option in |
| 343 |
</sect3> |
</sect3> |
| 344 |
|
|
| 345 |
<sect3 arch="mips"> |
<sect3 arch="mips"> |
| 346 |
<title>Broadcom BCM91250A TFTP Booting</title> |
<title>Broadcom BCM91250A and BCM91480B TFTP Booting</title> |
| 347 |
<para> |
<para> |
| 348 |
|
|
| 349 |
You don't have to configure DHCP in a special way because you'll pass the |
You don't have to configure DHCP in a special way because you'll pass the |
| 350 |
full path of the file to the loaded to CFE. |
full path of the file to be loaded to CFE. |
| 351 |
|
|
| 352 |
</para> |
</para> |
| 353 |
</sect3> |
</sect3> |
| 356 |
|
|
| 357 |
<!-- FIXME: commented out since it seems too old to be usable and a current |
<!-- FIXME: commented out since it seems too old to be usable and a current |
| 358 |
way is not known |
way is not known |
| 359 |
|
|
| 360 |
<sect2 id="tftp-low-memory"> |
<sect2 id="tftp-low-memory"> |
| 361 |
<title>TFTP Installation for Low-Memory Systems</title> |
<title>TFTP Installation for Low-Memory Systems</title> |
| 362 |
<para> |
<para> |
| 383 |
<listitem><para> |
<listitem><para> |
| 384 |
|
|
| 385 |
Untar the root archive on your NFS server (can be the same system as |
Untar the root archive on your NFS server (can be the same system as |
| 386 |
your TFTP server): |
your TFTP server): |
| 387 |
|
|
| 388 |
<informalexample><screen> |
<informalexample><screen> |
|
|
|
| 389 |
# cd /tftpboot |
# cd /tftpboot |
| 390 |
# tar xvzf root.tar.gz |
# tar xvzf root.tar.gz |
|
|
|
| 391 |
</screen></informalexample> |
</screen></informalexample> |
| 392 |
|
|
| 393 |
Be sure to use the GNU <command>tar</command> (other tar programs, like the |
Be sure to use the GNU <command>tar</command> (other tar programs, like the |
| 402 |
for SunOS): |
for SunOS): |
| 403 |
|
|
| 404 |
<informalexample><screen> |
<informalexample><screen> |
| 405 |
|
/tftpboot/debian-sparc-root <replaceable>client</replaceable>(rw,no_root_squash) |
|
/tftpboot/debian-sparc-root client(rw,no_root_squash) |
|
|
|
|
| 406 |
</screen></informalexample> |
</screen></informalexample> |
| 407 |
|
|
| 408 |
NOTE: "client" is the host name or IP address recognized by the server for |
NOTE: <replaceable>client</replaceable> is the host name or IP address recognized |
| 409 |
the system you are booting. |
by the server for the system you are booting. |
| 410 |
|
|
| 411 |
</para></listitem> |
</para></listitem> |
| 412 |
<listitem><para> |
<listitem><para> |
| 417 |
IP address is 192.168.1.3, do |
IP address is 192.168.1.3, do |
| 418 |
|
|
| 419 |
<informalexample><screen> |
<informalexample><screen> |
|
|
|
| 420 |
# ln -s debian-sparc-root 192.168.1.3 |
# ln -s debian-sparc-root 192.168.1.3 |
|
|
|
| 421 |
</screen></informalexample> |
</screen></informalexample> |
| 422 |
|
|
| 423 |
</para></listitem> |
</para></listitem> |
| 431 |
<title>Installing with TFTP and NFS Root</title> |
<title>Installing with TFTP and NFS Root</title> |
| 432 |
<para> |
<para> |
| 433 |
|
|
| 434 |
Installing with TFTP and NFS Root is similar to |
Installing with TFTP and NFS Root is similar to |
| 435 |
<xref linkend="tftp-low-memory"/> because you don't want to |
<xref linkend="tftp-low-memory"/> because you don't want to |
| 436 |
load the RAMdisk anymore but boot from the newly created NFS-root file |
load the RAMdisk anymore but boot from the newly created NFS-root file |
| 437 |
system. You then need to replace the symlink to the tftpboot image by |
system. You then need to replace the symlink to the tftpboot image by |
| 438 |
a symlink to the kernel image (for example, |
a symlink to the kernel image (for example, |