Boot into the 32-bit Kernel on a 64-bit Platform
Sometimes you need to boot into the 32-bit kernel on a 64-bit platform. Perhaps you want to develop and test a 32-bit application. Or perhaps you have developed a device driver for the Solaris OS. In general, Solaris device drivers must work both in 32-bit mode and in 64-bit mode.
To boot into the 32-bit kernel on a 64-bit platform, edit the GRUB menu. Either edit the file /boot/grub/menu.lst and reboot, or reboot and enter e at the grub menu.
For Solaris 10, the lines in the menu.lst file look something like this:
title Solaris 10 11/06 s10x_u3wos_10 X86 root (hd0,2,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive
Change the kernel line to this:
kernel /platform/i86pc/kernel/unix
For Solaris Express (nevada, SXDE, SXCE, OpenSolaris), the lines in the menu.lst file look something like this:
title Solaris Express Community Edition snv_79 X86 kernel$ /platform/i86pc/kernel/$ISADIR/unix module$ /platform/i86pc/$ISADIR/boot_archive
Change the kernel and module lines to this:
kernel$ /platform/i86pc/kernel/unix module$ /platform/i86pc/boot_archive
Save and reboot.
To make this change persistent across reboots, become the super user and make this change using:
eeprom boot-file="kernel/unix"
For more information on the GRUB menu, see GRUB's user interface on the GNU web site.
If you are using a 64-bit system and you are not certain whether you are currently running the 64-bit kernel or the 32-bit kernel, use the -k option of the isainfo(1) command. The -v option reports all instruction set architectures of the system. The -k option reports the instruction set architecture that is currently in use.
$ isainfo -v 64-bit amd64 applications sse4.1 ssse3 cx16 mon sse3 sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu 32-bit i386 applications sse4.1 ssse3 ahf cx16 mon sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu $ isainfo -k amd64