**********************************************************************
*                                                                    *
*  Installation instructions for Slackware on the SGI 320 and 540    *
*  (and any other SGI Visual Workstations that boot with ARC).       *
*                                                                    *
*  Prepared by Patrick J. Volkerding <volkerdi@slackware.com>        *
*                                                                    *
*  SGI and Visual Workstations are trademarks of SGI, Inc.  This     *
*  is an unofficial Slackware installation document prepared by      *
*  Slackware, Inc., and is not an SGI product nor is it supported    *
*  by SGI, Inc.                                                      *
*                                                                    *
**********************************************************************


WHAT YOU WILL NEED
------------------

To start the installation process, you'll need a copy of Slackware on
CD-ROM with the /sgiboot/ directory on it (or at least the arclx.exe
and vmlinux files on a CD), and a copy of the color.gz rootdisk on
floppy disk.  To make the color.gz rootdisk, see the instructions in
the /rootdsks/ directory.


BOOTING THE INSTALLATION DISK
-----------------------------

The SGI Visual Workstation cannot "boot" a CD or floppy in the same
way as a standard PC, and LILO will not work.  Fortunately, SGI has helped
out with a small boot loader program "arclx.exe" which works from within
the SGI boot menu built into the system's firmware to allow you to boot a
Linux kernel.  Here's how to use it to boot the installation disk:

-   Put the Slackware CD into the CD-ROM drive, and the color.gz floppy
    into the floppy drive, and start the system.

-   Get into the machine's "welcome" screen.  If the machine has no OS
    you might end up at this automatically, otherwise watch for a dialog
    box that says "Press ESC to stop system boot." and press escape when you
    see it.

-  Go into the "Startup Settings" menu, and set up an entry for
   "Linux install".  To do this, hit the "New" button, and fill in thesei
   values:

   Load Identifier = Linux Install
   OSLoader = \sgiboot\arclx.exe
   OSLoad Filename = /sgiboot\vmlinux
   OSLoad Partition = CDROM
   System Partition = CDROM
   OSLoad Options = load_ramdisk=1 ramdisk_size=6000 root=/dev/fd0 rw

   Note the strange use of '/' and '\' -- you have to get those right
   or it won't work.  Took me about forever to figure that one out. :)

   Now hit the "Default" button, then "Save & Exit".

-  Now you can start the installer with the "Start System" button.
   Hit enter to load the installation floppy when prompted, and then log into
   the installation disk as "root".


PARTITIONING THE HARD DRIVE
---------------------------

Now you'll need to partition the hard drive to accept Linux.  First, use
fdisk or cfdisk to remove any existing partitions.  (NOTE: I've never had NT
around for testing, so if you're trying to make Slackware coexist with NT,
you're somewhat on your own... I'd imagine you'd be fine setting up Linux
in existing freespace, though.  Linux shouldn't mess with NT in any way on
the SGI since the usual blunder of installing LILO wrong shouldn't apply :)

If your hard drive is IDE, partition /dev/hda.  For SCSI, use /dev/sda.

You'll probably want at least these three partitions (this is what I'd
recommend anyway):

1.  FAT partition, 32MB.  This will be to store a copy of the boot loader
    (arclx.exe) and the kernel (vmlinux), so that eventually you'll be able
    to set up the machine to boot directly from the hard drive without a CD.
    Make the partition at the beginning of free space, and tag it type 06.

2.  Linux swap partition, 256MB.  This should probably at least match the
    size of the RAM in the machine, and maybe more if you'll be doing
    memory-intensive tasks such as rendering.  Make this the second primary
    partition, and tag it type 82.

3.  The root Linux partition.  Make this partition number three, as large
    as the drive has room for.  It should be type 83 by default.

Save your changes using "w" (in fdisk) or "Write" (in cfdisk), and quit the
cfdisk program if neccessary.


RUNNING THE INSTALLATION PROGRAM
--------------------------------

To start the installation program, type "setup".

Many of you have done this part a million times already, but I'll go through
the basic procedure here for a full installation.

Start off with the "ADDSWAP" menu choice.  Your swap partition should be
detected -- follow the defaults to format and activate the swap space.  Then
you'll move on to the TARGET section.  Again, follow the defaults to format
and mount the root partition (quick format, 4096 bytes per inode), and then
continue with setup.

Select "NO" to setting up the FAT/HPFS partition(s).  Since the small FAT
boot partition is not yet formatted, you don't want to have Linux trying to
mount it.  We'll get to that later.

Moving on to the SOURCE section... autoscan for the Slackware CD-ROM.
(Experts may venture off the marked trail here if they so desire)  Use the 
"slakware" (normal) installation type.

Next is the SELECT section.  The default choices here should be just fine --
since only the framebuffer X server works on the SGI 320 and 540 you won't
need the XD series.  So, hit enter taking the defaults.

The next part is INSTALL, where the packages are installed.  Go with the
"full" installation mode here.  You'll see various description pages fly by
as all the packages are installed in a few minutes, and then you'll go on to
the CONFIGURE section.

Here's what you'll need to do at each of the post-install menus:

  menu title                       do this
  ----------                       -------
  INSTALL LINUX KERNEL             skip
  MAKE BOOTDISK                    continue
  MODEM CONFIGURATION              if you have a modem, set it up
  CDROM DEVICE DETECTED            NO  (up to you, though)
  SCREEN FONT CONFIGURATION        NO  (it's probably best to wait until later)
  INSTALL LILO                     skip
  CONFIGURE NETWORK                YES (and then set up your network)
  MOUSE CONFIGURATION              ps2  (we'll rig this to work later)
  GPM CONFIGURATION                NO
  SENDMAIL CONFIGURATION           I like "MAPSRBL+", but that's up to you.
  HARDWARE CLOCK                   NO  (this won't matter anyway, since clock
                                   configuration is skipped on the SGI, as
                                   hwclock seems to be too PC specific)
  TIMEZONE CONFIGURATION           Select your timezone.
  SELECT WINDOW MANAGER FOR X      Hit ENTER to accept KDE (the default), or
                                   pick something else if you like it better.
  WARNING: NO ROOT PASSWORD        YES  (and set a root password)
  SETUP COMPLETE                   OK
  Slackware Linux Setup            EXIT

This will put you back at the # prompt.  Next, unmount the partition you've
just installed to:

umount -a

Expect a couple harmless errors from that one. :)

Then reboot the machine using the reset button.


REBOOTING THE SYSTEM
--------------------

After rebooting the system, you'll want to change a few things in the "Startup
Settings" menu, so watch for the "Press ESC to stop system boot." and press
escape when you see it, and then enter the "Startup Settings". 

Now you'll want to set up an entry to boot the newly installed system with the
kernel and loader on the CDROM.

   To do this, hit the "New" button, and fill in these values:

   Load Identifier = Slackware
   OSLoader = \sgiboot\arclx.exe
   OSLoad Filename = /sgiboot\vmlinux
   OSLoad Partition = CDROM
   System Partition = CDROM
   OSLoad Options = ro root=/dev/hda3 mem=256m gfxmem=8m

   (this example is for a machine with 256MB of RAM... if you don't have 256MB,
   then use the correct amount instead.  if you don't use a mem= at all, the
   kernel will default to 128MB.  The gfxmem=8m is the amount of RAM to use for
   the graphic framebuffer device.  Setting it to 8MB allowed the use of
   higher color depths, but how to get better than 800x600 resolution out of it
   is still a mystery to me)

   Now hit the "Default" button, then "Save & Exit".

Hit the "Start System" button to boot the installed system, and log in as root.
We still have a few more things to clean up before we're done.


BOOT CONFIGURATION
------------------

Since you're not going to want to keep that CD in the CDROM drive forever, here's
how to move the kernel onto the hard drive.  First, mount the CD:

mount /dev/cdrom /cdrom

Then, you'll need to format the FAT partition.  You can use "fdisk -l" to take
another look at the partition list before you do this.  In the partitioning
example above, the FAT partition was to be the first partition on an IDE hard
drive, which would be /dev/hda1. (If you use SCSI, the partition is /dev/sda1)
To format this partition with the FAT filesystem, use this command:

mkdosfs /dev/hda1

mount the new partition:

mount /dev/hda1 /mnt

and, copy the loader and kernel to it:

cd /cdrom/sgiboot
cp -a arclx.exe vmlinux /mnt

Reboot the machine with this command:

reboot

After rebooting the system, you'll want to change a few things in the "Startup
Settings" menu, so watch for the "Press ESC to stop system boot." and press
escape when you see it, and then enter the "Startup Settings".

Next, we have to adjust the "Slackware" boot menu entry to boot from the
hard drive, instead of the CDROM.  

   To do this, you'll need to use these entries:

   Load Identifier = Slackware
   OSLoader = \arclx.exe
   OSLoad Filename = /vmlinux
   OSLoad Partition = IDE 0 Disk 0 Partition 1
   System Partition = IDE 0 Disk 0 Partition 1
   OSLoad Options = ro root=/dev/hda3 mem=256m gfxmem=8m

   Now hit the "Default" button, then "Save & Exit".

Remove the CDROM and floppy from the machine, hit the "Start System" button
to boot from the hard drive, and log in as root.


MOUSE CONFIGURATION
-------------------

The SGI-enabled Linux 2.2.10 kernel provides a USB mouse driver that emulates the
PS/2 mouse.  The simplest way to get applications to use this is to make a
symlink to the usual location for the PS/2 mouse driver, like this:

cd /dev
rm psaux
ln -sf oldusbmouse psaux

That should be enough to get X going with "startx".


THINGS I WISH
-------------

That there was a way to increase the resolution of the framebuffer, or (even
more ideally) that there was native XFree86 support.

That I could get a newer kernel than 2.2.10 to work... this was the last kernel
for which SGI provided a patch.  I've ported the patch to 2.2.17 and gotten it
to compile, but the kernel won't boot.  All the required drivers come with
2.2.18, but again, the kernel compiles but won't boot.  2.4.0 also claims to
support the SGI Visual Workstation, but those parts of the kernel don't compile.
I'd sure like to hear from anyone with source for a newer kernel that works.


THANKS
------

...to Digital Domain (www.digitaldomain.com) for loaning me an SGI Visual
Workstation so I could enjoy all of its quirks. :)

Have fun!

-- Patrick J. Volkerding <volkerdi@slackware.com>
   08-Jan-2001

