bootme.html

Previous: bootsettings.html Next: twist.html

"bootme" is an arbitrary name I chose for the boot file to be transferred to OF, after it obtains an IP address using DHCP.

This file can be in any of the executable formats that OF understands. ELF, COFF, and FORTH are all supported formats. You can send an ELF image of the yaboot program, a coff kernel image, or a forth boot script. Using a forth boot script allows rapid and flexible reconfiguration with full access to all of OF's features and commands.

Bootmacos as bootfile

<CHRP-BOOT>
<COMPATIBLE>
MacRISC
</COMPATIBLE>
<DESCRIPTION>
PowerPC GNU/Linux First Stage Bootstrap
</DESCRIPTION>
<BOOT-SCRIPT>


" hd:,\\:tbxi" $boot
\ mac-boot


</BOOT-SCRIPT>
</CHRP-BOOT>

The important line above is the one that ends in $boot. The rest are just packaging. This tells OF to look for The Blessed folder(tbxi) of MacOS on the ide hard drive (hd).

Bootlinux as bootfile


<CHRP-BOOT>
<COMPATIBLE>
MacRISC
</COMPATIBLE>
<DESCRIPTION>
PowerPC GNU/Linux First Stage Bootstrap
</DESCRIPTION>
<BOOT-SCRIPT>
: .printf fb8-write drop ;
: bootyaboot " Loading second stage bootstrap..." .printf 100 ms load-base release-load-area " enet:192.168.2.1,yaboot" $boot ;
: bootmacos " Loading MacOs ... " .printf 100 ms load-base release-load-area " hd:,\\:tbxi" $boot ;
" screen" output

dev screen
" "(0000000000aa00aa0000aaaaaa0000aa00aaaa5500aaaaaa)" drop 0 7 set-colors
" "(5555555555ff55ff5555ffffff5555ff55ffffff55ffffff)" drop 8 15 set-colors
device-end
f to foreground-color
0 to background-color
" "(0C)" .printf

bootyaboot

"  "(0d 0a)" .printf bootyaboot

</BOOT-SCRIPT>
</CHRP-BOOT>

Only two lines of the above are essential (other than the packaging), the bootyaboot command, and the definition of it (definitions are preceeded with colons). In this example, OF is told to load yet another file (yaboot) using tftp to the given server, and to execute it.

Bootme - twisted

When the subordinate workstation contacts the tftp server (on the master machine), the connection will be intercepted by tcpd which will perform a twist. This is the key to handling each machine in its own way. It allows us to maintain a unique state environment for each machine. Most simply, it is used to control whether a given machine boots into MacOS or Linux, or reinstalls the Linux.

Next: TCP Wrapper TFTP Twisting