<HTML ><HEAD ><TITLE >Background Requirements for Linux on a JavaStation</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.63 "><LINK REL="HOME" TITLE="Linux on the Sun JavaStation NC HOWTO" HREF="index.html"><LINK REL="PREVIOUS" TITLE="What is a JavaStation?" HREF="whatischapter.html"><LINK REL="NEXT" TITLE="Build Your Kernel" HREF="kernelbuildchapter.html"></HEAD ><BODY CLASS="sect1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" ><SPAN CLASS="application" >Linux</SPAN > on the <SPAN CLASS="productname" >Sun JavaStation </SPAN > <SPAN CLASS="acronym" >NC</SPAN > HOWTO</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="whatischapter.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="kernelbuildchapter.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="BackgroundRequirementsChapter" >3. Background Requirements for <SPAN CLASS="application" >Linux</SPAN > on a <SPAN CLASS="productname" >JavaStation</SPAN ></A ></H1 ><P > This chapter describes the base hardware and software requirements for enabling <SPAN CLASS="application" >Linux</SPAN > on the <SPAN CLASS="productname" >JavaStation </SPAN >. </P ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="HardwareRequirementsSection" >3.1. Complete Hardware Requirements</A ></H2 ><P > For hardware, you will need one or more <SPAN CLASS="productname" >JavaStation</SPAN > clients and a server to feed it its <SPAN CLASS="application" >Linux</SPAN > image from, all networked on the same net segment. </P ><P > This server you use can be any server which supports <SPAN CLASS="acronym" >DHCP</SPAN > and <SPAN CLASS="acronym" >TFTP</SPAN >, and <SPAN CLASS="acronym" >RARP</SPAN >. These are the base protocols needed to perform a network boot of the <SPAN CLASS="productname" > JavaStations</SPAN >. You may also need <SPAN CLASS="acronym" >NFS</SPAN > service as well, but it is not necessary in one type of configuration this HOWTO describes. Also, you can get by without <SPAN CLASS="acronym" >RARP</SPAN > on both the <SPAN CLASS="productname" >Krups</SPAN > and <SPAN CLASS="productname" >Espresso </SPAN > models. </P ><P > This document will describe how to set up serving the network <SPAN CLASS="application" > Linux OS</SPAN > image to the <SPAN CLASS="productname" >JavaStation</SPAN > from a Sun server running <SPAN CLASS="application" >SparcLinux</SPAN >. While you do not need a Sun server to serve your <SPAN CLASS="application" >Linux</SPAN > image off of, a <SPAN CLASS="hardware" >Sun SparcLinux server</SPAN > is recommended should you wish to compile a kernel of your own, or prototype a new filesystem for your <SPAN CLASS="productname" >JavaStations</SPAN > 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.) </P ><P > 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. </P ><P > Your network can be a simple <SPAN CLASS="hardware" >10 Mbps ethernet</SPAN > <SPAN CLASS="acronym" >LAN</SPAN >, but when you begin using more than 50 <SPAN CLASS="productname" >JavaStations</SPAN > at once, a <SPAN CLASS="hardware" >switched 100 Mbps network</SPAN > becomes desirable for your server to handle multiple concurrent boot requests. </P ><P > 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 <SPAN CLASS="hardware" >Linux/SPARC server</SPAN >, but you still need a server of some type to feed the image to the <SPAN CLASS="hardware" >JavaStations</SPAN > as they boot. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="NetworkServiceRequirements" >3.2. Network Service Requirements</A ></H2 ><P > As discussed in the last section, the <SPAN CLASS="productname" >JavaStation</SPAN > boot cycle will make use of <SPAN CLASS="acronym" >DHCP</SPAN > and <SPAN CLASS="acronym" >TFTP</SPAN > with possibly <SPAN CLASS="acronym" >NFS</SPAN > and <SPAN CLASS="acronym" >RARP</SPAN >. To understand why, read up on the <SPAN CLASS="productname" >JavaStation</SPAN > boot sequence in the next section. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="JavaStationBootDescSection" >3.3. Understand the <SPAN CLASS="productname" >JavaStation</SPAN > Boot Sequence</A ></H2 ><P > The <SPAN CLASS="productname" >JavaStations</SPAN > follow a typical <SPAN CLASS="hardware" > diskless workstation</SPAN > boot sequence. </P ><P > When powered on, the <SPAN CLASS="productname" >JavaStation</SPAN > sends out a broadcast request for its <SPAN CLASS="acronym" >IP</SPAN >. It gets its <SPAN CLASS="acronym" >IP </SPAN > info via <SPAN CLASS="acronym" >RARP</SPAN > or <SPAN CLASS="acronym" >DHCP</SPAN >. With a <SPAN CLASS="acronym" >DHCP</SPAN > response, it gets information about the network it is on and where to go download its boot image from via <SPAN CLASS="acronym" >TFTP</SPAN >. </P ><P > There are subtle variations in diskless boots from one diskless machine to the next. For instance, <SPAN CLASS="acronym" >BOOTP</SPAN > may sometimes be substituted where <SPAN CLASS="acronym" >DHCP</SPAN > is, and <SPAN CLASS="acronym" >RARP</SPAN > 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: </P ><P ></P ><OL TYPE="1" ><LI ><P > C: <SPAN CLASS="QUOTE" >"Who am I?"</SPAN > </P ></LI ><LI ><P > S: <SPAN CLASS="QUOTE" >"You are xxx"</SPAN > </P ></LI ><LI ><P > C: <SPAN CLASS="QUOTE" >"Where do I go for my boot image?"</SPAN > </P ></LI ><LI ><P > S: <SPAN CLASS="QUOTE" >"You go here."</SPAN > </P ></LI ><LI ><P > C: <SPAN CLASS="QUOTE" >"Give me my image from here...Please?"</SPAN > </P ></LI ><LI ><P > S: <SPAN CLASS="QUOTE" >"Here's your image."</SPAN > </P ></LI ></OL ><P > After the kernel is finished loading, your diskless client typically mounts its root filesystem from the network via <SPAN CLASS="acronym" >NFS</SPAN >. Alternatively, it may load and mount it from a <SPAN CLASS="acronym" >RAM</SPAN >disk. </P ><P > 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. </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="ProllDescSection" >3.4. Additional Software Requirements: Replacement Firmware (<SPAN CLASS="application" >PROLL</SPAN >)</A ></H2 ><P > <SPAN CLASS="productname" >JavaStations</SPAN > came with two different <SPAN CLASS="acronym" >PROMs</SPAN > installed in them. Version 2.30 shipped with the earliest <SPAN CLASS="productname" >Mr. Coffee</SPAN > models, and was updated by latter versions of the <SPAN CLASS="application" >Sun Netra J</SPAN > software environment to 3.11. <SPAN CLASS="productname" >Krups</SPAN > and <SPAN CLASS="productname" >Espresso</SPAN > came with 3.x versions of the <SPAN CLASS="acronym" >PROM</SPAN > by default. </P ><P > It turns out the later 3.x series of <SPAN CLASS="acronym" >PROMs</SPAN > is not conducive to booting <SPAN CLASS="application" >Linux</SPAN > upon. Fortunately, a complete <SPAN CLASS="acronym" >PROM</SPAN > replacement called <SPAN CLASS="application" >PROLL</SPAN > now exists to get by this limitation. </P ><P > <SPAN CLASS="application" >PROLL</SPAN > becomes the first image your <SPAN CLASS="productname" > JavaStation</SPAN > grabs by <SPAN CLASS="acronym" >TFTP</SPAN >. It then will load your true kernel image and boot into <SPAN CLASS="application" >Linux </SPAN >. </P ><P > No matter what <SPAN CLASS="acronym" >PROM</SPAN > revision you have, get <SPAN CLASS="application" > PROLL</SPAN >. This can make troubleshooting new installs easier. </P ><P > The current, master version of <SPAN CLASS="application" >PROLL</SPAN > is available from: <A HREF="http://people.redhat.com/zaitcev/linux/" TARGET="_top" > http://people.redhat.com/zaitcev/linux/</A >. </P ><P > The current version at the time of this writing is <SPAN CLASS="QUOTE" >"14"</SPAN >. </P ><P > <SPAN CLASS="application" >PROLL</SPAN > can also be found mirrored on <SPAN CLASS="QUOTE" >"VGER "</SPAN >, and also on this HOWTO's distribution site at: <A HREF="http://dubinski-family.org/~jshowto/Files/proll/proll_14.tar.bz2" TARGET="_top" > http://dubinski-family.org/~jshowto/Files/proll/proll_14.tar.bz2</A > (HOWTO website mirror - version 14) </P ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="FSTypeDescSection" >3.5. Decide on your Filesystem-type: <SPAN CLASS="acronym" >NFS</SPAN >-Root, or Embedded?</A ></H2 ><P > Before you begin, you must decide upon the root-filesystem type you wish to use for your diskless <SPAN CLASS="productname" >JavaStation</SPAN >. There are two possibilities. </P ><DIV CLASS="sect3" ><H3 CLASS="sect3" ><A NAME="NFSRootFSDesc" >3.5.1. <SPAN CLASS="QUOTE" >"<SPAN CLASS="acronym" >NFS</SPAN >-Root"</SPAN > Filesystem</A ></H3 ><P > In this setup, after the boot kernel is retrieved off the network, the running <SPAN CLASS="productname" >JavaStation</SPAN > makes an <SPAN CLASS="acronym" >NFS</SPAN > connection for its root filesystem. The root directory <SPAN CLASS="QUOTE" >"/"</SPAN > is mounted off the network for the duration of the current session. </P ><P > The <SPAN CLASS="QUOTE" >"<SPAN CLASS="acronym" >NFS</SPAN >-Root"</SPAN > 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). </P ><P > Drawbacks of this type of system is increased network activity as the running JavaStations locate and execute files, plus file organization in large environments. </P ></DIV ><DIV CLASS="sect3" ><H3 CLASS="sect3" ><A NAME="EmbeddedFSDesc" >3.5.2. <SPAN CLASS="QUOTE" >"Embedded-Root"</SPAN > Filesystem</A ></H3 ><P > In this setup, the root filesystem is loaded directly into <SPAN CLASS="acronym" >RAM </SPAN > and accessed from there. </P ><P > The advantage of this setup is that there is no <SPAN CLASS="acronym" >NFS</SPAN > traffic to worry about, resulting in a clean solution. </P ><P > 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 <SPAN CLASS="QUOTE" >"NFS-Root"</SPAN > 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. </P ><P > First time users will want to set up an <SPAN CLASS="QUOTE" >"NFS-Root"</SPAN > configuration. When you have things stabilized, move to <SPAN CLASS="QUOTE" >"Embedded-Root"</SPAN > to take use of its advantages. </P ></DIV ></DIV ><DIV CLASS="sect2" ><H2 CLASS="sect2" ><A NAME="SupportSitesSection" >3.6. Support Sites to Check Out: Zaitcev's Linux Site</A ></H2 ><P > One website to keep on reference when you begin thinking about putting Linux on your JavaStation is kernel hacker Pete Zaitcev's website at: <A HREF="http://people.redhat.com/zaitcev/linux/" TARGET="_top" > http://people.redhat.com/zaitcev/linux/</A >, referenced throughout this document as the <SPAN CLASS="QUOTE" >"ZLS"</SPAN > 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. </P ><P > 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. </P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="whatischapter.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="kernelbuildchapter.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >What is a <SPAN CLASS="productname" >JavaStation</SPAN >?</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" > </TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Build Your Kernel</TD ></TR ></TABLE ></DIV ></BODY ></HTML >