Sun Java Solaris Communities My SDN Account Join SDN

Article

Booting Solaris Systems to Either the 64-Bit Kernel or the 32-Bit Kernel

 
By Paul Buckley, May 2002  

This document provides answers to frequently asked questions about booting the Solaris Operating Environment (OE) to either the 64-bit kernel or the 32-bit kernel. Booting the 64-bit kernel has been available on Ultra workstations with UltraSPARC processors (Sun4U systems or higher) since the first release of the Solaris 7 OE.

The questions answered here include the following.

NumberCategoryQuestion

Q1
RequirementsAre there systems that only support a 64-bit kernel?

Q2
RequirementsHow can I tell if the currently installed Solaris 7 or greater system has the hardware and software capable of running the 64-bit kernel?

Q3
RequirementsThe necessary 64-bit packages are not installed. How can the 64-bit packages be installed?

Q4
Requirements Is there a minimum Software Group (Metacluster) required for 64-bit support?

Q5
RequirementsWhat about UltraSPARC processors of less than 200 MHz?

Q6
ConfigurationHow do I configure the system to boot a 64-bit kernel?

Q7
ConfigurationHow do I configure the system to boot a 32-bit kernel?

Q8
OperationsHow can I tell if the system is already running the 64-bit kernel?

Q9
TroubleshootingEven though boot-file is correctly set, the system is still booting the wrong kernel. Why?

Q10
Additional InformationWhere can additional information on the 64-bit kernel be found?

Q1. Are there systems that only support a 64-bit kernel?


Yes, any system with a UltraSPARC IIe or III processor and later will only boot from a 64-bit kernel.



Q2. How can I tell if the currently installed Solaris 7 or greater system has the hardware and software capable of running the 64-bit kernel?


Check the hardware, OBP (Open Boot PROM) revision, and software.

Hardware


Currently, the only platforms capable of supporting the 64-bit Solaris Operating Environment are those that have an UltraSPARC processor. You can identify the processors using the psrinfo -v command. The string "sparcv9" must appear in the output to support 64-bit booting.

	# /usr/sbin/psrinfo -v
	Status of processor 0 as of: 10/30/00 17:50:17
	  Processor has been on-line since 10/12/00 19:38:18.
	  The sparcv9 processor operates at 440 MHz,
	        and has a sparcv9 floating point processor. 

Note: sparcv9 is only output from psrinfo on Solaris 7 or greater OE.

Note: If the CPU speed is 200 MHz or less, refer to question #5, "What about UltraSPARC processors of less than 200 MHz?"

OBP Revision


The only Ultra machines that have a minimum OBP revision requirement to support 64-bit boot are Ultra 1, Ultra 2, Ultra 450, and all Ultra Enterprise workstations. If the 64-bit kernel packages are installed and boot detects that the platform needs a firmware upgrade to run 64-bit, boot displays a message on the console and the 32-bit kernel is booted by default.

To determine the system type, use the uname -i command. To check the OBP revision, use the prtconf -V command. If the OBP revision is a down rev from the minimum requirement, a flash PROM update can be performed.

You can download the latest version of the indicated patch from the SunSolve Online service; see: SunSolve patches access. Flash PROM upgrade instructions are included in the patch README file.

The following table shows the minimum OBP version requirement.

Systemuname -i OutputMinimum OBP Revision for 64-Bit BootFlash PROM Update Patch #
Ultra 1 (non- Enterprise)SUNW,Ultra-13.11.1104881
Ultra 1 EnterpriseSUNW,Ultra-13.11.1104288
Ultra 2SUNW,Ultra-23.11.2104169
Ultra 450SUNW,Ultra-43.7.107106122
Ultra Enterprise ServerSUNW,Ultra-Enterprise3.2.17103346

Software


Booting the 64-bit kernel has been available since the first release of Solaris 7. The system must be running Solaris 7 release or later.

Identify the Solaris release with the uname -a command:

	/usr/bin/uname -a

Output should show 5.7 or greater.

If the hardware is 64-bit capable, a new software install will, by default, install the 64-bit packages. To check to see if the 64-bit packages have been installed, use the pkginfo command.

	/usr/bin/pkginfo | grep "64-bit"
	system      SUNWarcx       Archive Libraries (64-bit)
	system      SUNWauddx      Audio Drivers (64-bit)
	.
	.  

If no package names are returned, then only 32-bit packages are installed.



Q3. The necessary 64-bit packages are not installed. How can the 64-bit packages be installed?


If the 64-bit packages are not installed, then the supported method of installation is either by means of an initial install, or by running a Solaris upgrade and making sure the 64-bit option is selected. This is true even if you are upgrading the same version of the operating environment.

For example, if Solaris 7 11/99 is installed without the 64-bit packages, run the upgrade option from the Solaris 7 11/99 CDROM, making sure to select the 64-bit option.



Q4. Is there a minimum Software Group (Metacluster) required for 64-bit support?


Solaris 8 Update 3 (1/01) has 64-bit support bundled into the core Solaris system software through the Support Software Group (SUNWCreq).

Prior to Solaris 8 Update 3, the minimum Software Group requirement is End User Support System (SUNWCuser).



Q5. What about UltraSPARC processors of less than 200 MHz?


On systems containing 200-MHz or lower UltraSPARC I processors, the 32-bit kernel is booted by default. Configuring these systems to boot 64-bit requires an extra step. The file /platform/sun4u/boot.conf must have the following line uncommented:

	ALLOW_64BIT_KERNEL_ON_UltraSPARC_1_CPU=true

Before making this modification, read Sun's disclaimer on this modification also in the /platform/sun4u/boot.conf file.

Note: With either the OBP variable boot-file set to kernel/sparcv9/unix or with the OBP boot command line argumented with kernel/sparcv9/unix the system will boot to the 64-bit kernel regardless of the setting in boot.conf. A boot.conf file dependency will exist only when either of these options is not utilized.



Q6. How do I configure the system to boot a 64-bit kernel?


If the system hardware and software support 64-bit, the system will, by default, boot the 64-bit kernel. The OBP boot-file parameter will, by default, be set to a null value. boot-file may also be set to kernel/sparcv9/unix. Check the boot-file variable by using either the Solaris eeprom command or the OBP setenv command.

Using eeprom


Log in as root and enter:

	# /usr/sbin/eeprom  |  grep  boot-file
64-Bit

The system is configured to boot the 64-bit kernel if the output from the eeprom command is either:

	boot-file: data not available

or

	boot-file=kernel/sparcv9/unix

The boot-file does not have to be set to kernel/sparcv9/unix. A null value works.

32-Bit

The system is configured to boot a 32-bit kernel if the output from the eeprom command comes back as:

kernel/unix

Set the boot-file to either null or kernel/sparcv9/unix using either:

	/usr/sbin/eeprom  boot-file=""

or

	/usr/sbin/eeprom  boot-file="kernel/sparcv9/unix"

Using setenv


From the system's OBP OK> prompt, use the printenv command to check the boot-file parameter and if necessary use the setenv or set-default commands to set the 64-bit kernel:

	OK> printenv boot-file
	OK> setenv  boot-file  kernel/sparcv9/unix

or

	OK> set-default  boot-file



Q7. How do I configure the system to boot a 32-bit kernel?


If the Ultra machine meets the hardware and software requirements for 64-bit boot, the boot-file variable must be set to kernel/unix. If not, then the machine will boot 64-bit. The boot-file variable can be set by either the Solaris eeprom command or the OBP setenv command.

Using eeprom


Log in as root and use the eeprom command to set the boot-file parameter to the 32-bit kernel:

	# /usr/sbin/eeprom  boot-file="kernel/unix"

The next time the system is rebooted, the 32-bit kernel will load.

Using setenv


From the system's OBP OK> prompt, use the setenv command to set the boot-file parameter to the 32-bit kernel:

	OK> setenv  boot-file  kernel/unix


Q8. How can I tell if the system is already running the 64-bit kernel?


Run the following command:

       $ /usr/bin/isainfo -kv
       64-bit sparcv9 kernel modules

The 64-bit sparcv9 output indicates the system is running the 64-bit Solaris kernel.




Q9. Even though boot-file is correctly set, the system is still booting the wrong kernel. Why?


The boot-file OBP variable is not used if the OBP diag-switch? variable is set to true, or if the system has a key switch that is positioned to the diagnostic mode. Instead, the OBP diag-file variable is referenced.

Visually check the system's key switch. If it is positioned to the Diagnostic setting, then the boot-file variable is ignored and the diag-file variable is used instead. Also check the diag-switch? setting by using the eeprom command. Log in as root and enter:

	# /usr/sbin/eeprom  | grep  diag-switch?
	# /usr/sbin/eeprom  | grep  diag-file

If the eeprom output returns diag-switch?=true, then the diag-file variable is being used to boot the system.

If you have a requirement or preference to leave the key switch set to Diagnostic mode or to leave the diag-switch? variable set to true, then set the diag-file to the appropriate value. Log in as root and enter:

	# /usr/sbin/eeprom  diag-file="kernel/unix"
	# /usr/sbin/eeprom  diag-file="kernel/sparcv9/unix"

To turn Diagnostic mode off, set the key switch to the on position and also set the diag-switch? variable to false. Log in as root and enter:

	# /usr/sbin/eeprom  diag-switch?=false

There is another reason why the boot-file setting can be ignored. This happens when another argument to the boot command is used, as in the case of a reconfiguration boot (boot -r). The following are valid "multi-argument" boot options:

	ok> boot  -r  -D  kernel/unix
	ok> boot  -r  -D  kernel/sparcv9/unix


Q10. Where can additional information on 64-bit kernel be found?


The boot man page is very informative.

In addition, view Sun's online documentation at http://docs.sun.com/ by navigating to either the Solaris 7 or Solaris 8 System Administration Collections, Volume 1, and then search for 64-bit. From there you can locate the section on "The 64-bit Solaris Operating Environment."