Go to main content

Oracle® OpenBoot 4.x Administration Guide

Exit Print View

Updated: June 2020

Change the Power-On Banner

The banner is displayed at a system-dependent screen location (usually either at the top of the screen or at the current cursor position). If the current output device has a device_type property whose value is display, displays a logo by executing the current output device’s draw-logo method with the following arguments:

  • The line# argument, at the system’s discretion, is either 0 or the line number corresponding to the current cursor position.

  • If oem-logo? is true, the addr argument is the address returned by oem-logo. Otherwise, it is the address of the system-dependent default logo. The width and height arguments are both 64. Note – oem-logo? is only effective for graphics-based console output devices.

In any case, display additional information as follows:

  • If oem-banner? is true, display the text given by the value of oem-banner.

  • Otherwise, display implementation-dependent information about the system (for example, the machine type, serial number, firmware revision, network address, and hardware configuration).

If executed within an NVRAMRC script, it suppresses automatic execution of the following OpenBoot start-up sequence:

  • probe-all, install-console, banner

    See also: suppress-banner.

  • oem-banner ( -- text-str text-len ).

  • oem-banner? ( -- custom? ).

    If true, banner displays custom message in oem-banner. If false, banner displays the normal system-dependent messages.

Although it is not a direct preventative or detective control, a banner can be used for these reasons:

  • Convey ownership.

  • Warn users of the acceptable use.

  • Indicate that access or modifications to OpenBoot variables is restricted to authorized personnel.

The banner configuration variables are:

  • oem-banner

  • oem-banner?

  • oem-logo

  • oem-logo?

The banner consists of two parts: the text field and the logo (over serial ports, only the text field is displayed). You can replace the existing text field with a custom text message using the oem-banner and oem-banner? configuration variables. The banner can be up to 68 characters. All printable characters are accepted.

The graphic logo is handled differently. The oem-logo variable is a 512-byte array, containing a total of 4096 bits arranged in a 64 x 64 array. Each bit controls one pixel. The most significant bit (MSB) of the first byte controls the upper-left corner pixel. The next bit controls the pixel to the right of it, and so on.

To restore the original power-on banner, set the oem-logo? and oem-banner? variables to false, as in these examples:

{0} ok setenv oem-logo? false
{0} ok setenv oem-banner? false

Because the oem-logo array is so large, printenv displays approximately the first 8 bytes (in hexadecimal). To display the entire array, type oem-logo dump. The oem-logo array is not erased by set-defaults, since it might be difficult to restore the data. However, oem-logo? is set to false when set-defaults executes, so the custom logo is no longer displayed.

Note -  Some systems do not support the oem-logo feature.
  1. View the current power-on banner.
    {0} ok banner
    SPARC T5-8, No Keyboard
    Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
    OpenBoot 4.37.4.build_xx, 315.5000 GB memory available, Serial #136621172.
    Ethernet address x:xx:xx:xx:xx:xx, Host ID: 1234ac12.
    {0} ok

    The banner for your system will be different.

  2. If desired, insert a custom text field.
    {0} ok setenv oem-banner Hello World
    oem-banner = Hello World
    {0} ok setenv oem-banner? true
    oem-banner? = true
    {0} ok banner
    Hello World
    {0} ok 
  3. If desired, change the logo.

    This example fills the top half of the oem-logo variable with an ascending pattern.

    1. Create a FORTH array containing the correct data.
      {0} ok create logoarray d# 512 allot
    2. Copy the array into the oem-logo variable.
      {0} ok logoarray d# 256 0 do i over i + c! loop drop
    3. Install the array in the oem-logo? variable with the $setenv command.
      {0} ok logoarray d# 256 " oem-logo" $setenv
    4. Change the oem-logo variable setting.
      {0} ok setenv oem-logo? true
    5. Verify the output.
      {0} ok banner

Related Information