Handbook:MIPS/Blocks/HWReqs

Also check the MIPS Hardware Requirements document available on the Gentoo wiki.

Installation notes
On many architectures, the processor has gone through several generations, each newer generation builds on the foundation of the previous one. MIPS is no exception. There are several generations of CPU covered under the MIPS architecture. In order to choose the right netboot image stage tarball and CFLAGS appropriately, it is necessary to be aware of which family the system's CPU belongs in. These families are referred to as the Instruction Set Architecture.

Also, another important concept to grasp is the concept of endianness. Endianness refers to the way that a CPU reads words from main memory. A word can be read as either big endian (most significant byte first), or little endian (least significant byte first). Intel x86 machines are generally Little endian, whilst Apple and Sparc machines are Big Endian. On MIPS, they can be either. To separate them apart, we append el to the architecture name to denote little endian.

For those willing to learn more about ISAs, the following websites may be of assistance.
 * Linux/MIPS Website: MIPS ISA
 * Linux/MIPS Website: Endianness
 * Linux/MIPS Website: Processors
 * Wikipedia: Instruction Set

Netbooting overview
In this section, we'll cover what is needed to successfully network boot a Silicon Graphics workstation or Cobalt Server appliance. This is just a brief guide, it is not intended to be thorough, for more information, it is recommended to read the Diskless HOWTO.

Depending on the machine, there is a certain amount of hardware that is needed in order to successfully netboot and install Linux.


 * In General:
 * DHCP/BOAMD Alchemy series, 4kc, 4km, many others... There are a few revisions in the MIPS32 ISA.OTP server (ISC DHCPd recommended)
 * Patience -- and lots of it
 * For Silicon Graphics workstations:
 * TFTP server (tftp-hpa recommended)
 * When the serial console needs to be used:
 * MiniDIN8 --> RS-232 serial cable (only needed for IP22 and IP28 systems)
 * Null-modem cable
 * VT100 or ANSI compatible terminal capable of 9600 baud
 * For Cobalt Servers (NOT the original Qube):
 * NFS server
 * Null-modem cable
 * VT100 or ANSI compatible terminal capable of 115200 baud

Setting up TFTP and DHCP
As mentioned earlier -- this is not a complete guide, this is a bare-bones config that will just get things rolling. Either use this when starting a setup from scratch, or use the suggestions to amend an existing setup to support netbooting.

It is worth noting that the servers used need not be running Gentoo Linux, they could very well be using FreeBSD or any Unix-like platform. However, this guide will assume to be using Gentoo Linux. If desired, it is also possible to run TFTP/NFS on a separate machine to the DHCP server.

First Step -- configuring DHCP. In order for the ISC DHCP daemon to respond to BOOTP requests (as required by the SGI & Cobalt BOOTROM) first enable dynamic BOOTP on the address range in use; then set up an entry for each client with pointers to the boot image.

Once installed, create the. Here's a bare-bones config to get started.

With that setup, one can then add any number of clients within the subnet clause. We will cover what to put in later in this guide.

Next Step -- Setting up TFTP server. It is recommended to use tftp-hpa as it is the only TFTP daemon known to work correctly. Proceed by installing it as shown below.

This will create to store the netboot images. Move this elsewhere if necessary. For the purposes of this guide, it is assumed that it is kept in the default location.

Downloading a netboot image
Depending on the system the installation is meant for, there are several possible images available for download. These are all labelled according to the system type and CPU they are compiled for. The machine types are as follows:

Also in the filename, r4k refers to R4000-series processors, r5k for R5000, rm5k for the RM5200 and r10k for R10000. The images are available on the Gentoo mirrors.

DHCP configuration for an SGI client
After downloading the file, place the decompressed image file in the directory. (Use bzip2 -d to decompress) Then edit the file and add the appropriate entry for the SGI client.

Kernel options
We're almost done, but there's a couple of little tweaks still to be done. Pull up a console with root privileges.

Disable "Path Maximum Transfer Unit", otherwise SGI Prom won't find the kernel:

Set the port range usable by the SGI PROM:

This should be sufficient to allow the Linux server to play nice with SGI's PROM.

