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