[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

obp-tftp tftp-retries

I have been given the opportunity to build a linux cluster
out of a student lab with dual processor G4 machines.

Since it is a student lab, the machines need to boot
the default OS (macos9) if all else fails, but
ideally boot linux when reset at night.

To this end, I want the open firmware to boot using
this command "boot enet:,yaboot.hack"
at night, but using "boot hd:\\:tbxi" by day.

This can be achieved with a boot script that
after bringing up the DHCP interface, tries
to get a file with tftp and if it fails then it boots
from the harddrive.  Unfortunately, the dang thing
sits in the tftp attempt forever.  Well at least ten minutes
before i crash it and try some more forth stuff.

So I have been learnign a ton of forth and how
to manipulate OF but I still can't figure out how
to set the tftp-retries variable.

If someone could give me a pointer or two
I would reatly appreciate it.

In detail,

Passing "boot enet:,yaboot.hack" to the command
line, results in the file being downloaded from the
clusters master server ( and it is then executed.

If the server is down, the damn thing sits in a loop
retrying forever.  can't i set the tftp-retries
option using the first stage bootloader CHRP script,
and catch a throw when it fails to get the file
which then causes the boot script to
execute the "setenv boot-device hd:9,\\:tbxi" command
and then proceeed as normally ?

this would provide us with an IDEAl solution.
After burning my eyeballs and brain out all day
I can't figure out how to set this damn tftp-retreis option
in forth at the OF prompt.

Surely there must be a modular way to bring up the network
interface with DHCP (using OF commands) and then
do a tftp test ?

I became very hopeful when I found that you could 
fire up a telnet connection to the open firmware using

" enet:telnet," io

and then telnetting to that IP.
If such a simple command can do that, surely
there must be a way of using the obp-tftp package
to do what i outlined above.

I just lack any idea of how to do it.

flames > /dev/null


Reply to: