INFODOC ID: 21434
SYNOPSIS: FAQ on Booting Solaris to either the 64-bit kernel or the 32-bit kernel
DETAIL DESCRIPTION:

This InfoDoc provides a FAQ on booting Solaris to either the 64-bit kernel or the 32-bit kernel. Booting the 64-bit kernel has been available on Ultra systems with UltraSPARC(TM) processors (sun4u or greater platforms) since the first release of Solaris 7. The questions answered by this FAQ are:

Q1. 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?

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

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

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

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

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

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

Q8. What about UltraSPARC (TM) processors less than 200 MHz?

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

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

============================================================================

Q1. 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 systems that have an UltraSPARC(TM) processor. Identify the processors with the psrinfo -v command. The string sparcv9 must be included in the output to support 64-bit boot.

	# /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 operating systems.

Note: If the CPU speed is 200 MHz or less, reference the section "What about UltraSPARC(TM) processors less than 200 MHz?".

OBP revision: The Ultra 1, Ultra 2, Ultra 450 and all Ultra-Enterprise servers are the only Ultra machines that have a minimum OBP revision requirement to support 64-bit boot. 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 OBP revision, use the prtconf -V command. If the OBP revision is down rev from the minimum requirement, a flash PROM update can be performed. Download the latest version of the indicated patch from http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access. Flash PROM upgrade instructions are included in the patch README file. The following table shows the minimum OBP version requirement.

System uname -i output Minimum OBP Revision
for 64-bit boot
Flash PROM Update
Patch #
Ultra 1 (non Enterprise) SUNW,Ultra-1 3.11.1 104881
Ultra 1 Enterprise SUNW,Ultra-1 3.11.1 104288
Ultra 2 SUNW,Ultra-2 3.11.2 104169
Ultra 450 SUNW,Ultra-4 3.7.107 106122
Ultra Enterprise Server SUNW,Ultra-Enterprise 3.2.17 103346

Note: To tell the difference between an Ultra 1E and Ultra 1 (non E) reference the following InfoDoc.

19521 How do you tell the difference between an Ultra 1 and an Ultra Enterprise 1

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. Output should show 5.7 or greater.

	/usr/bin/uname -a                                                                   

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. If no package names are returned, then only 32-bit packages are installed.

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

============================================================================

Q2. 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 by an initial install or by running a Solaris upgrade and making sure the 64-bit option is selected. This is true even if upgrading the same version of the OS. Example: If Solaris 7 11/99 is installed without 64-bit, run upgrade from the Solaris 7 11/99 CDROM making sure to select the 64-bit option.

============================================================================

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

A. 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.

============================================================================

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 System

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

============================================================================

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

If the system's 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.

eeprom: Login as root and use the eeprom command:

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

If the output from the eeprom command is either:

	boot-file: data not available
	or
	boot-file=kernel/sparcv9/unix                                                                  

then the system is configured to boot the 64-bit kernel. The boot-file does not have to be set to kernel/sparcv9/unix. A null value works.

If the output from the eeprom command came back as:

	kernel/unix                                                                        

then the system is configured to boot a 32-bit kernel. Set the boot-file to either null or "kernel/sparcv9/unix"

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

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                                                                  

============================================================================

Q6. 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.

eeprom: Login 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 system reboot will boot the 32-bit kernel.

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                                                                  

============================================================================

Q7. 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 keyswitch that is positioned to the diagnostic mode. Instead the OBP diag-file variable is referenced.

Visually check the system's keyswitch. 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. Login as root.

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

If the eeprom output comes back as 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 keyswitch set to Diagnostic mode or to leave the diag-switch? variable set to true, then set the diag-file to the appropriate value. Login as root.

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

To turn Diagnostic mode off, set the keyswitch to the on position and also set the diag-switch? variable to false. Login as root.

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

There is still 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                                                                  

============================================================================

Q8. What about UltraSPARC(TM) processors less than 200 MHz?

On systems containing 200MHz 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. Only when either of these options are not utilized will there be a dependency on the boot.conf file.

============================================================================

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

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

============================================================================

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

The man page on boot is very informative.

Try online Sun documentation at http://docs.sun.com/. Navigate to the Solaris 7 or Solaris 8 System Administration Collections, Volume 1, then search for 64-bit. Find the section on The 64-bit Solaris Operating Environment.


APPLIES TO: Hardware, Hardware/Ultra Workstations, Operating Systems, Operating Systems/Solaris, Operating Systems/Solaris/Solaris 8, Operating Systems/Solaris/Solaris 7, OS Install/Boot, OS Install/Boot/OS Install, OS Install/Boot/System Boot, AFO Vertical Team Docs, AFO Vertical Team Docs/Install/Boot
ATTACHMENTS: