<!-- $Id: PlumpOS.sgml,v 1.1.1.1 2008/01/30 19:34:37 sdog Exp $ -->
<CHAPTER id="PlumpOS">
<TITLE>PlumpOS</TITLE>

<SECT1><TITLE>What Plump/OS is</TITLE>

<PARA>
PlumpOS is a CD-based GNU/Linux/openMosix mini-distribution designed
to allow users to quickly, or temporarily, add nodes to an openMosix
cluster; as I write this in march 2003 the version (release 6.9 RC1)
is a 16.7M ISO download.
</PARA>

<PARA>
This chapter is a quick hack up by Peter Willis of a very similar
chapter contributed by Jean-David Marrow (who is the author of
Clump/OS and inspirer of PlumpOS - props to Jean-David for his fine
work on the departed Clump/OS).
</PARA>

</SECT1>

<SECT1><TITLE>How does it work?</TITLE> 

<PARA>
First of all, set up your machine's BIOS in order to make it boot from
CD. Check your motherboard's manual to see how to set up this.  Upon
booting up you will receive a prompt to boot PlumpOS using a specific
kernel; several ones have been provided for you but, you also have the
option of providing your own kernel + modules. This will be explained
later in the ``Getting Started'' section. The boot menu should tell
you all the kernels available for you to use; simply type the name of
one (and optionally some kernel arguments) and press return/enter.
</PARA>

<PARA>
At boot-time, PlumpOS will auto-probe for network cards and, if any
gets detected, it'll try and configure them via DHCP. If successful,
it will fire up omdiscd on each interface a DHCP lease is received
on. Currently this has only been tested in PCs with 1 network card so
YMMV.
</para>

<PARA>
It works for myself, but may not work for you; if you experience
difficulties, please email me with as much information about your
system as possible -- after you have investigated the problem. (Check
the sourceforge homepage for PlumpOS's mailing list, sign up and post
your question with as much detailed information as possible. The
openMosix-general and openMosix-devel lists are NOT for PlumpOS
problems, they are for openMosix-specific problems, and if you can't
tell the difference just send it to the PlumpOS list or my contact
email).
</PARA>

</SECT1>


<SECT1><TITLE>Requirements</TITLE>

<PARA>
As the purpose of PlumpOS is to add nodes to a cluster, it is assumed
that you already have a running openMosix cluster -- or perhaps only a
single openMosix node -- from which you will be initiating jobs. All
machines in the cluster must conform to the following requirements:
</PARA>

<itemizedlist>

<listitem>
<para>
PlumpOS Machine(s) 586+ CPU
</para>
</listitem>

<listitem>
<para>
bootable CD-ROM drive
</para>
</listitem>

<listitem>
<para>
Network Interface Card
</para>
</listitem>

<listitem>
<para>
Between 32M and 128M of RAM. Because of some oddities in the openMosix
kernels at the time of this writing, simply passing the size of the
ramdisk is not working so one has to actually use a ramdisk pre-made
for a specific size. There should be several ramdisks avaliable at
PlumpOS mirrors which can be placed in the disks' root directory on
the actual cdrom ISO (or rootdisk/disks/ if you're inside the PlumpOS
package directory).
</para>
</listitem>

<listitem>
<para>
Master Machine(s) GNU/Linux/openMosix kernel (same version as all the
PlumpOS kernel you are booting on the Child/Slave PlumpOS Machine(s))
</para>
</listitem>

<listitem>
<para>
Network Environment Running DHCP server (if you don't, or won't, run
DHCP, you can still manually configure your system: simply go to each
PlumpOS machine and enter in your desired configuration information
with the supplied networking tools. Using DHCP is highly recommended
however, and will greatly simplify your life in the long run.
</para>
</listitem>
</itemizedlist>

<PARA>
The following network modules are present in most if not all of the
supplied kernels' modules tarball (in
/kernels/KERNELNAME/modules.tgz), although not all support
auto-probing; if you don't see support for your card in this list,
then PlumpOS will not work for you.
</PARA>

