LDP/LDP/howto/docbook/JavaStation-HOWTO/03_background_requirements_...

318 lines
11 KiB
XML

<sect1 id="BackgroundRequirementsChapter">
<title>Background Requirements for <application>Linux</application> on a
<productname>JavaStation</productname></title>
<para>
This chapter describes the base hardware and software requirements
for enabling <application>Linux</application> on the <productname>JavaStation
</productname>.
</para>
<sect2 id="HardwareRequirementsSection">
<title>Complete Hardware Requirements</title>
<para>
For hardware, you will need one or more <productname>JavaStation</productname>
clients and a server to feed it its <application>Linux</application>
image from, all networked on the same net segment.
</para>
<para>
This server you use can be any server which supports <acronym>DHCP</acronym>
and <acronym>TFTP</acronym>, and <acronym>RARP</acronym>. These are the
base protocols needed to perform a network boot of the <productname>
JavaStations</productname>. You may also need <acronym>NFS</acronym>
service as well, but it is not necessary in one type of configuration
this HOWTO describes. Also, you can get by without <acronym>RARP</acronym>
on both the <productname>Krups</productname> and <productname>Espresso
</productname> models.
</para>
<para>
This document will describe how to set up serving the network <application>
Linux OS</application> image to the <productname>JavaStation</productname>
from a Sun server running <application>SparcLinux</application>. While you
do not need a Sun server to serve your <application>Linux</application>
image off of, a <hardware>Sun SparcLinux server</hardware> is recommended
should you wish to compile a kernel of your own, or prototype a new
filesystem for your <productname>JavaStations</productname> to use.
Otherwise, you will need to use prepackaged kernels and filesystems
somebody else has pre-built and made publicly available for use.
(You might also use a cross-compiler to produce the kernel images,
but prototyping a filesystem is best done on a Sun SparcLinux server.)
</para>
<para>
Reports of successful boot servers used include Sun boxes running
Sparclinux, Sun boxes running Solaris, and PCs running MS Windows.
It is only when you are building a new kernel or filesystem that a
Sun box running Linux becomes valuable.
</para>
<para>
Your network can be a simple <hardware>10 Mbps ethernet</hardware>
<acronym>LAN</acronym>, but when you begin using more than 50
<productname>JavaStations</productname> at once, a <hardware>switched
100 Mbps network</hardware> becomes desirable for your server to handle
multiple concurrent boot requests.
</para>
<para>
This HOWTO includes pointers to example kernels, filesystems and a
complete out-of-the-box solution for you to use, eliminating your need for
a <hardware>Linux/SPARC server</hardware>, but you still need a server of
some type to feed the image to the <hardware>JavaStations</hardware> as
they boot.
</para>
</sect2>
<sect2 id="NetworkServiceRequirements">
<title>Network Service Requirements</title>
<para>
As discussed in the last section, the <productname>JavaStation</productname>
boot cycle will make use of <acronym>DHCP</acronym> and <acronym>TFTP</acronym>
with possibly <acronym>NFS</acronym> and <acronym>RARP</acronym>. To
understand why, read up on the <productname>JavaStation</productname> boot
sequence in the next section.
</para>
</sect2>
<sect2 id="JavaStationBootDescSection">
<title>Understand the <productname>JavaStation</productname> Boot Sequence</title>
<para>
The <productname>JavaStations</productname> follow a typical <hardware>
diskless workstation</hardware> boot sequence.
</para>
<para>
When powered on, the <productname>JavaStation</productname> sends out a
broadcast request for its <acronym>IP</acronym>. It gets its <acronym>IP
</acronym> info via <acronym>RARP</acronym> or <acronym>DHCP</acronym>.
With a <acronym>DHCP</acronym> response, it gets information about the
network it is on and where to go download its boot image from via
<acronym>TFTP</acronym>.
</para>
<para>
There are subtle variations in diskless boots from one diskless machine to
the next. For instance, <acronym>BOOTP</acronym> may sometimes be
substituted where <acronym>DHCP</acronym> is, and <acronym>RARP</acronym>
may be eliminated in favor of either of the two. But in general, the
sequence is typically the same between the client and the server:
</para>
<orderedlist>
<listitem>
<para>
C: <quote>Who am I?</quote>
</para>
</listitem>
<listitem>
<para>
S: <quote>You are xxx</quote>
</para>
</listitem>
<listitem>
<para>
C: <quote>Where do I go for my boot image?</quote>
</para>
</listitem>
<listitem>
<para>
S: <quote>You go here.</quote>
</para>
</listitem>
<listitem>
<para>
C: <quote>Give me my image from here...Please?</quote>
</para>
</listitem>
<listitem>
<para>
S: <quote>Here's your image.</quote>
</para>
</listitem>
</orderedlist>
<para>
After the kernel is finished loading, your diskless client typically mounts
its root filesystem from the network via <acronym>NFS</acronym>.
Alternatively, it may load and mount it from a <acronym>RAM</acronym>disk.
</para>
<para>
The original JavaOS and Hotjava Views environment, when run on a JavaStation,
required the setup and maintenance of the core services above, plus
also NIS, HTTP, DNS, POP, and NTP servers. If setting up a JavaStation boot
server seems like a lot of work, imagine adding these extra services
into the mix too.
</para>
</sect2>
<sect2 id="ProllDescSection">
<title>Additional Software Requirements: Replacement Firmware
(<application>PROLL</application>)</title>
<para>
<productname>JavaStations</productname> came with two different
<acronym>PROMs</acronym> installed in them. Version 2.30 shipped with
the earliest <productname>Mr. Coffee</productname> models, and was
updated by latter versions of the <application>Sun Netra J</application>
software environment to 3.11. <productname>Krups</productname> and
<productname>Espresso</productname> came with 3.x versions of the
<acronym>PROM</acronym> by default.
</para>
<para>
It turns out the later 3.x series of <acronym>PROMs</acronym> is not
conducive to booting <application>Linux</application> upon.
Fortunately, a complete <acronym>PROM</acronym> replacement
called <application>PROLL</application> now exists to get by this limitation.
</para>
<para>
<application>PROLL</application> becomes the first image your <productname>
JavaStation</productname> grabs by <acronym>TFTP</acronym>. It then
will load your true kernel image and boot into <application>Linux
</application>.
</para>
<para>
No matter what <acronym>PROM</acronym> revision you have, get <application>
PROLL</application>. This can make troubleshooting new installs easier.
</para>
<para>
The current, master version of <application>PROLL</application> is available
from:
<ulink url="http://people.redhat.com/zaitcev/linux/">
http://people.redhat.com/zaitcev/linux/</ulink>.
</para>
<para>
The current version at the time of this writing is <quote>14</quote>.
</para>
<para>
<application>PROLL</application> can also be found mirrored on <quote>VGER
</quote>, and also on this HOWTO's distribution site at:
<ulink url="http://dubinski-family.org/~jshowto/Files/proll/proll_14.tar.bz2">
http://dubinski-family.org/~jshowto/Files/proll/proll_14.tar.bz2</ulink>
(HOWTO website mirror - version 14)
</para>
</sect2>
<sect2 id="FSTypeDescSection">
<title>Decide on your Filesystem-type: <acronym>NFS</acronym>-Root, or
Embedded?</title>
<para>
Before you begin, you must decide upon the root-filesystem type you wish to
use for your diskless <productname>JavaStation</productname>. There are
two possibilities.
</para>
<sect3 id="NFSRootFSDesc">
<title><quote><acronym>NFS</acronym>-Root</quote> Filesystem</title>
<para>
In this setup, after the boot kernel is retrieved off the network, the
running <productname>JavaStation</productname> makes an <acronym>NFS</acronym>
connection for its root filesystem. The root directory <quote>/</quote> is
mounted off the network for the duration of the current session.
</para>
<para>
The <quote><acronym>NFS</acronym>-Root</quote> solution is the recommended
way to go for beginners, as it is easier to troubleshoot if there are
problems. It also makes it easier to prototype the proper filesystem,
as any changes you make on a running system can be propogated for the
next boot cycle (so long as you are in read-write mode, of course).
</para>
<para>
Drawbacks of this type of system is increased network activity as the
running JavaStations locate and execute files, plus file organization
in large environments.
</para>
</sect3>
<sect3 id="EmbeddedFSDesc">
<title>
<quote>Embedded-Root</quote> Filesystem
</title>
<para>
In this setup, the root filesystem is loaded directly into <acronym>RAM
</acronym> and accessed from there.
</para>
<para>
The advantage of this setup is that there is no <acronym>NFS</acronym>
traffic to worry about, resulting in a clean solution.
</para>
<para>
The disadvantage of this configuration is that you can no longer do rapid
prototyping of your filesystem, as any changes you make to a running system
are lost. If you have no <quote>NFS-Root</quote> setup available, you
develop an embedded filesystem by making small tweaks and performing
reboots to test. Other disadvantages include the requirement of fitting
the full filesystem in available RAM; due to a limitation of PROLL, this
requirement is much lower on JavaStations than expected. Still, embedded
root is the way to go for the cleanest environment.
</para>
<para>
First time users will want to set up an <quote>NFS-Root</quote>
configuration. When you have things stabilized, move to
<quote>Embedded-Root</quote> to take use of its advantages.
</para>
</sect3>
</sect2>
<sect2 id="SupportSitesSection">
<title>Support Sites to Check Out: Zaitcev's Linux Site</title>
<para>
One website to keep on reference when you begin thinking about
putting Linux on your JavaStation is kernel hacker Pete Zaitcev's
website at: <ulink url="http://people.redhat.com/zaitcev/linux/">
http://people.redhat.com/zaitcev/linux/</ulink>, referenced
throughout this document as the <quote>ZLS</quote> site (short for
"Zaitcev's Linux Site"). Here you will find the latest version of
PROLL and many low-level details about dealing with the JavaStations.
Many items on the ZLS have been merged into this document, but not all.
</para>
<para>
Oct. 2001 update: It is in your best interest to review all the information
on Pete's site, in this document, and references pointed to, before diving
in and setting up your JavaStation with Linux. Almost all questions people
have had in setting up their systems are covered in the materials presented.
</para>
</sect2>
</sect1>