Cover V13, i10

Article
Figure 1
Figure 2

oct2004.tar

Solaris 10 x86 on VMware

Peter Baer Galvin

The history of the x86 releases of Solaris is long and sordid, full of mystery, promise, heartache, and resignation. However, with Solaris 10, Sun is promising full, renewed support of the x86 platform, including Intel and AMD chip support. Even though we are still a few months from the official release of Solaris 10, I wanted to test this new Sun resolve and determine whether Solaris 10 x86 is a usable, feature-rich, first-class citizen. This month's Solaris Companion discusses installing and testing S10 x86 within the VMware environment. In a subsequent column, I'll describe an install to native hardware.

Overview

To increase the difficulty of the challenge (and because I wanted to have Solaris 10 with me at all times!), I decided to use my laptop as the test system. The system is a Dell Latitude D600 replete with a 60-GB hard drive, CDRW/DVD-R drive, and 512MB of memory. The system is running Windows XP. It has a modern ATI Mobility Radeon 9000 chipset with 32MBs of graphics memory. This system is not on the current Solaris x86 hardware compatibility list (available at http://www.sun.com/bigadmin/hcl/). In the past, graphics devices have been a big challenge for Solaris 10, so I expected to spend a lot of time trying to get a Solaris GUI running in this environment.

VMware is a commercial program (http://www.vmware.com) that provides virtual machines on a host. These machines can each be installed with a guest operating system. For example, a Linux system with VMware installed could run Windows XP as a guest. This guest runs in an emulator that provides a full virtual system (including bios, memory, disk, and network devices). The guest can be installed, booted, stopped, started, suspended, resumed, snap shot-ed, and so on.

VMware provides an interface to the host's networking, so a generic network driver within the guest can access the network through the host. Likewise, it provides a "vmware" graphics device that translates all calls to the actual hardware graphics card. In theory, this should be an easier environment to run on than on a native system. For example, even though Solaris currently doesn't support wireless network devices, it can take advantage of the host's wireless networking as a guest.

VMware Installation

Installation of VMware 4.5 workstation was as simple as performing a download and running the executable. A "new machine" wizard creates a new virtual machine within VMware. The choices within the wizard are predictable for the most part:

  • Virtual machine configuration -- Typical
  • Guest operating system -- Sun Solaris, with the version set to Solaris 10 (experimental). (Solaris support by VMware is in beta test at the time of this writing.)
  • Virtual machine name "S10B58"
  • Network Type -- Use NAT
  • Disk Capacity -- 10GB

After executing this wizard, the virtual machine was ready to start. It had, by default, 256MB of memory.

Solaris x86 Installation

The next step was to download the Solaris 10 x86 build 58 CD ISO images via the Sun express for Solaris program at Sun (see the April 2004 Solaris Companion: http://www.samag.com/documents/s=9102/sam0404h/0404h.htm). In previous builds, there was an installation disk and two "software" disks. With Build 58, there are now three software disks and no longer a separate installation CD. Sun has been working on the installation method and no longer needs to separate out the GUI and command-line installs. Writing the ISO images to CD took about 20 minutes. Placing the first disk in the CD drive and clicking on "Start this VM" brought up, in the VMware environment, an emulated system boot from the CD.

To use a VM within VMware once one is started is just a matter of clicking the mouse within the VM window. Now the keyboard and mouse are owned by the VM. Simply holding the CTRL and ALT keys simultaneously sends control back to the host operating system. The CTRL-ALT-ENTER combination makes the VM use the full screen and look like the guest OS is the host OS. This is what I did throughout the install and testing.

I received a bus enumeration warning, but it seemed non-fatal so I continued. I selected my language choice. Then the Solaris device identification program found all of the hardware but did not recognize the graphics card. Pressing F2 to continue brought on the boot-from screen, where I selected "CD". To tempt fate, I selected option #1 of the installation choices -- "Solaris interactive". The other options are "jumpstart" and "Solaris interactive -- text only installer". I presumed that the GUI install would not run properly, and I was not pleasantly surprised, as we shall see.

I selected option #1 for a Solaris interactive installation. The "kdmconfig" tool then ran automatically to configure the GUI devices. I first selected the ATI RADEON (32-64MB) video device. Because there was no monitor type available that matched my LCD with 1400 x 1050 resolution, I tried the Multifrequency 76kHz option for up to 1600x1200 display resolution. This is really all guesswork unless your configuration is exactly matched by the provided choices. The next choices were a 14" screen and 1280x1024 resolution with 16-million colors at 70Hz refresh rate.

When I chose to continue and test, the test said it tried to find an ATI or RADEON device and failed. Unfortunately, kdmconfig exited and next came the network configuration screen. I reset the VM and started the installation again, making various graphics choices to see whether any would work. Unfortunately, none did. I decided to restart with a text-based install by rebooting the virtual machine and using the same procedure as above but selecting the F4 option ("bypass") on the install choices screen.

(Sun is revising the X server options of Solaris 10, and thus more supported graphics devices should appear in Solaris 10 as it nears first customer shipment.)

The remainder of the standard installation went normally. I chose DHCP networking, no Kerberos, no name service, my time zone, and so on. For the disk fdisk choices, the disk has no partitions, so it needs to be partitioned. This file system is actually a file within Windows XP. I chose the "use entire disk for Solaris and boot partitions (10239MB)" option. For partitions, I chose just root and swap, and put most of the free space into "/" to allow for upgrades and tool installations. Two disk swaps and about 30 minutes later, my virtual machine was running Solaris 10 in text mode, as shown in Figure 1.

A Graphic Fight

Then it was on to the main event -- trying to get an X server running in the virtual machine. Fortunately, I had a lot of help in my corner. Between Internet resources, some experimentation, and some newfound friends who had already won this fight, the victory was mine!

The first step was to remove the current X server, as it conflicts with the XFree86 server that provides a VMware graphics option:

# pkgrm SUNWxf86
There is a Solaris XFree86 video driver and porting kit binary already built with recent graphics drivers, including VMware. It's available for download from http://www.tools.de/solaris/xf86/. Following the instructions there, I downloaded the binary package xf86_4_4*.bz2. Because the easiest way to get files into the virtual machine at this stage is via CDROM, I also downloaded the Solaris 10 documentation from http://docs.sun.com and added a few other files I knew I would need, such as StarOffice and wrote them to CDROM.

After a volcheck to mount the CDROM and after copying the files to /usr/tmp, these commands unpacked the package and installed it:

# bunzip2 xf86-4.4.0*.bz2
# pkgadd -d xf86-4.4 SUNWxf86u SUNWxf86r
The last step was to run kdmconfig manually and use the new X server. Kdmconfig now allowed the choice of the "XF86-VMWARE" video device. Again I chose the "multifrequency 76kHz" monitor, 14" screen, and 1280x1024 with 16-million colors. This time, the test screen appears showing that the X server is functional. A reboot of the virtual machines brought a GUI login, and choosing "Gnome 2.0" as my GUI brought the screen shown in Figure 2.

Some Last Steps

With this basic functionality, it was all fun and games. Networking was already up and running, and Mozilla was available in /usr/sfw/bin, but /usr/sfw was not fully populated. A download of the Solaris 9 Companion Software CD from http://wwws.sun.com/software/solaris/freeware quickly gave me a complete tool set (between /usr/sfw/bin and /opt/sfw/bin). Overall, performance and usability is quite good. However, one of my favorite programs -- prtdiag -- isn't available on the x86 architecture.

If I wanted to try some other video resolutions within VMware, information and configuration files available at http://www.bolthole.com/solaris/vesa1400x1050.html, would help me get the job done.

Conclusions

Solaris 10 x86 is indeed very real and very functional. With VMware, it performs well and brings all of the new features that Sun has been proudly promoting. Although getting graphics working takes a bit of work in the VMware environment, the work is well rewarded by the functional end result.

Acknowledgements and Resources

Special thanks to Dan Price from Sun, Juergen Keil, and Scott Omar Burch for advice and guidance on getting the graphics challenges resolved.

For up-to-date information on Solaris x86, see:

http://www.solaris-x86.org/
http://sun.drydog.com
http://multiboot.solaris-x86.org/
http://www.bolthole.com/solaris/x86-laptops.html
http://www.sun.com/bigadmin/collections/solarisx86.html
http://www.tools.de/solaris/
http://homepage2.nifty.com/mrym3/taiyodo/eng/
http://groups.yahoo.com/group/solarisx86/
http://forum.sun.com/forum.jsp?forum=11
news://alt.solaris.x86
http://wwws.sun.com/software/solaris/x86/
http://members.at.infoseek.co.jp/chitchat/vmware/soltips.html
A great new resource to Sun users is now available. There is no longer a gag order on Sun employees, and they are saying some very interesting things at httpd:\\blogs.sun.com.

Peter Baer Galvin (http://www.petergalvin.info) is the Chief Technologist for Corporate Technologies (www.cptech.com), a premier systems integrator and VAR. Before that, Peter was the systems manager for Brown University's Computer Science Department. He has written articles for Byte and other magazines, and previously wrote Pete's Wicked World, the security column, and Pete's Super Systems, the systems management column for Unix Insider (http://www.unixinsider.com). Peter is coauthor of the Operating Systems Concepts and Applied Operating Systems Concepts textbooks. As a consultant and trainer, Peter has taught tutorials and given talks on security and systems administration worldwide.