16th February 2010

Solaris 10 on Asus P5Q-E

The P5Q-E + Nvidia 9800GT + Q9550 cpu handles correctly the Solaris 10 (September 2009 version) installation.

Or better said, Solaris supports almost completely the P5Q-E motherboard and the Nvidia graphic card. The only exception is the two Gigabit ethernet ports, Marvell 88E8001, and Marvell 88E8056; but its drivers are easily available. The hardware I am using is:

  • Cpu: Q9550, no overclocked (at least not at this moment).
  • Motherboard: Asus P5Q-E
  • Memory: 8Gb (4 Corsair PC2-1066).
  • Graphic card: 9800GT 512Mb (Sparkle, passive cooling).
  • Hard disk: Velociraptor 10000rpm, 300Gb
  • Cd drive: LG, Dvd +-rw.
  • Plus a hard drive rack to easily change hard disks.

The audio also works directly out of the box. I haven't tried the digital output, but I am not really interested on making this installation a media player, anyway.

My current installation, through, is not 100% perfect. I am unable to shut it down completely (well, not always); I will investigate a bit further here, as I am afraid the problem is on the LAN drivers. However, this is not a severe problem -not in my scale, anyway-, so I still consider P5Q-E a perfect target for a Solaris installation.

I use this motherboard to boot, among other operative systems, Os X. For this, I had to patch the BIOS, as explained in this post. Whether this patch has helped me to successfully install Solaris, or whether it is hindering my efforts -like on the shutdown problem-, will remain without answer, as I am not ready to repatch (unpatch?) the BIOS. However, I am pretty sure that the BIOS patch is not important at all. The BIOS settings themselves could be, however, more determinant on the installation, so please check here the settings that I have used

Preparations

Hard disk

I will use a single hard disk, with a single partition for the Solaris partition.

This is not at all mandatory: it is not a major problem to use a partition on other dis. It is, simply, that I can too easily swap hard drives using an external hot swapper, and Solaris is not that friendly to multiple partitions (after installing it in a separate primary partition, playing with the other partitions gives always a feeling of fragility)

Please note that I have also some additional security requirements that make unsuitable sharing the Solaris partition with a Windows partition.

Anyway, it you rather use a hard disk with existing OS installations, Solaris will require:

  1. a primary (and active) partition
  2. Solaris will have its own Grub install. If an existing Linux installation exists, it will not be possible to start Solaris from the existing Grub/Grub2 installation (not even considering Lilo here)

Understanding Solaris partitioning

Solaris has the normal hard disk partitioning normally used in Windows, Os X, Linux. In Linux, that is the information shown when fdisk or cfdisk are executed. Likewise, is the information provided by Os X' Disk Utility under the Partition tab.

In X systems, each disk partition can be used to mount different portions of the filesystem. Similar situation in Windows, where each disk partition can hold a filesystem.

Solaris requires the same disk partitioning. But then, on the space allocated to it, it defines a second partitioning layout, and the mount points are done on this second layout. In Solaris notation, this is called, respectively, fdisk partitions and disk slices.

Why is this relevant on the preparations? Under linux it is recommended to allocate a separate partition as swap space. This is not needed under Solaris: allocate the whole required space and then assign a disk slice in that partition as swap space.

Obtain the LAN drivers

I am not very sure that many people will use Solaris as the only home computer. Probably, there are other computers at hand to download the LAN drivers at any moment, and therefore, this step could be executed later on.

The drivers can be obtained from:

I downloaded the myk driver and stored it into a USB stick, FAT32 formatted

Installation

Solaris 10 installation

I tried installing Solaris (edition September 2009) from a USB stick, but I didn't succeed (I used several tools, including unetbootin). So I went the prescribed way, burning the Solaris iso into a dvd, and booting then from the dvd

The installation is started, and is mostly automatized. Some questions are requested, like the host name, root password, time and zones, whether to enable remote services (yes) and which packages to install (I went for full installation: entire software group plus OEM).

My hard disk had been on use previously, and it contained 4 partitions; the solaris installation tries to preserve those partitions, which, in this case, was not the desired outcome. To solve this, it is needed to start the terminal (press the right mouse button on the background to start it). In the terminal, trigger the format command, then select fdisk, delete the current partitions and create a single one, of type Solaris2, covering the whole hard disk. Then, quit the format command and then reboot

With one single partition, the installation script proposes to use the whole disk for Solaris, although the disk slice sizes didn't match my requirements. I intend to install Oracle on the root partition, and Oracle requires a nice swap size, so I decided the following disk slicing (sizes in Megabytes):

/ : 125000
swap: 8192
/export/home: 343700

This looks, on my 500Gb (466Gb when counted properly) harddisk, as:

Total disk cylinders available: 60798 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    1046 - 16981      122.08GB    (15936/0/0) 256011840
  1       swap    wu       1 -  1045        8.01GB    (1045/0/0)   16787925
  2     backup    wm       0 - 60797      465.74GB    (60798/0/0) 976719870
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7       home    wm   16982 - 60797      335.65GB    (43816/0/0) 703904040
  8       boot    wu       0 -     0        7.84MB    (1/0/0)         16065
  9 unassigned    wm       0                0         (0/0/0)             0

After this, the installation script will complete in about 35 minutes. Note that this installation, in opposition to most Linux distributions, will have create a single user, root.

Installing the myk driver

It is now the time to introduce the USB stick with the myk driver obtained before: it will appear in the desktop (in my case, as unnamed_rmdisk). Open a terminal window and do:

cd /tmp
cp /rmdisk/unnamed_rmdisk/myk-2.6.9.tar.gz .
gunzip myk-2.6.9.tar.gz 
tar xvf myk-2.6.9
cd myk-2.6.9

Note that there is a README.txt file in this directory; follow its instructions, which in summary are:

rm obj Makefile
ln -s Makefile.amd64_gcc Makefile
ln -s amd64 obj
/usr/ccs/bin/make
/usr/ccs/bin/make install
./addrv.sh
devfsadm -i myk
touch /etc/hostname.myk0

If the IP address is obtained via DHCP, do also:

touch /etc/dhcp.myk0

And now, reboot the machine.

Customize root

The information coming now is extracted from Blastwave in 5 steps, starting precisely by the last step

As said above, there is so far one single user, root. The main problem with this is -never minding the problems that this can cause into your X mind-, that the root home directory is /, so the root directory is too easily polluted. For example, there will be already a /Desktop and /Documents directories. To assign a /root home directory:

mkdir /root 
chmod 700 /root 
chown root:root /root

Now, edit /etc/passwd and edit the line for root:

root:x:0:0:Super-User:/:/sbin/sh

into

root:x:0:0:Super-User:/root:/bin/bash

(This also sets bash as the shell)

Again, reboot the machine. After rebooting, it is safe to delete /Desktop and /Documents directories.

Security updates

Now, keeping the system updated -at security level- is the first step: launch applications/utilities/update manager, register at Sun and get ready to apply updates (without a service plan number).

Additional software / packages

Firefox 3.6

Solaris 10 (5/09) is distributed with firefox 2.0.0.19. (the first firefox 2 distribution was created the 19th December 2006, and the latest, 2.0.0.20, the 18th December 2008). Updating to the latest, 3.6, makes definitely sense.

As of today, the latest distributed firefox package is 3.6rc2, available from the mozilla website. In this page, download the firefox-3.6.en-US.solaris-10-fcs-i386-pkg.bz2 file, and the associated md5sum (or whichever is the latest available version).

To check the md5sum, compare the contents of the md5sum to the output of the following command:

digest -a md5 firefox-3.6.en-US.solaris-10-fcs-i386-pkg.bz2

If the md5 sum matches, install it with:

bunzip2 firefox-3.6.en-US.solaris-10-fcs-i386-pkg.bz2
pkgadd -d firefox-3.6.en-US.solaris-10-fcs-i386-pkg

This package is installed under /opt/sfw/bin/firefox. To use it as default firefox installation, do:

cd /usr/bin
ln -sf /opt/sfw/bin/firefox /usr/bin/firefox

Java 6

Solaris 10 comes definitely with the JDK installed, but it is the previous release, JDK 5. As of today, the latest version is Java 6 update 18, obviously available for Solaris.

Download, from the Java website, both, the Solaris x86 AND Solaris x64 installations.

cd /usr/jdk
sh ~/Desktop/jdk-6u18-solaris-i586.sh
sh ~/Desktop/jdk-6u18-solaris-x64.sh
rm latest
ln -sf jdk1.6.0_18 latest
cd ..
rm java
ln -sf jdk/latest java

Please note that the last two lines with make Java 6 update 18 the default used version

Eclipse Galileo

Solaris does not include any Java IDE -well, it t includes jEdit-. Probably Netbeans would make much more sense for a Solaris platform, but I favor Eclipse. The Solaris distribution of Eclipse is not available in the general downloads page, although still distributed in the Eclipse website: download the Eclipse SDK and, to install it under /opt, do:

cd /opt
unzip ~/Desktop/eclipse-SDK-3.5-solaris-gtk-x86.zip

Blastwave

When packages are needed, the best is to default to Blastwave. The information on how to set it up is reachable in its own website. In summary:

pkgadd -d http://blastwave.network.com/csw/pkgutil_`/sbin/uname -p`.pkg 
/opt/csw/bin/pkgutil --catalog 
/opt/csw/bin/pkgutil --install gnupg textutils 
/opt/csw/bin/gpg --keyserver pgp.mit.edu --recv-keys A1999E90
/opt/csw/bin/gpg --edit-key A1999E90 

Command> Trust
Then enter 5 (I trust ultimately), and confirm it.
Command> Quit

Now, edit the file /etc/opt/csw/pkgutil.conf and uncomment the lines:

use_gpg=true 
use_md5=true

Now:

/opt/csw/bin/pkgutil --catalog

Done, now it is easy to install new packages. Even in this repository, packages are not the latest. For example, as of today (15th February 2009), eclipse is only available as 3.3.2 version, and firefox's latest is 2.0.0.18. More current packages are available in OpenCSW.

It is now convenient to add some paths to the default PATH. Edit /etc/default/login and include in PATH and SUPATH:

PATH=/opt/csw/bin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin 
DUPATH=/opt/csw/bin:/usr/sbin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin

Sudo

Sudo can now be installed via Blastwave:

/opt/csw/bin/pkgutil -i sudo

Now, edit /opt/csw/etc/sudoers and uncomment the line

%wheel ALL=(ALL) SETENV: ALL

Any user can now be sudoed if it is included in the wheel group. This group does not exist, let's create it:

groupadd wheel

It is now a good moment to create some default user, for example:

useradd -m -d /export/home/larry -s /bin/bash larry
passwd larry

[enter the new password]

This user can be included, at creation or later, in any group. To add it to the wheel group:

usermod -G wheel larry