Go to main content

Booting and Shutting Down Oracle® Solaris 11.3 Systems

Exit Print View

Updated: October 2017
 
 

Working With EEPROM Parameters

You can display and modify the value of parameters in the EEPROM by using the eeprom command. You do not need any special privileges to display EEPROM parameters. However, to modify these parameters, you must assume the root role.

    Note the following additional information about how EEPROM properties are set and stored on x86 platforms.

  • On x86 platforms, the setting of EEPROM properties is simulated by:

    • Storing Oracle Solaris specific properties in the /boot/solaris/bootenv.rc file.

    • Manipulating the GRUB menu to simulate the effect of setting certain EEPROM properties.

    • Implementing NVRAM storage for variables specific to the UEFI environment.

  • Setting the boot-args or boot-file properties causes a special GRUB menu entry to be created and manipulated, as this is the only way to simulate the effect on x86 platforms. The title of the special GRUB menu entry is Solaris bootenv rc. This special entry is marked as the default entry when it is created.

  • Properties that are set by using the eeprom command can be overridden by setting their property names to different values on the kernel command line, for instance, by editing the GRUB menu at boot time. One example would be to set the console property to graphics by using the eeprom command, then by adding B console=text to the kernel command line at boot time. In this case, the console type is set to text, even though the bootenv.rc file specifies a value of graphics.

For more detailed information, see the eeprom(1M) man page.

EEPROM Parameters on UEFI Systems

For UEFI enabled systems, the parameters are stored in two places. Oracle Solaris specific variables are stored in bootenv.rc file. UEFI specific variables are set in the NVRAM store. Unlike SPARC with OBP, Oracle Solaris variables are not consumed by UEFI firmware. To make the UEFI specific variables available, use the –u option with the eeprom command.

Most UEFI variables are in a binary format and are translated to a readable format. When translation is not possible, a hexdump is printed.

Viewing EEPROM Parameters

EEPROM parameters vary by platform. For example, boot-device is a parameter on SPARC platforms, but not on x86 platforms. To view the available EEPROM parameters for your system type, use the eeprom command with no arguments.

Example 20  Viewing All EEPROM Parameters

The example below shows the output of the eeprom command on an x86 based system:

$ eeprom
keyboard-layout=Unknown
ata-dma-enabled=1
atapi-cd-dma-enabled=1
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,-
lba-access-ok=1
console=ttya
Example 21  Viewing a Specific EEPROM Parameter

To display the value for a specific EEPROM parameter add the parameter name to the eeprom command as follows:

$ /usr/sbin/eeprom console
console=ttya
Example 22  Viewing All UEFI EEPROM Parameters

The example below shows how to display all of the UEFI parameters on a system in UEFI mode. You must assume the root role to use this command.

# eeprom -u
MonotonicCounter=0x1f2
OsaBootOptNum=0xffff
ConOut=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ConIn=/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
	/PciRoot(0x0)/Pci(0x1d,0x0)/USB(0x1,0x0)/USB(0x8,0x0)
BootOrder=Boot0000 Boot0001 Boot0002 Boot0003 Boot0004 Boot0005 Boot0006 
Lang=eng
PlatformLang=en-US
Timeout=0x1
Boot0001=description:string=[UEFI]USB:USBIN:USB USB Hard Drive , flags:int=1, device_path: \
	string=/PciRoot(0x0)/Pci(0x1a,0x0)/USB(0x1,0x0)/USB(0x2,0x0)/HD(1,MBR,0x004D5353,0x800,0x3b5800), \
	optional_data:string=AMBO
Boot0002=description:string=[UEFI]PXE:NET0:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x0)/MAC(002128e77478), \
	optional_data:string=AMBO
Boot0003=description:string=[UEFI]PXE:NET1:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x0)/Pci(0x2,0x0)/Pci(0x0,0x1)/MAC(002128e77479), \
	optional_data:string=AMBO
Boot0004=description:string=[UEFI]PXE:NET2:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)/MAC(002128e7747a), \
	optional_data:string=AMBO
