System information
7 Automatic Cluster Management
# Power on the node
hostPowerOn
while (hostPOSTcode != 0x37); # 0x37 = (Displaying sign-on message)
# Send/push "delete key" to enter setup
keyb_cmd -u --key 0x7e335b1b -s
The POST code 0x37 represents the display of the BIOS start-up screen with the sign-on
message [79]. This is the moment, to push the "delete" button to enter the BIOS setup
utility. With the aid of the program key_cmd single keystrokes can be emulated. The
parameter –key defines the ASCII representation of the pressed key. There are no ASCII
codes for special function keys like the "delete" or the "arrow" keys [87]. In this case, the
ANSI escape codes are used to select a function key [88]. The value 0x7e335b1b is the
escape sequence of the "delete" key. Next a code fragment is shown which waits for the
entering of the BIOS Setup Utility:
while (true)
do
case (hostPOSTcode) in
"0x87" ) break # 0x87 = (Execute BIOS setup if requested.)
"0x85" ) analyseError # 0x85 = (Display errors to the user.)
esac
done
The infinite while loop is used to wait for the start of the BIOS setup utility. The original
shell script contains a timeout to avoid an infinite run of the script. The advantage of
detecting the boot stage with the POST codes is that it is independent of the motherboard
or BIOS vendor. Furthermore, the CHARM can analyze the screen content to detect the
state of the booting or to validate the setup of the BIOS setting. Unfortunately, most of
the BIOS run in a graphical video mode and the screen content contains pixel data instead
of ASCII characters. But with the aid of the Display Screen Inspector the pixel data can be
converted into ASCII characters (section 6.3 explains this approach). However, analyzing
the screen content to detect the boot state highly depends on the host system, whereas the
basic POST code set depends only on the BIOS vendor. Basically, two vendors provide the
most of the BIOS for computer systems: American Megatrends and Phoenix Technologies.
The CMOS setup script can easily be ported to other computer systems. After entering the
BIOS Setup Utility, the key sequence of the appropriated BIOS setup is sent to the host
computer:
# Send key sequence to load the default BIOS setting
for key in $ANSI_LEFT $ANSI_DOWN $ANSI_DOWN $ASCII_ENTER ...
do
keyb_cmd -u --key $key -s
done
# Send key sequence to setup and save the desired BIOS setting
96