BOOTING(8) BOOTING(8) NAME booting - bootstrapping procedures SYNOPSIS none DESCRIPTION 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/9pcf 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 load /386/9pccpuf . SGI Challenge multiprocessor CPU Server The Challenge ROM monitor can boot from the Ethernet. To boot from the Ethernet, type bootp()/mips/9ch 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 down- load 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 BOOTING(8) BOOTING(8) parameter for the machine in /lib/ndb will be downloaded by default. Once the kernel is loaded, it prompts for the Ethernet pro- tocol to use to reach the root file server; request the default. ARM CPU Servers All ARM systems are started by U-boot using similar com- mands. 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 ea=MAC 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': BOOTING(8) BOOTING(8) 'bootp 0x80310000; bootp 0x80300000 /cfg/pxe/MAC; go 0x80310000' Thereafter, the boards will automatically boot via BOOTP and TFTP when reset. SEE ALSO ndb(6), 9boot(8), boot(8), init(8), plan9.ini(8) SOURCE Sources for the various boot programs are under /sys/src/boot.