|
This manual page collects the incantations required to bootstrap
Plan 9 machines. Some of the information here is specific to the
installation at Bell Labs; some is generic.
If a CPU server is up, BOOTP/DHCP and TFTP will run from there;
if not, the necessary files and services must be available on
a separate machine, such as a Unix system, to use these protocols
for bootstrapping.
Be sure to read boot(8) to understand what happens after the kernel
is loaded.
Terminals
To bootstrap a diskless terminal or a CPU server, a file server
must be running.
PCs
On a PC, the 9boot(8) program is used to load the kernel /386/9pc
into memory.
Once the kernel is booted, it behaves like the others. See boot(8)
for details.
CPU Servers
The Plan 9 CPU servers are multi–user, so they do not request a
user name when booting.
PC CPU Server
Proceed as for the PC terminal, but have service=cpu set in plan9.ini(8).
SGI Challenge multiprocessor CPU Server
The Challenge ROM monitor can boot from the Ethernet. To boot
from the Ethernet, type
or use the ROM command setenv to set the variable bootfile to
that same string and type boot. To load a different file, tell
bootp which file to load, and to force the download to come from
a particular system, bootp()system:file. Any arguments after bootp()file
are passed to /boot. If you are
running a Plan 9 BOOTP server (see dhcpd(8)), the file name can
be omitted and the file specified by the bootf parameter for the
machine in /lib/ndb will be downloaded by default.
Once the kernel is loaded, it prompts for the Ethernet protocol
to use to reach the root file server; request the default.
ARM CPU Servers
All ARM systems are started by U–boot using similar commands. The
kernels (and thus ndb bootf parameters) are /arm/9gd for the Marvell
PXA168–based Guruplug Display, /arm/9plug for all Marvell Kirkwood
plugs (Sheevaplug, Guruplug, Openrd, etc.), and /arm/9beagle for
TI OMAP3 boards (IGEPv2 from
ISEE, Gumstix Overo). In the following, replace MAC with your
board's MAC address without colons, in lower case (the format
of the ether ndb attribute).
First, establish a /cfg/pxe (plan9.ini) file for the new CPU server.
For Kirkwood plugs,
| |
cd /cfg/pxe; cp example–kw MAC
|
and edit /cfg/pxe/MAC to taste. For PXA plugs, replace kw with
pxa; for OMAP boards, replace kw with omap and be sure to edit
the line for ether0 to set
Second, configure U–boot to load the appropriate kernel and /cfg/pxe
file at suitable addresses and start the kernel. For Sheevaplugs
and Openrd boards, type this at U–boot once:
| |
setenv bootdelay 2
# type the next two lines as one
setenv bootcmd 'bootp; bootp; tftp 0x1000 /cfg/pxe/MAC; bootp;
| |
tftp 0x800000; go 0x800000'
|
saveenv
|
For Guruplugs Displays, do the same but type this after setenv
bootcmd instead:
| |
'dhcp; tftpboot; tftpboot 0x1000 /cfg/pxe/MAC; bootz 0x500000'
|
For Kirkwood Guruplugs, type this after setenv bootcmd:
| |
'dhcp 0x800000; tftp 0x1000 /cfg/pxe/MAC; go 0x800000'
|
For IGEPv2 boards, type this after setenv bootcmd:
| |
'tftp 0x80300000 /cfg/pxe/MAC; dhcp 0x80310000; go 0x80310000'
|
For Gumstix Overo boards, type this after setenv bootcmd:
| |
'bootp 0x80310000; bootp 0x80300000 /cfg/pxe/MAC; go 0x80310000'
|
Thereafter, the boards will automatically boot via BOOTP and TFTP
when reset.
|