This is an old revision of the document!
Network install of Solaris/Sparc
I have a Sparc based system (a MicroSparc II on a VME card) that is without a CDROM drive and has to be able to install SunOS or Solaris over the network (it has a local SCSI-2 disk and a fast Ethernet SBUS card).
I found some useful background information here on how to support Solaris network installations using just a Linux host:
http://hintshop.ludvig.co.nz/show/solaris-jumpstart-linux-server/
http://www.cs.toronto.edu/~cvs/unix/Solaris-Linux-NetInstall.html
http://www.znark.com/tech/solarisinstall.html
Detailed Instructions
rarp
The Sparc machine doesn't do full DHCP from OpenBoot to acquire an IP address, netmask, gateway, DNS etc; it only does rarp, which needs *rarpd* running on our Linux host. We then have to add the ethernet address of our Sparc machine to /etc/ethers on the Linux host, as well as add an appropriate IP/hostname entry to /etc/hosts. For example:
echo "00:01:02:03:04:ef sparky" >> /etc/ethers echo "192.168.1.15 sparky" >> /etc/hosts
Run the rarp daemon in verbose mode (rarpd -v) and monitor syslog/messages for queries from the Sparc machine as it powers on. You should see a request for “00:01:02:03:04:ef” being answered by “192.168.1.15”.
The next step is supplying a kernel image to the booting Sparc machine.
tftp
As the machine starts to boot it will make a request via TFTP, to the same server that it received a rarp request from, for a kernel image.
The name of the kernel image will depend on the IP address that you have assigned to the Sparc machine. Unfortunately it's in hexadecimal format. In the case of assigning 192.168.1.15, as above, you can calculate the filename as follows:
$ printf "%02X%02X%02X%02X" 192 168 1 15 $ C0A8010F
A boot kernel then needs to be copied from your relevant Solaris installation cd images (Solaris 2.6 in my case) and dropped in to the root of the TFTP server.
So I had to do this:
cp /mnt/iso/Solaris_2.6/Tools/Boot/usr/platform/sun4m/lib/fs/nfs/inetboot /export/tftproot/C0A8010F.SUN4M
Note that you need to copy the correct architecture kernel image for your hardware - in my case the MicroSparc II is a sun4m platform. Note also that the inetboot kernel on Solaris 2.6 is stored in a different path on the CD compared to later versions; Solaris 7, 8 and higher have it here:
/mnt/iso/Solaris_[NUMBER]/Tools/Boot/platform/sun4m/inetboot
Reboot the Sparc machine and you should see it load the new kernel image from your tftp server.
Now we need to tell the booting kernel where to find the root filesystem and where to load the installation CD contents from…
bootparams
During install, the Solaris kernel sends out a request to the bootparam daemon on the Linux host to request the correct parameters for the installer (remember that rarp only does basic IP assignment and tftp then only sends a kernel image - we still need to supply any needed kernel boot parameters in the same way we would do for Linux using dnsmasq/PXE).
Install bootparamd on your Linux host and add an entry to /etc/bootparams:
sparky root=linuxbox:/export/tftp/solaris/Solaris_2.6/Tools/Boot \ install=linuxbox:/export/tftp/ \ rootopts=:rsize=32768 \ boottype=:in
NFS
TBC
More thoughts
Using solid state drives on Solaris/Sparc - aka compact flash or SD.
Solaris needs drive geometry setting if you don't have a SCSI drive that is detected by the installer (which, if you don't have an original Sun branded SCSI drive, it won't be). Here are some common compact flash/SD card sizes in CHS format:
Capacity | Cylinders | Heads | Sectors |
---|---|---|---|
512MB | 1024 | 16 | 63 |
1,024MB | 1,986 | 16 | 63 |
2,048MB | 3,970 | 16 | 63 |
4,096MB | 7,964 | 16 | 63 |
8,192MB | 31,769 | 16 | 63 |
16,384MB | 63,538 | 16 | 63 |
These will need to be entered during the installer so that it can recognise the drive.