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.
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.
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 4-3 Viewing All EEPROM ParametersThe 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=ttyaExample 4-4 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=ttyaExample 4-5 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=Boot0000Example 4-6 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
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.
See Using Your Assigned Administrative Rights in Securing Users and Processes in Oracle Solaris 11.2 .
# eeprom attribute=value
# eeprom attribute
The output should display the new eeprom value for the changed attribute.
To set the auto_boot parameter to false, type the following command using the root role:
# eeprom auto-boot?=falseExample 4-8 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=-kExample 4-9 Setting Parameters for the Console Device
To switch the Oracle Solaris console setting to graphic mode, use the following command:
# eeprom console=graphicsExample 4-10 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"
See Using Your Assigned Administrative Rights in Securing Users and Processes in Oracle Solaris 11.2 .
In this example, a custom parameter named attribute is deleted.
# eeprom -u -d attribute
# eeprom -u attribute eeprom: read: attribute doesn't exist