BOOTING(8)BOOTING(8)NAMEbooting - bootstrapping procedures
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 bootstrap‐
Be sure to read boot(8) to understand what happens after the kernel is
To bootstrap a diskless terminal or a CPU server, a file server must be
running. PCs can boot from a floppy disk or any FAT16 partition. On
all the terminals, typing two control-T's followed by a lower-case r
reboots the machine; other methods of rebooting are mentioned for some
To boot a PC, it is necessary to get /386/9boot or /386/9load loaded
into memory. There are many ways to do this. A Plan 9 boot floppy
prepared by format (see prep(8)) will load 9load when the PC is reset
or powered on. Other methods are described in 9boot(8). 9boot or
9load then locates and loads a Plan 9 kernel, using configuration
information from the matching file in /cfg/pxe (9boot) or the file
plan9.ini stored in the 9fat configuration partition or on a DOS file
system (9load). See 9boot(8) for details.
Once the kernel is booted, it behaves like the others. See boot(8) for
The Plan 9 CPU servers are multi-user, so they do not request a user
name when booting. On the CPU servers, typing a control-P on the con‐
sole reboots the machine.
PC CPU Server
Proceed as for the PC terminal, but load /386/9pccpu or /386/9pccpud‐
MIPS Routerboard CPU Server
Configure RouterBOOT via the serial port (115200 baud) to always boot
from Ethernet via DHCP and TFTP, and arrange to load the ELF executable
/mips/9rb in ndb(6).
All ARM systems are started by U-boot using similar commands. The ker‐
nels (and thus ndb parameters) are
for the Marvell PXA168-based Guruplug Display
for other Marvell Kirkwoods (Sheevaplug, Guruplug, Dreamplug, Openrd,
for TI OMAP3 boards (IGEPv2 from ISEE, Gumstix Overo)
for Trimslice systems, which contain the Nvidia Tegra 2
for Raspberry Pis
In the following, replace MAC with your board's MAC address
without colons, in lower case (the format of the ndb attribute).
If loading from a non-Plan-9 TFTP server, replace with
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 to taste. For PXA plugs, replace with for OMAP boards,
replace with and be sure to edit the line for 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 %C; bootp; tftp 0x800000;
For Guruplugs Displays, do the same but type this after instead:
'dhcp; tftpboot; tftpboot 0x1000 %C; bootz 0x500000'
For Kirkwood Guruplugs, type this after
'dhcp 0x800000; tftp 0x1000 %C; go 0x800000'
For IGEPv2 boards, type this after
'tftp 0x80300000 %C; dhcp 0x80310000; go 0x80310000'
For Gumstix Overo boards, type this after
'bootp 0x80310000; bootp 0x80300000 %C; go 0x80310000'
For Trimslice systems, type this after
'dhcp; dhcp; tftpboot 0x410000; tftpboot 0x400000 %C; go 0x410000'
For Raspberry Pis, gunzip the pi.uboot.sd.img.gz named below
onto an SD card and insert that into your Pi.
Thereafter, the boards will automatically boot via BOOTP and
TFTP when reset.
/n/sources/extra/pi.uboot.sd.img.gz is a compressed bootable SD
card image for Raspberry Pi, uses PXE booting.
SEE ALSOndb(6), 9boot(8), boot(8), init(8), plan9.ini(8)BOOTING(8)