Starting the deamons
At this point, start the daemons.

If nothing went wrong in that last step then everything is all set to power on the workstation and proceed with the guide. If the DHCP server isn't firing up for whatever reason, try running 'dhcpd' on the command line and see what it says -- if all is well, it should just fork into the background, otherwise it will display 'exiting.' just below its complaint.

An easy way to verify if the tftp daemon is running is to type the following command and confirm the output:

Netbooting the SGI station
Okay, everything is set, DHCP is running as is TFTP. Now it is time to fire up the SGI machine. Power the unit on -- when "Running power-on diagnostics" comes on the screen, either click "Stop For Maintenance" or press. A menu similar to the following will show up.

Type in to enter the command monitor. On the monitor, start the BootP process:

From this point, the machine should start downloading the image, then, roughly 20 seconds later, start booting Linux. If all is well, a busybox ash shell will be started as shown below and the installation of Gentoo Linux can continue.

Troubleshooting
If the machine is being stubborn and refusing to download its image, it can be one of two things,
 * 1) the instructions were not followed correctly, or
 * 2) it needs a little gentle persuasion (No, put that sledge hammer down!)

Here's a list of things to check:
 * dhcpd is giving the SGI Machine an IP Address. There should be some messages about a BOOTP request in the system logs. tcpdump is also useful here.
 * Permissions are set properly in the tftp folder (typically -- should be world readable)
 * Check system logs to see what the tftp server is reporting (errors perhaps)

If everything on the server is checked, and timeouts or other errors occur on the SGI machine, try typing this into the console.

Overview of the netboot procedure
Unlike the SGI machines, Cobalt servers use NFS to transfer their kernel for booting. Boot the machine by holding down the left & right arrow buttons whilst powering the unit on. The machine will then attempt to obtain an IP number via BOOTP, mount the directory from the server via NFS, then try to download and boot the file vmlinux_raq-2800.gz (depending on the model) which it assumes to be a standard ELF binary.

Downloading a Cobalt netboot image
Inside http://distfiles.gentoo.org/experimental/mips/historical/netboot/cobalt/ the necessary boot images for getting a Cobalt up and running are made available. The files will have the name nfsroot-KERNEL-COLO-DATE-cobalt.tar -- select the most recent one and unpack it to / as shown below:

NFS server configuration
Since this machine uses NFS to download its image, it is necessary to export on the server. Install the package:

Once that is done, place the following in the file.

Now, once that is done, start the NFS server:

If the NFS server was already running at the time, tell it to take another look at its exports file using exportfs.

DHCP configuration for a Cobalt machine
Now, the DHCP side of things is relatively straightforward. Add the following to the file.

Starting daemons
Now start the daemons. Enter the following:

If nothing went wrong in that last step all should be set to power on the workstation and proceed with the guide. If the DHCP server isn't firing up for whatever reason, try running 'dhcpd' on the command line and see what it tells -- if all is well, it should just fork into the background, otherwise it will show 'exiting.' just below its complaint.

Netbooting the Cobalt machine
Now it is time to fire up the Cobalt machine. Hook up the null modem cable, and set the serial terminal to use 115200 baud, 8 bits, no parity, 1 stop bit, VT100 emulation. Once that is done, hold down the left & right arrow buttons whilst powering the unit on.

The back panel should display "Net Booting", and some network activity should be visible, closely followed by CoLo kicking in. On the rear panel, scroll down the menu until the "Network (NFS)" option then press. Notice that the machine starts booting on the serial console.

A busybox ash shell will pop up as shown below, from which the Gentoo Linux installation can continue.

Troubleshooting
If the machine is being stubborn and refusing to download its image, it can be one of two things,
 * 1) the instructions have not been followed correctly, or
 * 2) it needs a little gentle persuasion. (No, put that sledge hammer down!)

Here's a list of things to check:
 * dhcpd is giving the Cobalt Machine an IP Address. Notice messages about a BOOTP request in the system logs. tcpdump is also useful here.
 * Permissions are set properly in the folder. (should be world readable)
 * Make sure the NFS server is running and exporting the directory. Check this using   on the server.