Netinstall Solaris 8 on a Sun Ultra 1 from Raspberry Pi 3

This one was a real journey!

There are a few guides trying to explain how to perform a netinstall/netboot of Solaris 8 from linux. However, they all lacked the crucial parts of the procedure.

A few sources for this guide are:

Here is my go at a complete procedure. The goal is just to get the darn OS installed, you can install  fancy smancy packages later if you want.

First, acquire the Solaris 8 64bit iso from oracle/wherever.
They come as two zips:

You only need to extract
This will give you the following iso: sol-8-hw4-sparc-v1.iso
Put it somewhere on your RPI3.

RPI 3 Configuration

Setup the Netinstall Network

In this example, the RPI3 will have the ip on its NIC eth0.
The Ultra 1 will have the IP

edit /etc/network/interfaces and configure eth0 like this:

iface eth0 inet static

Install and Configure Software

# Install the following packages
apt-get install rarpd nfs-kernel-server bootparamd

# Start a separate terminal for more easy monitoring and run
rarpd -e -v -d eth0

# Create the directory for the installation media
mkdir -p /pub/solaris

# Mount Solaris iso
mount -o loop sol-8-hw4-sparc-v1.iso /mnt/cdrom

# Copy all the files we need for the installation
find /mnt/cdrom -depth -print | cpio -pdmu /pub/solaris

Configure NFS

Open up and edit /etc/exports and add the following


The SUN machine will be called harpocrates.

# Add harpocrates to host file on the RPI 3
echo “ harpocrates” >> /etc/hosts

Setup bootparams

Edit /etc/bootparams and add the following (make sure its all on one line):

harpocrates  root=  install= install_config= sysid_config= rootopts=:rsize=32768 boottype=:in

Configure Jumpstart

It appears that the netinstall is using a graphical dialogue for just a few questions (or at least that it what happens for me), so we need to create an answer file that jumpstart will use.
Create the jumpstart file /pub/solaris/Solaris_8/Tools/Boot/usr/sbin/install.d/install_config/harpocrates and add (adjust the disc sizes as you wish):

install_type    initial_install
system_type     standalone
cluster         SUNWCall
package         SUNWaccr        add
package         SUNWaccu        add
package         SUNWgzip add
partitioning    explicit
filesys         c0t0d0s0         512    /
filesys         c0t0d0s1        2048    /var
filesys         c0t0d0s2         all    overlap
filesys         c0t0d0s3        2048    swap
filesys         c0t0d0s4        1024    /usr
filesys         c0t0d0s5        free    /local

Edit the file /pub/solaris/Solaris_8/Tools/Boot/usr/sbin/install.d/install_config/rules.ok, we will tell it to use our jumpstart profile for the sun4u architecture:

karch sun4u                             install_begin   harpocrates     patch_finish

Edit the file /pub/solaris/Solaris_8/Tools/Boot/usr/sbin/install.d/install_config/sysidcfg adjust as you wish, however, I’m not really sure if actually used or just partially. You get to set root password at boot and the previous IP settings are kept..hmm

network_interface=le0 {hostname=harpocrates

The Important but Ugly Hack

We need to add a few lines to the startup file, otherwise you will receive error when the installers tries to transition from console to graphical environment. The error appears to be about the framebuffer device (its probably too lazy figuring out how to load the required modules on its own). The error is “/sbin/startup: /dev/fbs does not exist”.

I found the solution here.
It still spits out some errors, but it works.

Edit the file /pub/solaris/Solaris_8/Tools/Boot/sbin/startup and add the snippet below the comment field:

# Make sure all configuration necessary is completed in order
# to run the window system

# Fix  module shit
mkdir /tmp/linkmod
cp -f /usr/lib/devfsadm/linkmod/* /tmp/linkmod/
ls -l /tmp/linkmod
devfsadm -l /tmp/linkmod/

Start the installer

Now make sure all services are started/restarted after editing configs on your RPI3.

systemctl restart bootparamd
systemctl restart nfs-kernel-server

Now boot your Sun Ultra 1 into the “OK” prompt and run (notice the space before install):

boot net -v – install

Let it load for a while. When you hit “configured interface le0” it appears to freeze forever.
Just send a ping from your RPI3 to and it will magically unfreeze and continue.

So, After a few minutes the  installation GUI should pop up with a loud beep.
You get to make a few decision. After setting timezone and confirm the settings a console window shows up which will run load the jumpstart profile.

Here I had loads of problems at first attempts, mainly because I tried to merge Solaris 8 CD1 and CD2 into one directory and somehow forgot to copy the CD1 product-directory at first. Got really messy. When such things happen or your nfs export is not working out you will most likely see a message like this “There is no valid Solaris product on the media /cdrom”.
It reads the .cdtoc file in /pub/solaris/ and there it finds the location to the Product directory and making sure some specific files exists there. 

So, after some hour due to really slow disc access, you’ll hopefully have a working Solaris 8 system on your Sparc Ultra 1!

Bonus: Quirks when installing additional packages after installation

Since my goal was just to the OS installed, I had to install all extra applications I wanted afterwards.
I created a Products-directory on my RPI3 containing all the contents from “Products” directory on the RPI3, then I shared this via NFS and mounted it on my Sparc.

When installing for instance, Netscape (called NSCPcom) from the share (pkgadd -d <full product directory path> NSCPcom) , the installer failed and reporting something like “Cannot open pkgadd: ERROR: class action script did not complete sucessfully”.

This is due to permission problems, there is a check script in the installer that probably does not have permissions to read your nfs mount. You can solve this quick and dirty by copying the files somewhere locally on your Sparc and then try to install it again.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s