- Introduction
- Booting a System
- The OpenBoot Environment
- The OpenBoot Architecture
- The OpenBoot Interface
- Getting Help in OpenBoot
- PROM Device Tree (Full Device Pathnames)
- OpenBoot NVRAM
- OpenBoot Security
- OpenBoot Diagnostics
- OpenBoot PROM Versions
- Booting a System
- The Kernel
- The init Phase
- System Shutdown
- Summary
- Suggested Readings and Resources
OpenBoot Diagnostics
You can run various hardware diagnostics in OpenBoot to troubleshoot hardware and network problems. The diagnostic commands are listed in Table 3.13.
Table 3.13 OpenBoot Diagnostic Commands
Command |
Description |
.env |
On servers, this command is used to obtain status information about the system’s power supplies, fans, and temperature sensors. |
probe-scsi |
Identifies devices attached to the internal SCSI bus. |
probe-scsi-all |
Identifies devices attached to any SCSI bus. |
probe-ide |
Identifies IDE devices attached to the PCI bus. |
probe-fcal-all |
Identifies devices on all fibre channel loops. |
reset-all |
Resets the entire system, similar to a power cycle. |
test <device-specifier> |
Executes the specified device’s self-test method. For example, test floppy tests the floppy drive (if installed), and test net tests the network connection. |
test-all <device-specifier> |
Tests all devices that have built-in self-test methods below the specified device tree node. If <device-specifier> is absent, all devices beginning from the root node are tested. |
watch-clock |
Tests the clock function. |
watch-net |
Monitors the network connection. |
The following examples use some of the diagnostic features of OpenBoot.
To identify peripheral devices currently connected to the system, such as disks, tape drives, or CD-ROMs, you use OpenBoot probe commands. To identify the various probe commands and their syntax, you use the OpenBoot sifting command, as follows:
sifting probe
The system responds with this:
(f006c444) probe-all (f006bf14) probe-pci-slot (f006baa4) probe-scsi-all (f0060de8) probe-pci . . . <output has been truncated>
The OpenBoot sifting command, also called a sifting dump, searches OpenBoot commands to find every command name that contains the specified string.
This first example uses the OpenBoot probe command, probe-scsi, to identify all the SCSI devices attached to a particular SCSI bus:
ok probe-scsi
This command is useful for identifying SCSI target IDs that are already in use or to make sure that all devices are connected and identified by the system. The system responds with this:
Target 1 Unit 0 Disk IBM DDRS34560SUN4.2GS98E Target 3 Unit 0 Disk IBM DDRS34560SUN4.2GS98E
This example uses the probe-ide command to identify all IDE devices connected to the PCI bus:
ok probe-ide Device 0 ( Primary Master ) ATA Model: ST34321A Device 1 ( Primary Slave ) Not Present Device 2 ( Secondary Master ) Removable ATAPI Model: CRD-8322B Device 3 ( Secondary Slave ) Not Present
This example tests many of the system components, such as video, the network interface, and the floppy disk:
ok test all
To test the disk drive to determine whether it is functioning properly, you put a formatted, high-density disk into the drive and type the following:
ok test floppy
The system responds with this:
Testing floppy disk system. A formatted disk should be in the drive. Test succeeded.
You type eject-floppy to remove the disk.
Table 3.14 describes other OpenBoot commands you can use to gather information about the system.
Table 3.14 System Information Commands
Command |
Description |
banner |
Displays the power-on banner |
show-sbus |
Displays a list of installed and probed SBus devices |
.enet-addr |
Displays the current Ethernet address |
.idprom |
Displays ID PROM contents, formatted |
.traps |
Displays a list of SPARC trap types |
.version |
Displays the version and date of the startup PROM |
.speed |
Displays CPU and bus speeds |
show-devs |
Displays all installed and probed devices |
The following example uses the banner command to display the CPU type, the installed RAM, the Ethernet address, the host ID, and the version and date of the startup PROM:
ok banner
The system responds with this:
Sun Ultra 5/10 UPA/PCI (UltraSPARC-IIi 270MHz), No Keyboard OpenBoot 3.31, 128 MB (60 ns) memory installed, Serial #10642306. Ethernet address 8:0:20:a2:63:82, Host ID: 80a26382.
This example uses the .version command to display the OpenBoot version and the date of the startup PROM:
ok .version
The system responds with this:
Release 3.31 Version 0 created 2001/07/25 20:36 OBP 3.31.0 2001/07/25 20:36 POST 3.1.0 2000/06/27 13:56
This example shows how to use the .enet-addr command to display the Ethernet address:
ok .enet-addr
The system responds with this:
8:0:20:1a:c7:e3
To display the CPU information, type the following:
.speed
The system responds with this:
CPU Speed : 270.00MHz UPA Speed : 090.00MHz PCI Bus A : 33MHz PCI Bus B : 33MHz
Input and Output Control
The console is used as the primary means of communication between OpenBoot and the user. The console consists of an input device that is used for receiving information supplied by the user and an output device that is used for sending information to the user. Typically, the console is either the combination of a text/graphics display device and a keyboard, or an ASCII terminal connected to a serial port.
The configuration variables that are related to the control of the console are listed in Table 3.15.
Table 3.15 Console Configuration Variables
Variable |
Description |
input-device |
Specifies the console input device (usually keyboard, ttya, or ttyb). |
output-device |
Specifies the console output device (usually screen, ttya, or ttyb). |
screen-#columns |
Specifies the number of onscreen columns. The default is 80 characters per line. |
screen-#rows |
Specifies the number of onscreen rows. The default is 34 lines. |
You can use the variables in Table 3.15 to assign the console’s power-on defaults. These values do not take effect until after the next power cycle or system reset.
If you select keyboard for input-device and the device is not plugged in, input is accepted from the ttya port as a fallback device. If the system is powered on and the keyboard is not detected, the system looks to ttya—the serial port—for the system console and uses that port for all input and output.
You can define the communication parameters on the serial port by setting the configuration variables for that port. These variables are shown in Table 3.16.
Table 3.16 Port Configuration Variables
Variable |
Default Value |
ttyb-rts-dtr-off |
false |
ttyb-ignore-cd |
true |
ttya-rts-dtr-off |
false |
ttya-ignore-cd |
true |
ttyb-mode |
9600,8,n,1,- |
ttya-mode |
9600,8,n,1,- |
The value for each field of the ttya-mode variable is formatted as follows:
<baud-rate>,<data-bits>,<parity>,<stop-bits>,<handshake>
The values for these fields are shown in Table 3.17.
Table 3.17 Fields for the ttya-mode Variable
Field |
Values |
<baud-rate> |
110, 300, 1200, 4800, 9600, 19200 |
<data-bits> |
5, 6, 7, 8 |
<parity> |
n (none), e (even), o (odd), m (mark), s (space) |
<stop-bits> |
1, 1.5, 2 |
<handshake> |
- (none), h (hardware: rts/cts), s (software: xon/xoff) |