Monday, June 7, 2021

SPARC: OpenBoot - Disable Auto-Boot?

 

SPARC: OpenBoot - Disable Auto-Boot?

Abstract:

SPARC based platform have a level of firmware between the chassis hardware and the loaded OS called OpenBoot, The IEEE created a standard based upon it, IEEE 1275-1994, and it was called OpenFirmware. Sun Microsystem's OpenBoot was released as Open Source in 2006 under a BSD license, and other vendor implementations were also released. The persistent settings for OpenBoot are held in the environment, as well as defaults, and changes can be made to the EEPROM. The Auto-Boot? environment value is one typical value commonly adusted.

[Sun Microsystems T4-2 Chassis]

Achieve Console

Console can be achieved on a typical rack mount system via TCP/IP connection to the ILOM, with a command to grab the console to the OK prompt (assuming the autoboot flag is disabled.)

sun9876/root# ssh root@T4-2-ilom
Password:

Oracle(R) Integrated Lights Out Manager
Version 3.2.6.8 r128095
Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
Warning: HTTPS certificate is set to factory default.
Hostname: ORACLESP-1207BDY086

->  

-> start /SP/console
Are you sure you want to start /SP/console (y/n)? y

Serial console started.  To stop, type #.

{0} ok

The Environment

The environment consist of a series of label-value pairs. Those labels define the characteristics by which the behavior of the chassis can be modified during any changes.

Show OpenBoot Environment Values & Defaults

The printenv command shows a copy of all label-value pairs, as well as defaults.

{0} ok printenv
Variable Name           Value                          Default Value

ttya-rts-dtr-off        false                          false
ttya-ignore-cd          true                           true
keyboard-layout         US-English
reboot-command
security-mode           none                           No default
security-password                                      No default
security-#badlogins     0                              No default
verbosity               min                            min
diag-switch?            false                          false
local-mac-address?      true                           true
fcode-debug?            false                          false
scsi-initiator-id       7                              7
oem-logo                                               No default
oem-logo?               false                          false
oem-banner                                             No default
oem-banner?             false                          false
ansi-terminal?          true                           true
screen-#columns         80                             80
screen-#rows            34                             34
ttya-mode               9600,8,n,1,-                   9600,8,n,1,-
output-device           virtual-console                virtual-console
input-device            virtual-console                virtual-console
auto-boot-on-error?     false                          false
load-base               16384                          16384
auto-boot?              true                           true
os-root-device
network-boot-arguments
boot-command            boot                           boot
boot-file
boot-device             /pci@700/pci@1/pci@0/pci ...   disk net
multipath-boot?         false                          false
boot-device-index       0                              0
use-nvramrc?            false                          false
nvramrc                 ." ChassisSerialNumber 1 ...
error-reset-recovery    boot                           boot
{0} ok 

Set an AutoBoot Environment

The autoboot flag, in the above example, is currently enabled, which is also the default value.
This can be disabled, for the purpose of loading a new OS after a fresh reboot.

{0} ok printenv auto-boot?
auto-boot? =            true

{0} ok setenv auto-boot? false
auto-boot? =            false

{0} ok printenv auto-boot?
auto-boot? =            false

Conclusion:

Environment Label-Value pairs in OpenBoot drive the behavior of the firmware. This value can be set to true, to force boot on chassis power up, or to leave the OS at the "ok" prompt on power up. This is definitively helpful in an environment where a failure may take a chassis down unexpectedly, VM's were brought up on an alternate chassis, and repair of the failued chassis environment is not desirable to bring up the OS formerly running on the failed chassis until an orderly transition can be enabled.