Boot0005=description:string=[UEFI]PXE:NET3:Intel(R) Ethernet Controller 10 Gigabit X540-AT2, \
	flags:int=1, device_path:string=/PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x1)/MAC(002128e7747b), \
	optional_data:string=AMBO
Boot0006=description:string=[UEFI]SAS:PCIE3:ATA     HITACHI HDS7225SA81A, flags:int=1, \
	device_path:string=/PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0) \
	/MessagingPath(10,2c00b .... 12010100) \
	/HD(1,GPT,BCB01265-4665-F1CA-8BF5-9C4FB95962FA,0x100,0x80000), optional_data:string=AMBO
Boot0000=description:string=Oracle Solaris s12_13, flags:int=1, device_path: \
	string=HD(1,GPT,C7398875-60D2-A9E0-83EE-94DAA21B0383,0x100,0x80000), 
	file_path:string=/EFI/Oracle/grubx64.efi
USB_POINT=5139417f00000000
ConOutDev=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ConInDev=/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
	/PciRoot(0x0)/Pci(0x1d,0x0)/USB(0x1,0x0)/USB(0x8,0x0)
BootOptionSupport=0x1
ErrOutDev=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
ErrOut=/PciRoot(0x0)/Pci(0x1c,0x7)/Pci(0x0,0x0)/Pci(0x0,0x0)/AcpiAdr(2147549440)
	/PciRoot(0x0)/Pci(0x1f,0x0)/Serial(0x0)/Uart(115200,8,N,1)/UartFlowCtrl(None)/VenPcAnsi()
PlatformLangCodes=en-US
S3PerfAdd=hexdump:989fd6aa00000000
LangCodes=eng
BootCurrent=Boot0000
Example 23  Viewing a Specific UEFI Parameter
# eeprom -u Boot0000
Boot0000=description:string=Oracle Solaris s12_13, flags:int=1, device_path: \
	string=HD(1,GPT,C7398875-60D2-A9E0-83EE-94DAA21B0383,0x100,0x80000), \
	file_path:string=/EFI/Oracle/grubx64.efi

SPARC: How to Set a Boot Attribute

The following procedure describes how to set the default boot device on a SPARC based system. On x86 platforms, the boot device is set through the setup utility for your firmware type, for example, UEFI Boot Manager.


Note - On x86 platforms, the boot device is set through the setup utility for your firmware type, for example, UEFI Boot Manager.
  1. Assume the root role.

    See Using Your Assigned Administrative Rights in Securing Users and Processes in Oracle Solaris 11.3.

  2. Specify the boot attribute.
    # eeprom attribute=value
  3. Verify that the attribute has been set.
    # eeprom attribute

    The output should display the new eeprom value for the changed attribute.

Example 24  Setting the auto_boot Parameter

To set the auto_boot parameter to false, type the following command using the root role:

# eeprom auto-boot?=false
Example 25  Setting Kernel Boot Arguments

You can set kernel boot arguments by specifying a value for the boot-args parameter. For example, type the following command to specify that the system boot the kernel debugger:

# eeprom boot-args=-k 
Example 26  Setting Parameters for the Console Device

To switch the Oracle Solaris console setting to graphic mode, use the following command:

# eeprom console=graphics
Example 27  Setting a Parameter on a UEFI Enabled System

This example shows how to change the boot order on a UEFI enabled system:

# eeprom -u BootOrder="Boot0005 Boot0001 Boot0002 Boot0003 Boot0004 Boot0000"

How to Delete a UEFI EEPROM Parameter

  1. Assume the root role.

    See Using Your Assigned Administrative Rights in Securing Users and Processes in Oracle Solaris 11.3.

  2. Delete the UEFI EEPROM parameter.

    In this example, a custom parameter named attribute is deleted.

    # eeprom -u -d attribute
  3. Verify that the attribute has been deleted.
    # eeprom -u attribute
    eeprom: read: attribute doesn't exist