<PARA>
<EMPHASIS>
3c501.o, 3c503.o, 3c505.o, 3c507.o, 3c509.o, 3c515.o, 3c59x.o,
8139cp.o, 8139too.o, 82596.o, ac3200.o, acenic.o, aironet4500_card.o,
aironet4500_core.o, aironet4500_proc.o, arlan-proc.o, arlan.o,
at1700.o, bsd_comp.o, cs89x0.o, de4x5.o, depca.o, dgrs.o, dl2k.o,
dmfe.o, dummy.o, e100/e100.o, e1000/e1000.o, e2100.o, eepro.o,
eepro100.o, eexpress.o, epic100.o, eth16i.o, ewrk3.o, fealnx.o,
hamachi.o, hp-plus.o, hp.o, hp100.o, lance.o, lp486e.o, mii.o,
natsemi.o, ne.o, ne2k-pci.o, ni5010.o, ni52.o, ni65.o, ns83820.o,
pcmcia, pcnet32.o, ppp_async.o, ppp_deflate.o, ppp_generic.o,
ppp_synctty.o, pppoe.o, pppox.o, sis900.o, sk98lin/sk98lin.o, slhc.o,
smc-ultra.o, smc9194.o, starfire.o, strip.o, sundance.o, sungem.o,
sunhme.o, tc35815.o, tg3.o, tlan.o, tokenring/{3c359.o abyss.o ibmtr.o
lanstreamer.o olympic.o smctr.o tms380tr.o tmsisa.o tmspci.o},
tulip/tulip.o, via-rhine.o, wavelan.o, wd.o, winbond-840.o,
wireless/{airo.o airo_cs.o hermes.o orinoco.o orinoco_cs.o
orinoco_pci.o orinoco_plx.o}, yellowfin.o </EMPHASIS>
</PARA>

<PARA>
Please also note that PlumpOS may not work on a laptop: it definitely
doesn't support PCMCIA cards (yet), and will probably not configure
openMosix properly if your machine contains multiple connected
Ethernet adapters.  This is a temporary limitation of the
configuration scripts, and should be resolved in future releases.
</PARA>
</SECT1>



<SECT1><TITLE>Getting Started</TITLE>

<PARA>
You can download the latest PlumpOS package under the terms of the
GPL, without warranty of any kind, from any PlumpOS mirror.  Upon
downloading, unpack the archive 

<programlisting>
$ tar -xvzf plumpos-6.9-rc1.tar.gz
</programlisting>

and enter the new directory "plumpos-6.9-rc1/". Now you have several
options as to how you go about setting up PlumpOS.
</PARA>

<PARA>
First let's familiarize with the directory structure here. There
should be 3 directories: 

<itemizedlist>

<listitem>
<para>
rootdisk, which contains the layout of the iso to be created;
</para>
</listitem>

<listitem>
<para>
scripts, which contains small programs used to help in the creation of
the iso;
</para>
</listitem>

<listitem>
<para>
final, which will contain the ISO generated by the whole process.
</para>
</listitem>

</itemizedlist>

There should also be a file called install which you will run when you
are done configuring your system.
</PARA>

<PARA>
If you intend on using your own kernel with PlumpOS, there are several
steps you must follow in order for it to boot properly. First you must
make a new directory in the rootdisk/kernels/ directory that will be
in the old and often blamed DoS 8.3 character format and only contain
letters and numbers (and a single '.').  In that directory you should
put a file named bzImage which is your kernel and a file named
modules.tgz which is a gzipped tarball of your kernel's modules (with
the relative path of lib/modules/ so it can be extracted from the root
dir). Optionally you can also provide the System.map and config file
for your kernel. When this is done you may simply run the install
program and it will detect and install your kernel(s) for use with the
generated ISO.
</PARA>

<PARA>
Now, say you want to include a 3rd party add-on package. This is done
very simply: create a gzipped tarball containing all the files you
want to include in your package (relative to "/") and put these
packages into the rootdisk/packages/ directory. Then edit the file
rootdisk/packages/list and add the path relative to / on the ramdisk
where the package can be located (in other words for a package named
"openssl.tar.gz", add the line "/cdrom/packages/openssl.tar.gz" to the
file rootdisk/packages/list). Optionally you can use a line such as
"cdrom:openssl.tar.gz" which will automatically search the cdrom's
packages directory for the package "openssl.tar.gz". In future
releases this will be useful for things like nfs and boot floppies, so
for now don't worry about it ;)
</PARA>

</SECT1>

</CHAPTER>

