Last modified: February 05, 2004

Solaris 9 x86 on an IBM ThinkPad T30 Laptop

Introduction

Our organization, Science & Engineering Node Services at the University at Buffalo, has recently made a move away from Sun workstations, choosing to use Dell PC systems running Red Hat Linux 9. While these systems are performing well, we have decided to continue investigating other PC-based, Unix-like, operating systems. One obvious choice was Solaris x86, given that we have many years working with this OS, and continue to support a large server infrastructure based on Sun equipment.

I decided to try installing the latest release, Solaris 9 x86 8/03, on my IBM ThinkPad T30 laptop. While those who are aware of the sometimes unusual hardware configurations in laptops might consider this an unfair test, this is exactly the reason I chose to do this. My reasoning was that if Microsoft can support this system with Windows XP, and if Sun wants people to move away from Microsoft products, their operating system should work as well, or at least adequately, on this hardware.

The results of my experiment follow. In short, I found this to be an extremely difficult and painful experience, and I am disappointed with Sun's attempt (or lack thereof) to support this product.

Initial Configuration

As stated earlier, I used my laptop, an IBM ThinkPad T30. This system contains the following basic hardware:

Microsoft Windows XP handles all of these devices well, and, from previous experience, I found that Red Hat Linux 9 handles many of them (it had problems with the wireless LAN card, and I didn't try the infrared port).

The hard drive was originally divided into two primary partitions: one for the Microsoft Windows XP operating system, and one for the IBM recovery utility. For my earlier dual-boot Windows XP/Red Hat Linux 9 configuration, I had used Partition Magic to resize and move the existing partitions. At the start of this experiment, the disk was partitioned like this:

My collegue and friend from CSE, Ken Smith, graciously loaned me a copy of the four Solaris 9 x86 8/03 CDs, and at that point I was ready to go.

Attempt Number One

I placed the Solaris 9 install CD in my DVD/CDRW drive, rebooted into the BIOS to change the boot order so that this was the first device in the list, and rebooted again to load the CD. After listening to the CD gronk for a few seconds, I was at the initial configuration screen.

The first thing that came to mind was, "Wow, this hasn't changed much from the SunOS 4 days." Compared with the installers for Windows XP and Red Hat Linux, Solaris 9's is crude, unattractive, and sometimes confusing.

It soon became clear that I was in trouble. Sun's "fdisk" utility is woefully inadequate, and can't even deal with extended partitions. As there was nothing important in there anyways (I was hoping to save E:, my transfer disk for porting things back and forth between Windows XP and Linux, but, oh well), I decided to remove this partition and reclaim the space for Solaris.

After fdisk was done, the installer asked me to let it create an x86 boot partition on this new partition, which it now referred to as disk "c0t0". No problem there. The next thing was to create a swap partition, and here's where it got confusing: It asked me if it could place the swap space at the beginning of the "disk". Did it mean the new virtual disk it had created in primary partition 3, or the physical hard disk itself? Hoping it meant the former, I pressed "y". At that point, the installer promptly quit, having encountered an error with "newfs". This is also the point where confusion turned to panic.

I rebooted the system, and, instead of the familiar "Windows XP" startup screen, I had white-on-red characters at the bottom of the screen: "Bad PBR". I wondered if the Solaris installer had indeed tried to put the swap space at the beginning of the physical disk, and wiped out the start of my Windows XP partition. Fortunately, I had made a backup the night before, but I was hoping to not have to recover my entire system.

After a bunch of failed attempts involving using a Windows 98 recovery disk to do an "FDISK /MBR", and a Windows XP recovery disk to access the partition, my co-worker and in-shop Linux expert, Jason Lasker, hit upon a solution that worked (and was rewarded with a carrot cake). I installed Red Hat Linux 9 back on to the system, and as part of the process it wrote a new Primary Boot Record (PBR) and Master Boot Record (MBR). I was then able to use grub to start up Windows XP, and determined that it was unharmed.

Some post-mortem Google searching (see the links at the bottom of this document) taught me the following two lessons:

  1. Never use Sun's fdisk utility, and
  2. Never use Sun's Install disk.

Apparently, Sun has little or no interest in having Solaris 9 co-exist with other operating systems, and their version of fdisk will rewrite the PBR in such a way that no other OS can make sense of it. Given that the standard PC hard disk layout conventions have been around for a very long time, this is awful behavior on their part. Also, the primary purpose of their install disk is to use fdisk and related tools to create the initial partitioning; this includes the x86 boot disk, which is not needed in a dual-boot system. It is better to forget that disk altogether and just boot from the first software disk.

Attempt Number Two

This time, I started by using Windows XP's disk management tool to wipe out the Linux partitions, and created a large, empty, unlabelled partition at the end of the disk, because I had read on one of the links below that if Solaris x86 saw a blank primary partition, it would try to use it. I also wiped out the IBM recovery partition, because (a) moving it using Partition Magic rendered it useless, and (b) my boss, Corky Brunskill, had already obtained copies of the recovery CDs for his T30 laptop. So, my hard drive now looked like this:

I booted from the first software CD, and went through the setup menus again. The crudeness of the setup procedure once again astounded me, not only the unattractiveness and cumbersome interface, but the fact that it could not identify my graphics card or monitor at all, and didn't even try. When I got to the disk layout phase, it could not deal with the empty partition, and tried to create its own Solaris partition, even though the disk was full. I could not convince it to use the empty partition, and soon abandoned this attempt as futile.

Attempt Number Three

It was now clear that I needed to create a Solaris partition before installing Solaris. I looked at several freeware partitioning utilities, but they were hard-to-use and involved booting into Windows 98 and so forth. I was trying to do this using the tools at hand, and didn't want to add yet another product to the mix.

Finally, an idea came to me: A Solaris partition uses the same hexadecimal partition tag, 0x82, as a Linux swap partition (another reason why it's really hard to install Linux and Solaris on the same disk). I used my Red Hat 9 installation CD to boot into "rescue" mode, and used Linux's fdisk utility to change my unused third primary partition into a Linux swap partition.

Booting once more using Solaris 9's first software CD, I found that it now recognized, and more importantly, was willing to use, the new partition. I then went through the rest of the installation process just as I would have on a Sun workstation or server, laying out slices on the partition, choosing my software packages, and so forth.

After several reboots, to install the contents of software disk 2 and such, I found I now had a working Solaris 9 x86 system.

Opinions of Solaris 9 x86

In short: Better than I expected, not as good as I had hoped.

Hardware Compatibility

The X Window server had no problems using the video card and monitor properties I had defined during the setup process. I also had no problems with the keyboard or pointing device, not that I expected I would, but you never know.

The network card was not recognized, but adding this line to "/etc/driver_aliases" worked:

iprb "pci8086,1031"

BTW, I obtained this information right from Sun's Hardware Compatibility Lists, in the laptop section, which begs the question: If Sun knows how to recognize this device, why didn't they put the entry in the file themselves?

As for the wireless card, forget it. To be fair, I haven't gotten it to work properly with Red Hat Linux 9, either. There is a non-free solution, but I am unwilling to pay $99 for the driver at this point in time.

Solaris 9 was able to automount a CD-ROM and access it, and the "eject cdrom" command worked properly. I did not try a DVD, but as Sun has historically not included support for video DVDs, I did not think it was worth trying.

The sound card was not recognized by Solaris 9. I downloaded the x86 binaries for the 1.6 beta audio drivers from this page, and, after a reboot, I was able to use "audioplay" to play some of the demo sounds. I should note that the volume up/down keys work, although a volume bar is not displayed on the screen.

I did not try the infrared port, as I do not use this. I also have not tried the modem as yet, although, being a WinModem, I doubt it will work.

Included Software

If you're used to the volume of software contained in most Linux distributions, you'll be a little disappointed here. There is little GNU software, and even their GNOME distribution is little more than a core set of packages. I was very surprised to find that it ships with Netscape 4.78 as the default version, even though 7.0 has been available from Sun for quite some time. It turns out that Netscape 7.0 is on the system, just buried where it's hard to find. I had to type "/usr/dt/appconfig/SUNWns/netscape" to get version 7 to load, and so far have not found a way to make it the system's default version of Netscape.

You will also not find Mozilla, Evolution, or other productivity tools here. Sun says they are working on their own port of Evolution, but it is not ready yet, and Ximian does not support an x86 version of Evolution for Solaris.

I understand there is a "companion" CD that has many of these programs on it, but I did not have a copy at my disposal for this evaluation.

Software Compatibility

Integrating into our existing NIS/automounter infrastructure was no problem at all, because Solaris 9 x86 acts just like the SPARC version.

If you intend to share files between a Windows XP installation and a Solaris 9 installation, you will have to create a FAT32 partition, as I did in the examples above. Solaris has no way to read or write NTFS filesystems (that I can find, anyway). I doubt that it can read Linux ext2 or ext3 filesystems, either.

As for Linux compatibility, it seems to be sort-of there. I tried running a Linux binary of the "wget" utility, and it actually executed, but failed when it tried to load a Linux-specific shared library. So, I guess there's hope. I was unable to find much documentation on this topic, so if anyone else has any pointers, I'd be grateful.

Performance

My knee-jerk observation is that, compared to other operating systems I've tried, it's slow to boot, but very fast once it's up and running. Here is a completely unscientific set of benchmarks, taken using an analog stopwatch:

TaskWindows XPSolaris 9Red Hat 9
Boot Time0:462:10n/a
Login Time0:200:02 (CDE)
0:32 (GNOME)
n/a
E-Mail0:02 (Outlook)0:02 (dtmail)n/a
Web Browser0:11 (Mozilla)0:03 (Netscape 4.78)
0:09 (Netscape 7.0)
n/a

Notes:

  1. Solaris has two 5-second timeout prompts, which are included in the boot time;
  2. The Solaris login time was for a non-networked home directory;
  3. I will add Red Hat Linux 9 times as soon as possible.

Conclusions

Setting up this system was inexcusably hard. Sun should purchase, copy, or outright steal Red Hat's install utilities. They should make an effort to following the disk layout conventions used by the rest of the PC world, and there is no reason for their character-driven interfaces to be so ugly and non-intuitive.

Their hardware support also lags way behind the Linux world, not to mention Windows XP. It's clear that they are not even trying to support anything other than basic, vanilla platforms. What I find ironic is that on their HCL web page they tell you what lines to add to the device files to support some pieces of hardware; if they know what lines to add, why not add them to the OS themselves instead of making the end-users do it?

Performance is great, and the fact that it's source code compatible with Solaris 9 SPARC is a big win. If binary compatibility with Linux can be achieved without a great deal of pain, that would be a wonderful addition.

It is clear that Sun intends Solaris 9 x86 to be run as the sole operating system on a system. This is a parochial attitude, but it may be in line with their customers' needs. I will try installing it again on a dedicated desktop system, as I still think it's a great version of Unix once it's running, but I cannot recommended it for a dual-boot or multi-boot system, nor for more esoteric hardware such as that found in laptop systems. This is too bad, because it wouldn't take a lot of work to make it a more universal solution.

Links

Here are some web pages I found useful during the above experiment, in no particular order:

Made with CSS   Valid XHTML 1.1!   Valid CSS!