mirror of https://github.com/tLDP/LDP
3378 lines
109 KiB
Plaintext
3378 lines
109 KiB
Plaintext
<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
|
|
|
|
<!--
|
|
Here's the current source for the Linux on JavaStation HOWTO
|
|
Thanks for checking out the source.
|
|
|
|
Things to do:
|
|
|
|
1) All requests have been merged.
|
|
|
|
|
|
-->
|
|
|
|
<Article>
|
|
|
|
<ArtHeader>
|
|
|
|
<!-- Title information -->
|
|
|
|
<Title><Application>Linux</Application> on the <ProductName>Sun JavaStation
|
|
</ProductName> <Acronym>NC</Acronym> HOWTO</Title>
|
|
<TitleAbbrev>JavaStation-HOWTO</TitleAbbrev>
|
|
|
|
<Author>
|
|
<FirstName>Robert S.</FirstName><Surname>Dubinski</Surname>
|
|
</Author>
|
|
<AuthorInitials>RSD</AuthorInitials>
|
|
|
|
<!--
|
|
<Ulink url="mailto://dubinski@mscs.mu.edu">dubinski@mscs.mu.edu</Ulink>
|
|
Is there any real valid way of adding an email address in the artheader
|
|
and still include both FirstName and SurName? And is there a MidName tag?
|
|
Email me and let me know.
|
|
-->
|
|
<Publisher>
|
|
<PublisherName>Linux Documentation Project</PublisherName>
|
|
</Publisher>
|
|
|
|
<PubDate>2000-Jun-16</PubDate>
|
|
|
|
<Abstract>
|
|
|
|
<Para>
|
|
This is a HOWTO document describing how to enable the <Application><Acronym>GNU</Acronym>/Linux <Acronym>OS</Acronym></Application> on the Sun JavaStation NC.
|
|
</Para>
|
|
|
|
<!-- removed tags from above paragraph due to stylesheets goofing with it -->
|
|
|
|
</Abstract>
|
|
|
|
</ArtHeader>
|
|
|
|
|
|
<!-- Begin the document -->
|
|
|
|
|
|
<Sect1 id="MetaInfoChapter">
|
|
<Title>META Information</Title>
|
|
|
|
<Para>
|
|
This section lists the meta-information of this document. The
|
|
hows, whys, location and changes to the structure of the document
|
|
are documented here. The main content begins in the next chapter.
|
|
</Para>
|
|
|
|
|
|
<Sect2 id="DocumentPurposeSection">
|
|
<Title>The Purpose of this Document</Title>
|
|
|
|
<Para>
|
|
This document is to serve as a comprehensive HOWTO and <Acronym>FAQ</Acronym>
|
|
collection regarding the <ProductName>Sun JavaStation <Acronym>NC</Acronym>
|
|
</ProductName> and enabling the <Application><Acronym>GNU</Acronym>/Linux
|
|
<Acronym>OS</Acronym> </Application> on it.
|
|
</Para>
|
|
|
|
<Para>
|
|
The intended audience of this document is anyone who has an interest
|
|
in enabling <Application>Linux</Application> on the <ProductName>Sun
|
|
JavaStations</ProductName>. The document structure is laid out to
|
|
serve as either a top-to-bottom read for a newcomer, or as quick
|
|
reference on a single topic for advanced users. Pointers
|
|
to sample files submitted by users are included for
|
|
extremely hurried readers.
|
|
</Para>
|
|
|
|
<Para>
|
|
The author of this document is Robert Dubinski <Email>dubinski@mscs.mu.edu
|
|
</Email>, Computer Technician and UNIX systems administrator for <Ulink
|
|
url ="http://www.marquette.edu">Marquette University's</Ulink> <Ulink url="
|
|
http://www.mscs.mu.edu"> Math, Statistics and Computer Science
|
|
Department</Ulink>. In the <Acronym>MU MSCS</Acronym> department,
|
|
125 <ProductName>JavaStations</ProductName> are currently running
|
|
<Application>Linux</Application>, configured using the information,
|
|
techniques and files presented in this document.
|
|
</Para>
|
|
|
|
<Para>
|
|
In early 1999, Eric Brower <Email>ebrower@usa.net</Email> wrote the
|
|
first informal HOWTO for the <ProductName>JavaStation</ProductName>. Parts
|
|
of this document are inspired by his work, and all unique information
|
|
presented there have since been merged into this document.
|
|
</Para>
|
|
|
|
<Para>
|
|
This HOWTO also aims to serve as a member document of the Linux Documentation
|
|
Project. The <Acronym>LDP</Acronym> can be reached at:
|
|
<ULink url="http://www.linuxdoc.org"> http://www.linuxdoc.org</ULink>
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="DocumentAcknowledgementsSection">
|
|
<Title>Acknowledgments</Title>
|
|
|
|
<Para>
|
|
Enabling <Application>Linux</Application> on the <ProductName>JavaStations
|
|
</ProductName>, and allowing this HOWTO to come to be would never have
|
|
been possible without the fine work of the following people:
|
|
</Para>
|
|
|
|
<Para>
|
|
<ItemizedList>
|
|
<ListItem>
|
|
<Para>
|
|
Pete Zaitcev <Email>zaitcev@metabyte.com</Email>
|
|
(<ProductName>JavaStation</ProductName> kernel mod author)
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
Eric Brower <Email>ebrower@usa.net</Email>
|
|
(<Application>XFree</Application> mods and author of the original
|
|
embedded-build HOWTO)
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
Varol Kaptan <Email>varol@ulakbim.gov.tr</Email>
|
|
(made available his <ProductName>Krups</ProductName> images and patches.
|
|
Backported kernel support to 2.2.x series)
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
David Miller <Email>davem@redhat.com</Email>
|
|
(the original <Application>Linux/SPARC</Application> kernel porter)
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
The <Application>Linux/SPARC</Application> kernel porters and mailing list
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
The thousands of contributors to the <Application>Linux kernel</Application>
|
|
</Para>
|
|
</ListItem>
|
|
</ItemizedList>
|
|
</Para>
|
|
|
|
<Para>
|
|
The HOWTO author wishes to give a second thank-you to Pete
|
|
and Eric for their work:
|
|
</Para>
|
|
|
|
<BlockQuote>
|
|
<Attribution>Robert Dubinski</Attribution>
|
|
|
|
<Para>
|
|
Pete got me going with <Application>Linux</Application> on the
|
|
<ProductName>JavaStation</ProductName> in December 1998, has
|
|
been the main kernel programmer adding in support for the
|
|
<ProductName>JavaStation</ProductName> line, and despite his busy
|
|
work schedule was nice enough to find time to answer all my email
|
|
queries for help over the last 15 months.
|
|
</Para>
|
|
|
|
<Para>
|
|
Eric worked on bringing <Application>X</Application> support to the
|
|
<ProductName>JavaStation</ProductName> when it had none.
|
|
He had been working on a dedicated server for the <ProductName>
|
|
JavaStation</ProductName> in early 1999, and kept me informed of
|
|
his progress. In mid-1999, he switched tactics and sent a working
|
|
framebuffer example to test out. He also wrote the first comprehensive
|
|
mini-HOWTO for the <ProductName>JavaStations</ProductName>,
|
|
answered my email questions, and got me interested in the embedded
|
|
solution which I employ here at Marquette.
|
|
</Para>
|
|
|
|
<Para>
|
|
Thank-you Pete and Eric!
|
|
</Para>
|
|
|
|
</BlockQuote>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="DocumentContributorsSection">
|
|
<Title>Document Contributors</Title>
|
|
|
|
<Para>
|
|
The following people have contributed to this specific document:
|
|
</Para>
|
|
|
|
<ItemizedList>
|
|
<ListItem>
|
|
<Para>
|
|
Pete Zaitcev <Email>zaitcev@metabyte.com</Email>
|
|
(Proofreading and factual corrections of initial drafts)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Eric Brower <Email>ebrower@usa.net</Email>
|
|
(Proofreading and factual corrections of initial drafts)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Magdalena Wodzinska <Email>magdalena.wodzinska@marquette.edu</Email>
|
|
(Proofreading and document layout suggestions)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Richard Tomlinson <Email>Richard.Tomlinson@one2one.co.uk</Email>
|
|
(Document reader, Krups tester, feedback)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Michael R. Eckhoff <Email>foobar@null.net</Email>
|
|
(feedback on sample kernel)
|
|
</Para>
|
|
</ListItem>
|
|
</ItemizedList>
|
|
|
|
<Para>
|
|
If you contributed a tidbit of info and are not listed, please email
|
|
the document author to get yourself listed.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="DocumentHistorySection">
|
|
<Title>History of this document</Title>
|
|
|
|
<Para>
|
|
|
|
<RevHistory>
|
|
|
|
<Revision>
|
|
<RevNumber>1.05</RevNumber>
|
|
<Date>16 Jun 2000</Date>
|
|
<RevRemark>Requested Format Changes and Fixes</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>1.04</RevNumber>
|
|
<Date>13 Jun 2000</Date>
|
|
<RevRemark>Suggested Fixes and Added Requests</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>1.03</RevNumber>
|
|
<Date>04 May 2000</Date>
|
|
<RevRemark>Minor Fixes, Requests</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>1.02</RevNumber>
|
|
<Date>28 Apr 2000</Date>
|
|
<RevRemark>Small fixes.</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>1.01</RevNumber>
|
|
<Date>25 Apr 2000</Date>
|
|
<RevRemark>"Brown Paper Bag" Revision.</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>1.0</RevNumber>
|
|
<Date>24 Apr 2000</Date>
|
|
<RevRemark>First submission to the LDP.</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.9</RevNumber>
|
|
<Date>18 Apr 2000</Date>
|
|
<RevRemark>Continued reorganization and final merges.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.7</RevNumber>
|
|
<Date>15 Apr 2000</Date>
|
|
<RevRemark>Migration from LinuxDoc DTD to Docbook DTD.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.71</RevNumber>
|
|
<Date>14 Apr 2000</Date>
|
|
<RevRemark>Received word doc was forwarded inside Sun.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.7</RevNumber>
|
|
<Date>14 Apr 2000</Date>
|
|
<RevRemark>Linked on Metabyte Website.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.6</RevNumber>
|
|
<Date>9 Apr 2000</Date>
|
|
<RevRemark>First semi-public release.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.4</RevNumber>
|
|
<Date>24 Mar 2000</Date>
|
|
<RevRemark>First move to comprehensive HOWTO.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.2</RevNumber>
|
|
<Date>15 Oct 1999</Date>
|
|
<RevRemark>More notes collected and merged.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
<Revision>
|
|
<RevNumber>0.1</RevNumber>
|
|
<Date>24 Jun 1999</Date>
|
|
<RevRemark>Initial scraps put together.
|
|
</RevRemark>
|
|
</Revision>
|
|
|
|
</RevHistory>
|
|
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="DocumentCopyrightSection">
|
|
<Title>Document Copyright and Licenses</Title>
|
|
|
|
<Para>
|
|
This particular document and its source as a whole is Copyright 1999-2000,
|
|
Robert Dubinski <Email>dubinski@mscs.mu.edu</Email>. You may mirror or
|
|
redistribute this document as a whole or in part for either public or
|
|
commercial purposes <Emphasis>provided</Emphasis> the following: 1) you do
|
|
not make any modifications to this work , 2) retain this license information
|
|
and author copyright section, even when redistributing just a part of this
|
|
document, and 3) include acknowledgement of where this document as a whole may
|
|
be obtained . This ensures that any comments written by the document author
|
|
do not get taken out of context or modified incorrectly, acknowledges the
|
|
work of the author, allows for inclusion in commercial projects, and points
|
|
readers to where they may find potentially updated versions of the information
|
|
presented.</Para>
|
|
|
|
<Para>
|
|
The document author makes <Emphasis>no</Emphasis> warranties that all
|
|
the information presented here is completely accurate, and cannot be
|
|
held liable to any loss you experience as a result of the information
|
|
you use from here.
|
|
</Para>
|
|
|
|
<Para>
|
|
Best efforts have been made to ensure everything included is accurate as
|
|
of the publication date listed at the beginning of this document, but
|
|
there is always a possibility something may be wrong. In this case,
|
|
doublecheck with alternative sources first before considering implementing
|
|
anything at a production-level. If you find something wrong, drop the author
|
|
a line at <Email>dubinski@mscs.mu.edu</Email> or send me a patch to the
|
|
document source, and corrections will be made immediately.
|
|
</Para>
|
|
|
|
<Para>
|
|
In the future, this document may be re-released under the Open Content or
|
|
other Free Document license, but for now all Open Documentation licenses
|
|
are currently being investigated by the author. If you have comments into
|
|
this legal matter, drop the author a line at <Email>dubinski@mscs.mu.edu
|
|
</Email>. As it stands, the license presented above captures the spirit of the
|
|
<Acronym>LDP</Acronym> boilerplate license without specifically mentioning it.
|
|
</Para>
|
|
|
|
<Para>
|
|
This document is a member document of the <Ulink url="http://www.linuxdoc.org">
|
|
Linux Documentation Project</Ulink>.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="DocumentLocationSection">
|
|
<Title>Location of the Latest Version and Source</Title>
|
|
|
|
<Para>
|
|
The latest online version of this document can be found at:
|
|
<ULink url="http://www.mscs.mu.edu/˜tech/Linux_on_JS">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS</ULink>
|
|
.
|
|
</Para>
|
|
|
|
<Para>
|
|
The pre-processed <Acronym>SGML</Acronym> source to this document, written to the Docbook <Acronym>DTD</Acronym>, is available from:
|
|
<Ulink
|
|
url="http://www.mscs.mu.edu/˜tech/Linux_on_JS/Files/JavaStation-HOWTO.sgml"
|
|
>http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/JavaStation-HOWTO.sgml</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Copies of this document are also available from the Linux Documentation
|
|
Project at: <Ulink url="http://www.linuxdoc.org/HOWTO/JavaStation-HOWTO/">http://www.linuxdoc.org/HOWTO/JavaStation-HOWTO</Ulink>.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
<Sect1 id="WhatIsChapter">
|
|
<Title>What is a <ProductName>JavaStation</ProductName>?</Title>
|
|
|
|
<Para>
|
|
This chapter explains to the reader what the <ProductName>JavaStation
|
|
</ProductName> line is, its components, <Acronym>NC</Acronym> concepts,
|
|
how to get one, and why one would choose the <Application>Linux
|
|
<Acronym>OS</Acronym></Application> for it.
|
|
</Para>
|
|
|
|
<Sect2 id="WhatIsJavaStationSection">
|
|
<Title>What is a <ProductName>JavaStation</ProductName> <Acronym>NC</Acronym>?
|
|
</Title>
|
|
|
|
<Para>
|
|
The <ProductName>JavaStation</ProductName> <Acronym>NC</Acronym> is a
|
|
model line of network computers built and sold by
|
|
<ULink url="http://www.sun.com">Sun Microsystems</Ulink> between
|
|
November 1996 and March 2000. The <ProductName>JavaStation</ProductName>
|
|
line was Sun's low-cost terminal option during that timeframe.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>JavaStation</ProductName> hardware ran Sun's
|
|
own <Application>JavaOS</Application> and either Sun's <Application>
|
|
Hotjava</Application> web browser, Sun's <Application>HotJava Views
|
|
</Application> task-manager software, or custom <Application>Java
|
|
</Application> applications of the customer's choice.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>JavaStation</ProductName> was originally billed in
|
|
November 1996 sneak previews as a low-cost desktop terminal,
|
|
providing customers access to hot new <Application>Java</Application>
|
|
applications, <Quote>legacy</Quote> <Application>X</Application> applications,
|
|
and <Quote>legacy</Quote> <Application>MS Windows</Application> apps.
|
|
During its lifetime, The <ProductName>JavaStation</ProductName>'s marketed
|
|
functionality was changed twice from <Quote>desktop terminal</Quote> to
|
|
<Quote>single-app desktop device</Quote> to finally a <Quote>browser-based
|
|
kiosk device</Quote>.
|
|
</Para>
|
|
|
|
<Para>
|
|
At no time did Sun market the <ProductName>JavaStation</ProductName> as
|
|
capable of running its flagship
|
|
<Ulink url="http://www.sun.com/solaris">Solaris</Ulink> operating system
|
|
or the <Ulink url="http://www.linux.com">Linux OS</Ulink>.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="WhatIsNCSection">
|
|
<Title>Definition of an <Acronym>NC</Acronym> including the Differentiation
|
|
from <Acronym>PC</Acronym>'s</Title>
|
|
|
|
<Para>
|
|
A network computer, or <Acronym>NC</Acronym>, was hailed as
|
|
"the next big thing" in computing from late 1995 to early 1998.
|
|
Conventional <Acronym>PC</Acronym>'s, called "fat clients", were
|
|
expected to be minimized in businesses by thin-client
|
|
<Acronym>NC</Acronym>'s.
|
|
</Para>
|
|
|
|
<Para>
|
|
Thin-clients get their <Acronym>OS</Acronym>, applications, and data
|
|
files entirely through the network. They are different from
|
|
dumb-terminals; they run full-scale graphical applications.
|
|
Thin-clients are also different than graphical X-terminals.
|
|
X-terminals typically run an X server and display the client programs of
|
|
a remote server. Thin clients generally run full-scale graphical
|
|
programs locally, such as a web browser, a <Application>Java</Application>
|
|
application, or a <Quote>legacy-connectivity program</Quote>, which enables
|
|
the thin-client to display <Application>X</Application> apps or
|
|
<Application>MS Windows</Application> apps which run on more
|
|
powerful servers.
|
|
</Para>
|
|
|
|
<Para>
|
|
Advantages of <Acronym>NC</Acronym>'s include:
|
|
</Para>
|
|
|
|
<ItemizedList>
|
|
<ListItem>
|
|
<Para>
|
|
<Quote>Zero-Administration</Quote>. (Add a new <Acronym>NC</Acronym> and
|
|
it will get <Emphasis>everything</Emphasis> it needs off the network,
|
|
without an admin ever needing to visit it.)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Lower Total-Cost-of-Ownership (<Acronym>TCO</Acronym>) (No internal
|
|
hard drives, floppy drives or <Acronym>CD</Acronym> players reduces
|
|
form-factor, repair expenses, selling price and thus total-cost-of-ownership.)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Access to all web-based apps as well as <Quote>legacy</Quote> <Application>X
|
|
</Application> and <Application>MS Windows</Application> apps.
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Quick upgrades (just upgrade your server and the changes propogate throughout)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Longer lifespan (just upgrade the software, growing hard disk and memory
|
|
requirements is not an issue)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Smaller <Acronym>OS</Acronym> footprint (when running brower-based apps)
|
|
</Para>
|
|
</ListItem>
|
|
</ItemizedList>
|
|
|
|
<Para>
|
|
Disadvantages of <Acronym>NC</Acronym>'s:
|
|
</Para>
|
|
|
|
<ItemizedList>
|
|
<ListItem>
|
|
<Para>
|
|
No local access to data files (all your files stored on a remote server)
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
Requires fast, stable networks
|
|
</Para>
|
|
</ListItem>
|
|
</ItemizedList>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="JavaStationModelsSection">
|
|
<Title>Description of the <ProductName>JavaStation</ProductName> Model
|
|
Line including Hardware Specs</Title>
|
|
|
|
<Para>
|
|
Depending on who you talk to, the number of <ProductName>JavaStation
|
|
</ProductName> models that were created is anywhere from one to six.
|
|
The descriptions below will explain why.
|
|
</Para>
|
|
|
|
|
|
<Sect3 id="MrCoffeeDescSection">
|
|
|
|
<Title>
|
|
<ProductName>JavaStation-1</ProductName> [ <Quote>Mr. Coffee</Quote>]
|
|
[<Quote>the brick</Quote>] [Sun Option No. JJ-xx]
|
|
</Title>
|
|
|
|
<Para>
|
|
This model is the most prevalent <ProductName>JavaStation</ProductName> model
|
|
you are likely to find, although it wasn't the one and only
|
|
<Emphasis><ProductName>JavaStation</ProductName></Emphasis> model Sun wished
|
|
to sell to the public. The <ProductName>JavaStation-1</ProductName> was the
|
|
first generation <ProductName>JavaStation</ProductName>, released in
|
|
November 1996 to pilot deployments as Sun's <Quote>proof of concept</Quote>
|
|
of the Java <Acronym>NC</Acronym> design.
|
|
</Para>
|
|
|
|
<Para>
|
|
Hardware-wise, the <ProductName>JavaStation-1</ProductName> is a
|
|
Sun4M architecture machine. It is based on the <ProductName>SPARCStation-4
|
|
</ProductName> design, with some deletions and <Acronym>PC</Acronym>-like
|
|
modifications. It is powered by a <Hardware>110 Mhz MicroSPARC IIe
|
|
CPU</Hardware> and has no <Hardware>SCSI</Hardware>, <Hardware>internal disks
|
|
</Hardware>, <Hardware>floppy</Hardware>, <Hardware>CD</Hardware> or
|
|
<Hardware>expansion slots</Hardware>. The <ProductName>Mr. Coffee
|
|
</ProductName> <Hardware>motherboard</Hardware> is Sun Part
|
|
No. <ProductNumber>501-3141</ProductNumber>.
|
|
</Para>
|
|
|
|
<Para>
|
|
Instead of using the Sun-type <Hardware>keyboard</Hardware> and
|
|
<Hardware>mice</Hardware>, <ProductName>JavaStation-1</ProductName>
|
|
uses <Acronym>PC</Acronym>-like <Hardware>PS2</Hardware> parts instead.
|
|
One of the original marketing highlights of the <ProductName>JavaStation
|
|
</ProductName> was that it would use standard <Acronym>PC</Acronym> parts
|
|
wherever possible to keep overall price down.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <Quote>brick</Quote> has four <Hardware>PC-like SIMM</Hardware>
|
|
slots. The <Hardware>SIMMs</Hardware> taken are industry-standard
|
|
60ns, 32-bit, 72-pin, 5V fast page <Hardware>SIMMs</Hardware>,
|
|
installed in pairs. Each slot is capable of holding up to a
|
|
<Hardware>16MB SIMM</Hardware>, bringing the maximum total capacity
|
|
of the unit to 64MB. The <Quote>xx</Quote> in the Sun Option# of the
|
|
unit indicated how much memory the unit shipped with.
|
|
</Para>
|
|
|
|
<Para>
|
|
For video display, the <ProductName>JavaStation-1</ProductName> utilizes
|
|
the <Hardware>Sun TCX framebuffer</Hardware>, capable of 1024x768@70Hz in
|
|
8-bit color. The port connector however, is a <Hardware>standard VGA jack
|
|
</Hardware>, enabling the user to use standard <Acronym>PC</Acronym>
|
|
<Hardware>monitors</Hardware> if desired (again, low cost in mind).
|
|
The <Hardware>on-board audio</Hardware> is a <Hardware>Crystal CS4231 chip
|
|
</Hardware>, and the network interface is the <Hardware>Sun Lance</Hardware>
|
|
10Mbps interface. In addition, the <Quote>brick</Quote> also came with
|
|
a <Hardware>9-pin serial port</Hardware> and <Hardware>1/8" audio out jack
|
|
</Hardware> on its back.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>JavaStation-1</ProductName> was fitted into the Sun
|
|
<Quote>unidisk</Quote> form factor case, and has been seen in a number
|
|
of color schemes. <ProductName>JavaStations</ProductName> have been
|
|
fitted with casings in the white with light blue trim scheme used in
|
|
<Hardware>Sun workstations</Hardware>, as well as the dark blue-grey
|
|
<Quote>new desktop</Quote> scheme. Some say <Quote>JavaStation</Quote>
|
|
and have the Java coffee cup logo written on it, others do not.
|
|
Collectors may wish to collect all case variations.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>JavaStation-1</ProductName> was used in early
|
|
Sun demos, and sold to pilot sites. When first brought out, the
|
|
cost to pilot sites was $699US. This was at a time when <Acronym>PC
|
|
</Acronym>'s were still higher than $1000US. By the end of the pilot
|
|
run, Sun was selling any remaining or used units for $299-$399US, in
|
|
anticipation for its <Quote>real</Quote> <ProductName>JavaStation
|
|
</ProductName> model.
|
|
</Para>
|
|
|
|
<Para>
|
|
See the <ProductName>JavaStation-1</ProductName> at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_front_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_front_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
|
|
<Sect3 id="KrupsDescSection">
|
|
<Title>
|
|
<ProductName>JavaStation-<Acronym>NC</Acronym></ProductName> [<Quote>
|
|
<ProductName>JavaStation-10</ProductName></Quote>] [<Quote>
|
|
<ProductName>Krups</ProductName></Quote>] [<Quote><ProductName>the tower</ProductName></Quote>]
|
|
[<Quote><ProductName>the percolator</ProductName></Quote>] [
|
|
Sun Option No. JK-xx]
|
|
</Title>
|
|
|
|
<Para>
|
|
This model is the second most prevalent <ProductName>JavaStation</ProductName>
|
|
model you are likely to find. When you talk to industry folks about the
|
|
<Quote>JavaStation</Quote>, this is typically the model remembered first.
|
|
Delayed numerous times, the <ProductName>Krups</ProductName> model
|
|
officially went on sale to the general public Mar. 26, 1998 at the annual
|
|
JavaOne conference.
|
|
</Para>
|
|
|
|
<Para>
|
|
Though generation two of the <ProductName>JavaStation</ProductName> line, the
|
|
<ProductName>Krups</ProductName> model was <Emphasis>the JavaStation</Emphasis>
|
|
. Sporting a completely different board design than <ProductName>JavaStation-1
|
|
</ProductName>, <ProductName>Krups</ProductName> establishes what was to be
|
|
the characteristic <ProductName>JavaStation</ProductName> architecture.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Krups</ProductName> is powered by a
|
|
<Hardware>100Mhz MicroSPARC IIep</Hardware> chip, (note the 'p').
|
|
Its mainboard had the internal addition of a <Hardware>PCI bus</Hardware>,
|
|
about a year before this standard bus made its well-publicized
|
|
appearance on the <ProductName>Sun Ultra</ProductName> workstation
|
|
line. The <ProductName>Krups</ProductName> <Hardware>motherboard</Hardware>
|
|
is Sun Part no. <ProductNumber>501-4267</ProductNumber>.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Krups</ProductName> keeps the <Hardware>PS2 keyboard</Hardware>
|
|
and <Hardware>PS2 mouse ports</Hardware> from <ProductName>JavaStation-1
|
|
</ProductName>, keeping in mind the low-cost, interoperable goal of
|
|
generation 1.
|
|
</Para>
|
|
|
|
<Para>
|
|
With the new board design, came new memory chip sockets. Instead of
|
|
<Hardware>SIMMs</Hardware>, the <Quote>tower</Quote> moved to <Hardware>
|
|
168-pin DIMMs</Hardware>. <Hardware>DIMMs</Hardware> had begun to make
|
|
their way from the workstation realm to <Acronym>PC</Acronym>'s in the
|
|
time between generations one and two of the <ProductName>JavaStation
|
|
</ProductName> line, so it was fitting for Sun to switch to
|
|
it in anticipation of their status low-cost commodity memory chips. The
|
|
<Hardware>DIMMs</Hardware> accepted by the <Quote>tower</Quote> are
|
|
<Hardware>168pin, 3.3V unbuffered EDO DIMMs (not SDRAM)</Hardware>. With
|
|
two sockets capable of holding a <Hardware>32MB DIMM</Hardware> each, the
|
|
<ProductName>Krups</ProductName> has a maximum capacity of 64<Acronym>MB
|
|
</Acronym> <Acronym>RAM</Acronym>. As with the <ProductName>JavaStation-1
|
|
</ProductName>, the number <Quote>xx</Quote> in the Sun option number
|
|
refers to the amount of memory shipped with the unit.
|
|
</Para>
|
|
|
|
<Para>
|
|
For video display, the <ProductName>JavaStation-NC</ProductName> utilizes
|
|
the <Hardware>PCI-based IGS C1682 framebuffer</Hardware>,
|
|
capable of 1280x1024@80Hz in 24-bit <Quote>true color</Quote>. This
|
|
is a step up from the 8-bit display on <ProductName>JavaStation-1
|
|
</ProductName>. The port connector remained a <Hardware>standard VGA jack
|
|
</Hardware> like <ProductName>JavaStation-1</ProductName>, enabling the
|
|
user to use standard <Acronym>PC</Acronym> monitors if desired.
|
|
The on-board audio remains a <Hardware>Crystal
|
|
CS4231 chip</Hardware> like <ProductName>JavaStation-1</ProductName>.
|
|
The network interface on <ProductName>Krups</ProductName> is the
|
|
<Hardware>Sun HappyMeal</Hardware> 10/100 Mbps interface, another step
|
|
up from the original offering of <ProductName>JavaStation-1</ProductName>.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <Quote>tower</Quote> came with the <Hardware>9-pin serial port
|
|
</Hardware> and <Hardware>1/8" audio out jack</Hardware> as
|
|
<ProductName>JavaStation-1</ProductName>, but it also added a
|
|
<Hardware>1/8" audio-in jack</Hardware>, to do sound recording with.
|
|
</Para>
|
|
|
|
<Para>
|
|
Another addition in the <ProductName>JavaStation-NC</ProductName> is a
|
|
<Hardware>flash memory SIMM</Hardware>. This allows one to load the
|
|
current revision of the <Acronym>OS</Acronym> onboard, increasing
|
|
boot-speed tremendously.
|
|
</Para>
|
|
|
|
<Para>
|
|
Perhaps the thing most memorable about the <ProductName>JavaStation-NC
|
|
</ProductName> is its case design. The <ProductName>Krups</ProductName>
|
|
comes in an aesthetically appealing casing. The <Hardware>mainboard</Hardware>
|
|
is mounted vertically, and the shell entraps it, giving it the <Quote>tower
|
|
</Quote> or <Quote>percolator</Quote> shape referred to. With the
|
|
streamlined case, the <Hardware>power supply</Hardware> is moved outside
|
|
to small transformer. The <ProductName>Krups</ProductName> unit gives
|
|
off so little heat that there are no onboard cooling fans, making the
|
|
<ProductName>Krups</ProductName> a <Emphasis>dead-silent</Emphasis>
|
|
machine. Imagine the difference in noise when replacing a lab of
|
|
traditional desktops with the <ProductName>Krups</ProductName>!
|
|
This case design earned <ProductName>Krups</ProductName> a<Quote>
|
|
1998 Industrial Design Excellence Award</Quote> from the Industrial
|
|
Designers Society of America. This award announcement is archived
|
|
for read at:
|
|
<Ulink url="http://www.idsa.org/whatis/seewhat/idea98/winners/javastation.htm">
|
|
http://www.idsa.org/whatis/seewhat/idea98/winners/javastation.htm"
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>Krups</ProductName> had an initial base price of $599US,
|
|
$100US cheaper than <ProductName>Mr. Coffee</ProductName>'s rollout price.
|
|
Due to it being the only model formally sold by Sun to the general public,
|
|
this is how <ProductName>Krups</ProductName> is sometimes referred to as
|
|
the only <ProductName>JavaStation</ProductName>, and not one model of a
|
|
product line.
|
|
</Para>
|
|
|
|
<Para>
|
|
See the <ProductName>JavaStation-NC</ProductName> at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_front_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_front_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
<Sect3 id="EspressoDescSection">
|
|
|
|
<Title>
|
|
<ProductName>JavaStation-E</ProductName> [<Quote>Espresso</Quote>]
|
|
[Sun Option No. JE-xx]
|
|
</Title>
|
|
|
|
<Para>
|
|
This model is extremely rare to find. It was never available for
|
|
sale in quantities to either the general public or the initial
|
|
<ProductName>JavaStation</ProductName> deployments, limiting the
|
|
model's production quantity. To call this <Quote>Generation
|
|
Three</Quote> of the <ProductName>JavaStation</ProductName>
|
|
may be improper, as <ProductName>Espresso</ProductName> is nothing like
|
|
the generation three <ProductName>JavaStation</ProductName> written about
|
|
in early Sun literature.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>Espresso</ProductName> was designed as an extension of
|
|
the <ProductName>Krups</ProductName>. It was geared to sites that
|
|
wanted a little bit more functionality and expansion capability from
|
|
their <ProductName>JavaStations</ProductName>: a cross between an
|
|
<Acronym>NC</Acronym> and a workstation.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Espresso</ProductName> is powered by the same
|
|
<Hardware>110Mhz MicroSPARC IIep chip</Hardware> as <ProductName>Krups
|
|
</ProductName>. It's mainboard is similar to <ProductName>Krups</ProductName>,
|
|
with the addition of <Hardware>PCI slots</Hardware> and an <Hardware>IDE
|
|
channel</Hardware> for local hard disks. The <Hardware>IDE</Hardware> on
|
|
<ProductName>Espresso</ProductName> was not enabled in the demo units.
|
|
Those who have tried to make it work have concluded the wiring is incorrect,
|
|
and it requires a hardware rework to get working.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Espresso</ProductName> continues with the <Hardware>PS2 keyboard
|
|
</Hardware> and <Hardware>PS2 mouse ports</Hardware> from <ProductName>
|
|
Mr. Coffee</ProductName> and <ProductName>Krups</ProductName>.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Espresso</ProductName> uses the same <Hardware>168-pin,
|
|
3.3V unbuffered EDO DIMMs</Hardware> as <ProductName>Krups</ProductName>.
|
|
The maximum amount of memory for Espresso is reported to be 96MB.
|
|
As with the <ProductName>Mr. Coffee</ProductName> and <ProductName>Krups
|
|
</ProductName>, the number <Quote>xx</Quote> in the Sun option number
|
|
refers to the amount of memory shipped with the unit.
|
|
</Para>
|
|
|
|
<Para>
|
|
For video display, the <ProductName>Espresso</ProductName> uses the
|
|
<Hardware>PCI-based IGS C2000 framebuffer</Hardware>, along with the same
|
|
standard <Hardware>VGA port connector</Hardware> as <ProductName>Krups
|
|
</ProductName> and <ProductName>Mr. Coffee</ProductName>. The
|
|
on-board audio remains a <Hardware>Crystal CS4231 chip</Hardware> like
|
|
<ProductName>Krups</ProductName>, and the network interface remains a
|
|
<Hardware>Sun HappyMeal</Hardware> 10/100 Mbps interface like
|
|
<ProductName>Krups</ProductName> as well.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Espresso</ProductName> came with the <Hardware>9-pin serial
|
|
port</Hardware> and <Hardware>1/8" audio out</Hardware> and
|
|
<Hardware>1/8" audio in</Hardware> jacks of <ProductName>Krups</ProductName>,
|
|
and a new addition of a <Hardware>parallel port</Hardware>, and a second
|
|
9-pin serial port. <ProductName> Espresso</ProductName> also comes
|
|
with the <Hardware>flash memory</Hardware> to load your <Acronym>OS</Acronym>
|
|
on and bypass the network boot cycle.
|
|
</Para>
|
|
|
|
<Para>
|
|
One new addition to the <ProductName>Espresso</ProductName> is a
|
|
<Hardware>smart card slot</Hardware>.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>Espresso</ProductName> comes in a <Quote>pizza box</Quote>
|
|
style case like the old <ProductName>Sun SparcStations</ProductName>, only
|
|
a little taller, and not quite as wide.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <ProductName>Espresso</ProductName> was never sold to the public. There
|
|
was an internal testing period at Sun, but the units never went into
|
|
mass-production.
|
|
</Para>
|
|
|
|
<Para>
|
|
One <ProductName>Espresso</ProductName> user mentioned he now uses
|
|
his unit as both a server and router, with the addition of an
|
|
<Hardware>IDE disk</Hardware> and <Hardware>3C905 ethenet card</Hardware>,
|
|
demonstrating the expandability of this unit.
|
|
</Para>
|
|
|
|
<Para>
|
|
See the <ProductName>JavaStation-E</ProductName> at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_front_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_front_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
<Sect3 id="JavaEngineDescSection">
|
|
<Title>
|
|
<ProductName>JavaEngine-1</ProductName> [<Quote>JE-1</Quote>]
|
|
</Title>
|
|
|
|
<Para>
|
|
Like the <ProductName>Espresso</ProductName>, this unit is also an extremely
|
|
rare find.
|
|
</Para>
|
|
|
|
<Para>
|
|
This unit is supposed to be of similar board design to the Krups, but in
|
|
an ATX form factor, with soldered onboard flash memory, and with a
|
|
regular SVGA video chipset.
|
|
</Para>
|
|
|
|
<Para>
|
|
Gleb Raiko <Email>raiko@niisi.msk.ru)</Email> with the help of
|
|
Vladimir Roganov <Email>roganov@niisi.msk.ru</Email> did initial
|
|
the Linux kernel support on <Quote>JE-1</Quote>. Pete Zaitcev
|
|
<Email>zaitcev@metabyte.com</Email> later obtained a <Quote>JE-1</Quote>
|
|
unit and restored full support in <Application>Linux kernel 2.3.x+
|
|
</Application>.
|
|
</Para>
|
|
|
|
<Para>
|
|
As the author of this document has never seen a <Quote>JE-1</Quote>,
|
|
submissions from the public are welcome.
|
|
</Para>
|
|
|
|
<Para>
|
|
See the <ProductName>JavaEngine-1</ProductName> at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/je1_overhead_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/je1_overhead_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
<Sect3 id="DoverDescSection">
|
|
<Title>
|
|
The <Quote>Dover</Quote> <ProductName>JavaStation</ProductName> model
|
|
</Title>
|
|
|
|
<Para>
|
|
This is another box which does not exist officially outside of Sun.
|
|
Little is known of it.
|
|
</Para>
|
|
|
|
<Para>
|
|
A nice speculation would be that the next step in the <ProductName>
|
|
JavaStation</ProductName> evolution was more of a low-cost <Acronym>NC
|
|
</Acronym> based on <Acronym>PC</Acronym> boards. The
|
|
<Hardware>PCI</Hardware>, <Hardware>PS2</Hardware>, and <Hardware>SVGA
|
|
</Hardware> (as in <Quote>JE-1</Quote>) was already present. The
|
|
next step would have been a non-proprietary, industry-standard mainboard.
|
|
Since nobody's talking, this is all speculation.
|
|
</Para>
|
|
|
|
<Para>
|
|
However, the document author has been informed it is fully supported
|
|
by the <Application>Linux kernel</Application>, should you be lucky
|
|
enough to find one.
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
|
|
<Sect3 id="GenerationThreeDescSection">
|
|
<Title>
|
|
The Generation 3 <Quote>Super JavaStation</Quote>
|
|
</Title>
|
|
|
|
<Para>
|
|
Sun originally envisioned three generation models of the <ProductName>
|
|
JavaStation</ProductName>: <ProductName>Mr. Coffee</ProductName>, the
|
|
<ProductName>Krups</ProductName>, and the <Quote>Super JavaStation</Quote>.
|
|
Generation Three was billed in early literature as going to be the fastest
|
|
<ProductName>JavaStation</ProductName> offerred, with a high-speed
|
|
<Hardware>CPU</Hardware> and a <Hardware>JavaChip co-processor</Hardware>
|
|
to translate <Application>Java-bytecode</Application> in hardware.
|
|
</Para>
|
|
|
|
<Para>
|
|
All indications are that it never got beyond the mental stage,
|
|
and was more of a marketing myth than anything else.
|
|
</Para>
|
|
|
|
<Para>
|
|
First, consider that the cost of higher performance <Acronym>CPU</Acronym>
|
|
as a factor. If Sun packaged a high-performance <Acronym>CPU</Acronym> into
|
|
a <ProductName>JavaStation</ProductName>, the low-cost advantage of an
|
|
<Acronym>NC</Acronym> goes away.
|
|
</Para>
|
|
|
|
<Para>
|
|
Next, Sun did have their <Hardware>PicoJava chip</Hardware> available to
|
|
decode <Application>Java bytecode</Application>, but word is the performance
|
|
was not as good as expected, and the <Hardware>JavaChip</Hardware> project
|
|
was shelved in the Summer of 1998, not long after <ProductName>Krups
|
|
</ProductName> was formally released.
|
|
<!-- <Comment>ed note: verify date.</Comment> -->
|
|
The <Quote>Dover</Quote> project was being worked on, but the <Quote>Corona
|
|
</Quote> project which would go on to become the <ProductName>Sun Ray
|
|
</ProductName> was the final nail in the <ProductName>JavaStation</ProductName>
|
|
's coffin.
|
|
</Para>
|
|
|
|
<Para>
|
|
So all indications are that this model is a piece of <Quote>vaporware</Quote>.
|
|
It is included here though, for the sake of completeness.
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
<Sect3 id="JavaStationProtoDescSection">
|
|
<Title>
|
|
The Early JavaStation Prototype?
|
|
</Title>
|
|
|
|
<Para>
|
|
After the original publishing of this HOWTO, word of one more
|
|
"JavaStation" model has surfaced. John of bodoman.com, a reseller
|
|
of JavaStation equipment, chimed in that he has a motherboard of a
|
|
pre-JavaStation machine. The board used a 68040 CPU. Apparently
|
|
the company that produced it was bought out by Sun and its
|
|
design became a basis for the JavaStation line.
|
|
</Para>
|
|
|
|
<Para>
|
|
As this is the first mention of this prototype machine, any further
|
|
info is appreciated.
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="WhyLinuxSection">
|
|
<Title>Reasons for Running <Application>Linux</Application> and <Acronym>NC
|
|
</Acronym> Myths Dispelled</Title>
|
|
|
|
<Para>
|
|
It turns out that <Application>Linux</Application> makes the
|
|
<ProductName>JavaStations</ProductName> perform more than adequately
|
|
on the desktop. Thanks to the dedicated work of the Linux
|
|
developer community, the <ProductName>JavaStations</ProductName>
|
|
offer users the low-cost, zero-admin, versatile desktop
|
|
<Acronym>NC</Acronym>'s they were originally billed to be, but with
|
|
the added freedom granted by the <Application>Linux OS</Application>.
|
|
</Para>
|
|
|
|
<Para>
|
|
While low-cost <Acronym>PC</Acronym>'s now eclipse the <ProductName>JavaStation
|
|
</ProductName> in terms of default CPU speed and RAM size, the
|
|
<ProductName>JavaStations</ProductName> running <Application>Linux</Application> are still well-suited for a number of tasks:
|
|
</Para>
|
|
|
|
<ItemizedList>
|
|
<ListItem>
|
|
<Para>
|
|
Diskless X-Terminal. (Gives the <ProductName>JavaStations</ProductName> the
|
|
capability of the <ProductName>Sun Xterminal 1</ProductName> hardware that
|
|
they replaced).
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
The <Acronym>NC</Acronym> solution, Linux-style: local X + a java-capable
|
|
browser can make the <ProductName>JavaStations</ProductName>
|
|
perform like they did with <Application>JavaOS</Application>/<Application>
|
|
HotJava</Application>, only <Emphasis>many</Emphasis> times faster.
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
A beowulf node, or a dedicated <Application>RC5</Application>/<Application>
|
|
SETI@HOME</Application> client. The <ProductName>JavaStation</PRoductName>
|
|
running <Application>Linux</Application> makes a stable, long-lasting
|
|
number cruncher.
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
A small, standalone machine. While a task more suited on today's
|
|
low-cost machines, there's not much that prevents the <ProductName>
|
|
JavaStation</ProductName> from performing as a full-fleged
|
|
standalone <Application>UNIX</Application> machine by itself.
|
|
Just remember to set your expectations appropriately when doing so;
|
|
they were <Quote>low-budget</Quote> clients when they were sold, and
|
|
should not be directly compared to today's workstation offerings.
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
A small router and server, particularly with the <ProductName>Espresso
|
|
</ProductName> model decked out with added IDE disks and NIC.
|
|
</Para>
|
|
</ListItem>
|
|
</ItemizedList>
|
|
|
|
<Para>
|
|
In all of the above scenarios, there is little to no maintenance of
|
|
the machine once configured properly. Such is the advantage of the
|
|
<Acronym>NC</Acronym> hardware.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>JavaStations</ProductName> run so much better with
|
|
<Application>Linux</Application> than <Application>JavaOS</Application>,
|
|
one would think that even Sun should have offered it as an option.
|
|
Unfortunately, Sun has killed the line in favor of the <ProductName>Sun Ray
|
|
</ProductName>. While the performance of the <ProductName>Sun Ray
|
|
</ProductName> is good, keep in mind it is not a dedicated computing
|
|
device and is little more than a graphics display hanging off your Sun
|
|
server, which can give you some unexpected features (translation:
|
|
<Quote>brand-name product lock</Quote>). The performance on
|
|
the <ProductName>JavaStations</ProductName> with <Application>Linux
|
|
</Application> will be similar to what you can get with a <ProductName>Sun
|
|
Ray</ProductName>, but if ever you want to do something different with
|
|
your machines, you have the flexibility to do so with the
|
|
<ProductName>JavaStations</ProductName>.
|
|
</Para>
|
|
|
|
<Para>
|
|
Lastly, if you're thinking of switching to <Hardware>diskless Xterminals
|
|
</Hardware> on your network, you might consider the <ProductName>JavaStations
|
|
</ProductName> over stripped down <Acronym>PC</Acronym>'s. The hardware
|
|
is standardized, smaller, and you do not need to worry about burning boot
|
|
<Acronym>PROM</Acronym>'s and the like.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="JavaStationDeathSection">
|
|
<Title>Why <ProductName>JavaStations</ProductName> are No Longer
|
|
Produced</Title>
|
|
|
|
<Para>
|
|
Sun's official stance is that the <ProductName>JavaStation</ProductName>
|
|
line was terminated in favor of the new <ProductName>Sun Ray</ProductName>
|
|
line. A trip to the former <ProductName>JavaStation</ProductName>
|
|
section of Sun's website at <ULink url="http://www.sun.com/javastation">
|
|
http://www.sun.com/javastation</ULink> verifies this formal positioning.
|
|
</Para>
|
|
|
|
<Para>
|
|
As the <ProductName>Sun Ray</ProductName> is not an <Acronym>NC</Acronym>
|
|
in the traditional sense (it is merely a framebuffer, and not a
|
|
computing device itself), there is no explanation why the two do not co-exist.
|
|
</Para>
|
|
|
|
<Para>
|
|
In talking to the users of the <ProductName>JavaStations</ProductName>
|
|
in the pre-Linux era, you will find strong opinions as to why
|
|
the <ProductName>JavaStations</ProductName> are no more. The common
|
|
thread in almost all opinions collected is that the software provided
|
|
by Sun was inadequete for a production environment. Here are
|
|
collected opinions from users of the Sun-provided software, included
|
|
with their permission:
|
|
</Para>
|
|
|
|
<BlockQuote>
|
|
<Attribution>Dr. Alex Ryba, Professor at Marquette University
|
|
<Email>alexr@mscs.mu.edu</Email>
|
|
</Attribution>
|
|
<Para>
|
|
I only used the Java Stations last summer while teaching 51 and 55/154.
|
|
GoJoe was incredibly slow and I seem to remember having to login to several
|
|
different screens and browsers just to be able to start anything.
|
|
</Para>
|
|
<Para>
|
|
I had to apologize to my students for the slow and inconvenient
|
|
machines --- I remember making some jokes about technological progress.
|
|
</Para>
|
|
</BlockQuote>
|
|
|
|
<Para></Para> <!--Be sure there's space -->
|
|
|
|
<BlockQuote>
|
|
<Attribution>Dr. Mark Barnard, Professor at Marquette University
|
|
<Email>markb@mscs.mu.edu</Email>
|
|
</Attribution>
|
|
<Para>
|
|
Well, of course the old JavaStations were practically
|
|
unusable. It's not a matter of just my opinion; we used to
|
|
have CU 310 full of students using the Xterms all the time.
|
|
As soon as the JavaStations appeared there were NO STUDENTS
|
|
in there at all. The JavaStations killed CU 310. Now that
|
|
the JavaStations are (thanks to you) back up to speed,
|
|
students are beginning to come back, but they've gotten out
|
|
of the habit of working in our lab, and are used to working
|
|
on their own in the dorms. I think this is a big loss --
|
|
they don't learn anything from talking to each other in the
|
|
labs anymore.
|
|
</Para>
|
|
<Para>
|
|
Ghostview was slow, etc, but even vi was too slow. I am
|
|
used to typing quickly, and when the cursor can't keep up
|
|
with me, I can't handle it. I would also have worked at home
|
|
if I didn't have to be here. And there were those annoying
|
|
red squares left all over the Xterm window when you were in
|
|
vi. I had to type ^L every few lines to get rid of them to
|
|
see what I was typing... The pits. The whole setup made
|
|
me lose a lot of respect for Sun (although I try to separate
|
|
the different product lines as much as possible); I also
|
|
think Sun will not get respect for hyping a product like the
|
|
JavaStation so strongly, and then just dumping it. I would
|
|
wonder why anyone would not just dump Sun...
|
|
</Para>
|
|
|
|
<Para>
|
|
BTW, the JavaStations, now that they are fast, are quite fine.
|
|
I really like mine, and don't see why they aren't a viable
|
|
product.
|
|
</Para>
|
|
|
|
</BlockQuote>
|
|
|
|
<Para></Para> <!--Be sure there's space -->
|
|
|
|
<BlockQuote>
|
|
<Attribution>Robert Dubinski, Computer Systems Technician at Marquette
|
|
University
|
|
<Email>tech@mscs.mu.edu</Email>
|
|
</Attribution>
|
|
|
|
<Para>
|
|
I believe that it was the triple combination of Sun's JavaOS, the
|
|
Hotjava software, and GraphOn's GoJoe X-connectivity software which
|
|
ultimately doomed the JavaStation line.
|
|
</Para>
|
|
|
|
<Para>
|
|
JavaOS was always sluggish in performance for us. It was rated as
|
|
having one of the slowest Java VMs by a ZDNet Online Magazane review at
|
|
<ULink url="http://www.zdnet.com/pcmag/features/javaguide/jfgr10.htm">
|
|
http://www.zdnet.com/pcmag/features/javaguide/hfgr10.htm</ULink>
|
|
. I speculate this was the the main cause of delaying the
|
|
JavaStation's formal public release to April 1998.
|
|
</Para>
|
|
|
|
<Para>
|
|
JavaOS also always lagged behind the current Java developer
|
|
spec (ie running Java 1.0 when Java 1.1 was prevalent, and Java 1.1
|
|
when Java 1.2 was issued). It was tough explaining to students why
|
|
the books they were buying were all using the new event-model of Java 1.1,
|
|
but they could not program to it and have it run on <Quote>the Java machine
|
|
</Quote>. There were also some implementation problems with some of the
|
|
AWT peers which sometimes made programming across
|
|
platforms difficult.
|
|
</Para>
|
|
|
|
<Para>
|
|
These performance and implementation problems were never addressed in
|
|
subsequent build of JavaOS for the duration we ran it. I believe the
|
|
last edition we had used a Java 1.1.4 runtime, when we had a Java 1.2
|
|
development kit on the server.
|
|
</Para>
|
|
|
|
<Para>
|
|
The HotJava browser software suffered from not being able to handle
|
|
web standards HTML4, cascading style-sheets, or the ECMA javascript.
|
|
All of these standards were employed in commercial sites at the time,
|
|
resulting in many sites that weren't viewable by the JavaStations.
|
|
The Hotjava Browser engine also had serious printing problems with
|
|
certain webpages, some of which appeared on Sun's own website!
|
|
</Para>
|
|
|
|
<Para>
|
|
The HotJava Views task selector software also was rough. Users could have
|
|
multiple apps running, but only one displayed at a time. Manipulation
|
|
of multiple window panes was difficult (no minimization, no quick list to
|
|
all apps, resizing not always possible). Flexibility users had grown
|
|
accustomed to was tossed out in favor of this task-selector approach.
|
|
On Sun's Java website there was a page boasting of a committee formed
|
|
that decided this was the <Quote>right way</Quote> to make a desktop.
|
|
Tell that to our users.
|
|
</Para>
|
|
|
|
<Para>
|
|
The GraphOn Go-Joe software was by far the most damaging piece of software
|
|
to the JavaStation line. This was an X-connectivity software Sun licensed
|
|
from GraphOn to give users access to the Solaris servers' X apps.
|
|
The connectivity worked via a daemon installed on the Solaris server,
|
|
which was connected to by a Java connectivity applet on the NC side. This
|
|
small applet (only about 250K) simply threw up the latest display state
|
|
and sent back to the daemon the mouse and keyboard strokes of the user.
|
|
Unlike Xterminals though, the actual Xserver process was spawned and
|
|
communicated with on the remote server-side by the daemon. Communication
|
|
between the GraphOn client applet and the server daemon was supposedly
|
|
done by a patented protocol to compress communication and speed things up.
|
|
However, the performance of X under Go-Joe was terribly sluggish, with
|
|
horrible refresh rates (10-seconds for some page scroll refreshes).
|
|
Many sites operators I spoke to elected to not run the Go-Joe software
|
|
past a trial period for this reason. We had to run it though, as our
|
|
users were heavily X dependant. Alternatives like Weird/X were not
|
|
available at this time, and VNC proved not up to snuff given the slow
|
|
JavaOS VM.
|
|
</Para>
|
|
|
|
<Para>
|
|
This performance in Go-Joe alone was enough to give uninformed users the
|
|
impression that the JavaStation was an underpowered machine, especially
|
|
when placed side-by-side with the low-cost, end-of-lifed Sun Xterminal 1
|
|
hardware it was meant to replace. Our students left labs in droves,
|
|
faculty were upset, and giving demos to outsiders was downright
|
|
embarrassing. In reality the hardware was solid and stable, but
|
|
was hampered by this new, untested OS and new, untested applications
|
|
running on a new, untested hardware architecture. This triple-threat
|
|
combination, and Sun's timeline for fixing the problems is what
|
|
I feel truly doomed the JavaStation.
|
|
</Para>
|
|
|
|
<Para>
|
|
I remember that in 1998, Sun publicized that it had rolled out 3000
|
|
of these machines in-house, including one on Scott McNealy's desk.
|
|
One who has used the JavaStations with the Sun software would have
|
|
to wonder whether he ever turned it on and used it solely for a day?
|
|
Had he done so, I'm sure he'd demand things be done differently.
|
|
Why Sun never ported and released its tried and tested XTerminal
|
|
software to the JavaStation, or even a mini-Solaris, remained a
|
|
mystery to us the whole time before we switched to Linux. It was
|
|
only after we moved to Linux and the JavaStation line was formally killed
|
|
by Sun when we learned from some inside Sun sources that Solaris
|
|
actually was ported to Mr. Coffee, but released only internally at Sun.
|
|
As a heavily invested customer site who had begged for help, this was
|
|
not only disheartening, but insulting to discover.
|
|
</Para>
|
|
|
|
<Para>
|
|
Lastly, the customer support we received at the time was horrible. We pled
|
|
our case on more than a few occassions, but requests always seemed to
|
|
fall on deaf ears. Calling up SunSolve for JavaStation help always
|
|
resulted in a transfer to a Java <Emphasis>Language</Emphasis> engineer.
|
|
If the Sun employees do not know their own products, that's a problem!
|
|
</Para>
|
|
|
|
<Para>
|
|
>From our view, there no doubt was politics involved in this, and as
|
|
customers, we were the ones to bear the results of this.
|
|
We continue using Sun equipment when it comes to the proven models
|
|
like the Enterprise-class servers and diskarrays, but on the
|
|
latest low-cost desktop offerings, we will be forever cautious
|
|
given the JavaStation history.
|
|
</Para>
|
|
|
|
<Para>
|
|
Linux now proves the JavaStations are adequate machines, and Sun could
|
|
take this bait and go with it. If they sell the JavaStations for $250
|
|
a piece and the JavaStation running a proven OS like Linux (or Solaris)
|
|
with proven apps (X), the JavaStation makes for a great network appliance.
|
|
The recent NetPliance I-Opener Linux hack and subsequent controversy
|
|
proves there certainly is a market for this type of low-cost device.
|
|
</Para>
|
|
|
|
</BlockQuote>
|
|
|
|
<Para>
|
|
More comments and rebuttal statements by Sun employees are always welcome.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="WherePurchaseSection">
|
|
<Title>Where to Purchase a JavaStation</Title>
|
|
|
|
<Para>
|
|
Since Sun has canceled production of the <ProductName>JavaStation</ProductName>
|
|
line, it no longer sells them through their official channels. It should
|
|
be possible to order any remaining <ProductName>JavaStation</ProductName>
|
|
stock from the Sun Spares site at <ULink url="http://www.sunspares.com">
|
|
http://www.sunspares.com</ULink>.
|
|
</Para>
|
|
|
|
<Para>
|
|
Your best bet to get <ProductName>JavaStations</ProductName> though is
|
|
out on the open market. Educational institutions which received a
|
|
handful from Sun as demo units are now trying to offload them any way
|
|
they can. Search around the auction sites like Ebay and Yahoo Auctions,
|
|
and you should be able to turn some up.
|
|
</Para>
|
|
|
|
<Para>
|
|
Lastly, a great resource for <ProductName>JavaStations</ProductName> is
|
|
<Quote>Bodoman's JavaStation site</Quote> at:
|
|
<ULink url="http://www.bodoman.com/javastation/javastation.html">
|
|
http://www.bodoman.com/javastation/javastation.html</ULink>
|
|
. Here you can find <ProductName>Mr. Coffee</ProductName> and
|
|
<ProductName>Krups</ProductName> models. As of June 15th 2000, Bodoman
|
|
was selling out of Krups models and was thinking about selling all
|
|
remaining Mr. Coffees to a different reseller. If you want a JavaStation
|
|
from BodoMan, contact him now!
|
|
</Para>
|
|
|
|
<Para>
|
|
The current going price as of June 2000 for a <ProductName>Mr. Coffee
|
|
</ProductName> model without memory or monitor is about $50-100US, while
|
|
the <ProductName>Krups</ProductName> goes for about $85-100US. Anything
|
|
more is typically due to memory pre-installed. Since the Taiwanese
|
|
earthquake of 1999, memory prices have fluctuated on a near daily basis,
|
|
making it difficult to pin a price range down in this manner.
|
|
</Para>
|
|
|
|
<Para>
|
|
You might also get lucky and stumble on someone who wants to get rid of
|
|
<ProductName>JavaStations</ProductName> cheap. One reader reported
|
|
finding a 32-MB Krups for $75 in a pristine unopened box.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
<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, the <Hardware>Sun SparcLinux server</Hardware> is needed
|
|
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.
|
|
</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 example kernels and filesystems for you to use,
|
|
eliminating your need of 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>
|
|
</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 the Metabyte website at:
|
|
<ULink url="http://www.metabyte.com/~zaitcev/linux/">
|
|
http://www.metabyte.com/~zaitcev/linux</ULink>.
|
|
</Para>
|
|
|
|
<Para>
|
|
The current version at the time of this writing is <Quote>13</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://www.mscs.mu.edu/~tech/Linux_on_JS/Files/proll_13.tar.bz2">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/proll_13.tar.bz2</ULink>
|
|
(HOWTO website mirror - version 13)
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="FSTypeDescSection">
|
|
<Title>Decide on your Filesystem: <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>.
|
|
</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>
|
|
</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.
|
|
</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> and make use of its advantages.
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="SupportSitesSection">
|
|
<Title>Support Sites to Check Out: Metabyte</Title>
|
|
|
|
<Para>
|
|
One website to keep on reference when you begin thinking about
|
|
putting Linux on your JavaStation is Pete Zaitcev's website at:
|
|
<ULink url="http://www.metabyte.com/~zaitcev/linux">
|
|
http://www.metabyte.com/~zaitcev/linux</ULink>, referenced
|
|
throughout this document as the <Quote>Metabyte server</Quote>.
|
|
Here you will find the latest version of PROLL and many low-level
|
|
details about dealing with the JavaStations.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
|
|
<Sect1 id="KernelBuildChapter">
|
|
<Title>Build Your Kernel</Title>
|
|
|
|
<Sect2 id="BeforeBeginningSection">
|
|
<Title>Before you begin</Title>
|
|
|
|
<Para>
|
|
This chapter assumes you wish to compile your own <Application>Linux
|
|
</Application> kernel for the <ProductName>JavaStation</ProductName>.
|
|
It assumes you already know how to compile <Application>Linux</Application>
|
|
kernels in general, perhaps on <Acronym>PC</Acronym>, a <Acronym>SPARC
|
|
</Acronym> server running <Application>Linux</Application>, or any of
|
|
the other <Application>Linux</Application> ports. If not, read the
|
|
Kernel-HOWTO and the README file of your kernel source.
|
|
</Para>
|
|
|
|
<Para>
|
|
Compiling a kernel for a <ProductName>JavaStation</ProductName> is not
|
|
much different than compiling a <Application>Linux kernel</Application>
|
|
elsewhere. You just need to know the right options to pick. In general,
|
|
you're compiling for a <Hardware>Sun4M class architecture</Hardware>, and
|
|
enabling <ProductName>JavaStation</ProductName>-specific options. The
|
|
following sections in this chapter will take you through the steps.
|
|
</Para>
|
|
|
|
<Para>
|
|
While it may be possible to compile the <ProductName>JavaStation</ProductName>
|
|
-enabled kernel on alternate platforms, this HOWTO assumes you do it on a
|
|
<Hardware>Linux/Sparc based server</Hardware> running in 32-bit mode.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="WorkIn32BitModeSection">
|
|
<Title>Make sure you use 32-bit mode</Title>
|
|
|
|
<Para>
|
|
When compiling your own <ProductName>JavaStation</ProductName>-capable
|
|
kernel, you need to make sure the Sun server you are working on is set
|
|
to 32-bit mode. So, if you're on an Ultra-class machine, be sure you
|
|
first switch to 32-bit mode before you begin compiling.
|
|
</Para>
|
|
|
|
<Para>
|
|
To check what mode you're in, do a <UserInput>uname -a</UserInput>. If it
|
|
says <Quote>sparc</Quote>, you're in 32-bit mode and don't have to do
|
|
anything. If it reports <Quote>sparc64</Quote>, then you should perform
|
|
a <UserInput>sparc32 bash</UserInput> first to switch to 32-bit mode. A
|
|
subsequent <UserInput>uname -a</UserInput> should reflect the change.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="KernelVersionSupportSection">
|
|
<Title>Supported <Application>Linux Kernel</Application> Versions</Title>
|
|
|
|
<Para>
|
|
The kernel source revision you should use depends on which model of
|
|
<ProductName>JavaStation</ProductName> you have.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Mr. Coffee</ProductName> support has worked since about
|
|
kernel version 2.2.5, and definitely works out of the box with the
|
|
<Application>RedHat 6.0+/SPARC distribution kernels</Application>.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ProductName>Krups</ProductName> support did not work well out of the
|
|
box until the latter 2.3.x kernel cycle. Pete Zaitcev <Email>zaitcev@metabyte.com</Email> added <ProductName>Krups</ProductName> support in the early 2.3.x
|
|
sequence, but the <Hardware>MMU</Hardware> changes to the 32-bit <Application>
|
|
SPARC kernel</Application> kept it from compiling cleanly until later on.
|
|
The kernel is known to compile cleanly with the Mar. 17 CVS kernel, and
|
|
should compile cleanly with any 2.3.99pre3+ version kernel. <ProductName>
|
|
Krups</ProductName> support has been backported by Varol Kapton <Email>
|
|
varol@ulakbim.gov.tr</Email>, and it is fully supported in the 2.2.15-prepatch
|
|
versions.
|
|
</Para>
|
|
|
|
<Para>
|
|
By the time this document gets widespread exposure, it is hoped that the
|
|
2.4.x stable kernel cycle will be ready, at which time any 2.4.x kernel
|
|
should compile cleanly with support for the entire <ProductName>JavaStation
|
|
</ProductName> line.
|
|
</Para>
|
|
|
|
<Para>
|
|
If you can not get a kernel to compile, you should try the samples pointed
|
|
to by this document.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="RequiredKernelConfigOptionsSection">
|
|
<Title>Required Kernel Configuration Options</Title>
|
|
<Para>
|
|
When you do your <UserInput>make config</UserInput> command to enter the
|
|
kernel configuration stage, there are a few things you are required to
|
|
enable:
|
|
</Para>
|
|
|
|
<Para>
|
|
For all <ProductName>JavaStations</ProductName>, you want to enable
|
|
<Acronym>PCI</Acronym> support:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_PCI=y
|
|
</Screen>
|
|
|
|
<Para>
|
|
Don't forget your mouse:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_BUSMOUSE=y
|
|
CONFIG_SUN_MOUSE=y
|
|
</Screen>
|
|
|
|
<Para>
|
|
You'll want video, done with the <Application>Linux framebuffer interface</Application>:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_FB_TCX=y (for Mr. Coffee)
|
|
CONFIG_FB_PCI=y
|
|
CONFIG_FB_IGA=y (for Krups/Espresso)
|
|
</Screen>
|
|
|
|
<Para>
|
|
Audio is done with the <Hardware>Crystal Audio 4231 chipset</Hardware>:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_SPARCAUDIO=y
|
|
CONFIG_SPARCAUDIO_CS4231=y
|
|
</Screen>
|
|
|
|
<Para>
|
|
Don't forget your network interface:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_SUNLANCE=y (Mr. Coffee)
|
|
CONFIG_HAPPYMEAL=y (Krups/Espresso)
|
|
</Screen>
|
|
|
|
<Para>
|
|
You'll no doubt need to support a filesystem:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_EXT2_FS=y
|
|
</Screen>
|
|
|
|
<Para>
|
|
You'll want <Acronym>IP</Acronym> autoconfiguration, and
|
|
<Acronym>RARP</Acronym>/<Acronym>BOOTP</Acronym> support:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_IP_PNP=y
|
|
CONFIG_IP_PNP_BOOTP=y
|
|
CONFIG_IP_PNP_RARP=y
|
|
</Screen>
|
|
|
|
<Para>
|
|
When doing the <Quote>NFS-Root</Quote> filesystem configuration, you will
|
|
need both <Acronym>NFS</Acronym> and <Acronym>NFS</Acronym>-Root support:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_NFS_FS=y
|
|
CONFIG_ROOT_NFS=y
|
|
</Screen>
|
|
|
|
<Para>
|
|
When doing the <Quote>Embedded-Root</Quote> filesystem, configure both
|
|
<Acronym>RAM</Acronym> disks and <Quote>initial ramdisk</Quote> support:
|
|
</Para>
|
|
|
|
<Screen>
|
|
CONFIG_BLK_DEV_RAM=y
|
|
CONFIG_BLK_DEV_INITRD=y
|
|
</Screen>
|
|
|
|
|
|
<Para>
|
|
You can get a working <Quote>.config</Quote> file which has these options
|
|
set later in this chapter.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="EmbeddedRootFSPatchSection">
|
|
<Title>Necessary Patch for <Quote>Embedded-Root</Quote> FS Configurations</Title>
|
|
|
|
<Para>
|
|
If you have decided to go with the <Quote>Embedded-Root</Quote> filesystem
|
|
option, you will want to make a patch to the <Acronym>RAM</Acronym>disk
|
|
driver source first.
|
|
</Para>
|
|
|
|
<Para>
|
|
The default size of a <Acronym>RAM</Acronym> disk when using the <Acronym>RAM
|
|
</Acronym>disk driver is 4 <Acronym>MB</Acronym>. Chances are that you will
|
|
want an embedded filesystem of more than that size, particularly when you
|
|
start thinking about running an <Application>X server</Application>, or
|
|
including a <Application>Java</Application> runtime.
|
|
</Para>
|
|
|
|
<Para>
|
|
You can do this change by yourself, or by using the patch pointed to below.
|
|
The change is a one-line edit in the file
|
|
<LINUXROOT>/drivers/block/rd.c . Look for a line that says:
|
|
</Para>
|
|
|
|
<Screen>
|
|
int rd_size = 4096; /* Size of the RAM disks */
|
|
</Screen>
|
|
|
|
<Para>
|
|
and change it to the size of the <Acronym>RAMdisk</Acronym> you wish.
|
|
Typically, most embedded systems are under 16 <Acronym>MB</Acronym>, so
|
|
a common edit is to change the line to:
|
|
</Para>
|
|
|
|
<Screen>
|
|
int rd_size = 4 * 4096; /* Size of the RAM disks */
|
|
</Screen>
|
|
|
|
<Para>
|
|
If you can not do this, the patch below makes the edit for you.
|
|
</Para>
|
|
|
|
<Para>
|
|
4MB to 16MB kernel patch file is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/ramdisk_patch">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/ramdisk_patch
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
It should be noted in this section that there is currently a limit on the
|
|
size of <Application>Linux</Application> boot image for all
|
|
<ProductName>JavaStation</ProductName> models, due to the implementation
|
|
of <Application>PROLL</Application>. This limit is technically 8
|
|
<Acronym>MB</Acronym>. This topic is mentioned again in
|
|
the <Quote>TroubleShooting</Quote> section of this document.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="BuildTheKernelSection">
|
|
<Title>Build the <ProductName>JavaStation</ProductName>-Ready Kernel</Title>
|
|
|
|
<Para>
|
|
To build the kernel, you type <UserInput>make vmlinux</UserInput>. If you
|
|
come from an <Hardware>x86 </Hardware> Linux background, you might be
|
|
surprised that you do not perform a <UserInput>make bzImage</UserInput>
|
|
or <UserInput>make zImage</UserInput>. Do not be alarmed: this command
|
|
is correct.
|
|
</Para>
|
|
|
|
<Para>
|
|
When the compile is finished, you will find a file named <Quote>vmlinux
|
|
</Quote> in the kernel source root directory. You are almost ready to
|
|
put this kernel to use.
|
|
</Para>
|
|
|
|
<Para>
|
|
You need to make one more change to your kernel before it is ready for
|
|
use. You need to convert it from <Acronym>ELF</Acronym> to <Acronym>AOUT
|
|
</Acronym> executable format. You can do this with the <Quote>elftoaout
|
|
</Quote> utility included in most <Application>Linux/SPARC</Application>
|
|
distributions.
|
|
</Para>
|
|
|
|
<Para>
|
|
To convert your kernel image to the <Acronym>AOUT</Acronym> executable format,
|
|
you issue the command:
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>elftoaout -o vmlinux.aout vmlinux </UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
You will probably now want to rename the image file to a longer name
|
|
which includes the current date and kernel revision you used, so as not
|
|
to get confused with when you have multiple boot kernel images down the road.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="KernelSamplesSection">
|
|
<Title><ProductName>JavaStation</ProductName>-Ready Kernel Images,
|
|
System.map and <Quote>.config</Quote> File Samples</Title>
|
|
|
|
<Para>
|
|
Here are some sample <Quote>.config</Quote> and <ProductName>JavaStation
|
|
</ProductName>-ready kernel images. They have been donated by
|
|
<Application>Linux</Application>-running <ProductName>JavaStation
|
|
</ProductName> users.
|
|
</Para>
|
|
|
|
<Sect3 id="ConfigSamplesSection">
|
|
<Title>Sample <Quote>.config</Quote> Files</Title>
|
|
|
|
<Para>
|
|
<Ulink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/kernel_embedded_config_2_3_99pre3_mar_17" >
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/kernel_embedded_config_2_3_99pre3_mar_17</ULink>
|
|
</Para>
|
|
|
|
<Para>
|
|
This is a <Quote>.config</Quote> file donated by Robert Dubinski
|
|
<Email>dubinski@mscs.mu.edu</Email>. It was used at Marquette
|
|
University to build an embedded boot image from the Mar. 17, 2000 CVS kernel
|
|
version. This includes support for both <ProductName>Mr. Coffee</ProductName>
|
|
and <ProductName>Krups</ProductName> in an <Quote>Embedded-Root</Quote>
|
|
filesystem configuration. These options should be valid for newer kernels
|
|
as well; Perform a <UserInput>make oldconfig</UserInput> when using with
|
|
latter kernels.
|
|
</Para>
|
|
|
|
<Para>
|
|
<Ulink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/kernel_nfsroot_config_2_3_99pre3_mar_17" >
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/kernel_nfsroot_config_2_3_99pre3_mar_17</ULink>
|
|
</Para>
|
|
|
|
<Para>
|
|
This is an nfs-root capable version of the above <Quote>.config</Quote> file.
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
<Sect3 id="KernelFileSamplesSection">
|
|
<Title>Sample <ProductName>JavaStation</ProductName>-Ready Kernel
|
|
Files</Title>
|
|
|
|
<Para>
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/vmlinux_embedded_2_3_99pre3_mar_17" >
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/vmlinux_embedded_2_3_99pre3_mar_17
|
|
</ULink>
|
|
</Para>
|
|
|
|
<Para>
|
|
This is a kernel file donated by Robert Dubinski <Email>dubinski@mscs.mu.edu
|
|
</Email>. It was built for Marquette University and is based off the
|
|
Mar. 17, 2000 CVS kernel version.
|
|
</Para>
|
|
|
|
<Para>
|
|
This kernel image includes support for both <ProductName>Mr. Coffee
|
|
</ProductName> and <ProductName>Krups</ProductName> models in an
|
|
<Quote>Embedded-Root</Quote> filesystem configuration.
|
|
</Para>
|
|
|
|
<Para>
|
|
This boot kernel image has already been converted to the required
|
|
<Acronym>AOUT</Acronym> executable format.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/vmlinux_nfsroot_2_3_99pre3_mar_17" >
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/vmlinux_nfsroot_2_3_99pre3_mar_17
|
|
</ULink>
|
|
</Para>
|
|
|
|
<Para>
|
|
This is the nfs-root version of the above kernel.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/system.map_embedded_2_3_99pre3_mar_17" >
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/system.map_embedded_2_3_99pre3_mar_17
|
|
</ULink>
|
|
</Para>
|
|
|
|
<Para>
|
|
The System.map for the embedded kernel image.
|
|
</Para>
|
|
|
|
<Para>
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/system.map_nfsroot_2_3_99pre3_mar_17" >
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/system.map_nfsroot_2_3_99pre3_mar_17
|
|
</ULink>
|
|
</Para>
|
|
|
|
<Para>
|
|
The System.map for the nfsroot kernel image.
|
|
</Para>
|
|
|
|
</Sect3>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
<Sect1 id="BuildFileSystemChapter">
|
|
<Title>Build A <ProductName>JavaStation</ProductName>-Ready FileSystem</Title>
|
|
|
|
<Para>
|
|
This chapter details how one constructs a filesystem suitable for use
|
|
on the <Application>Linux</Application>-running <ProductName>JavaStations
|
|
</ProductName>.
|
|
</Para>
|
|
|
|
<Sect2 id="FSBuildIntroSection">
|
|
<Title>Preparing Yourself to Build Your Own Filesystem</Title>
|
|
|
|
<Para>
|
|
Building a filesystem for use with the <ProductName>JavaStations
|
|
</ProductName> is a time-consuming, but rewarding task for those
|
|
who undertake it. You will learn more about library dependencies than
|
|
you ever thought you could, all the time while trying to keep the
|
|
overall image size as small as possible.
|
|
</Para>
|
|
|
|
<Para>
|
|
There are two common approaches one can take when rolling a new
|
|
<ProductName>JavaStation</ProductName>-ready filesystem.
|
|
</Para>
|
|
|
|
<OrderedList>
|
|
|
|
<ListITem>
|
|
<Para>
|
|
Start with an established distribution's filesystem and whittle down
|
|
to the core.
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
Start with an established distribution's <Quote>rescue disk</Quote>
|
|
filesystem and add desired functionality.
|
|
</Para>
|
|
</ListItem>
|
|
|
|
</OrderedList>
|
|
|
|
<Para>
|
|
Which path you take, of course, is entirely up to you. The <Quote>rescue
|
|
disk</Quote> build procedure seems to work best though, as more base
|
|
commands in a rescue disk are statically linked, increasing the starting
|
|
image size but causing less initial library headaches.
|
|
</Para>
|
|
|
|
<Para>
|
|
Obviously when building a filesystem in the context of the <ProductName>
|
|
JavaStation</ProductName>, you will be basing off of an existing
|
|
<Application>Linux/SPARC</Application> filesystem. The filesystems
|
|
that come with the RedHat and Debian distributions are good starting
|
|
points.
|
|
</Para>
|
|
|
|
|
|
<Warning>
|
|
<Para>
|
|
In the future, you will also need to make sure you base off a filesystem
|
|
built with compiled 32-bit mode executables, as a 64-bit userland project
|
|
is presently in progress for 64-bit <Acronym>SPARC</Acronym>
|
|
<Application>Linux kernels</Application>.
|
|
</Para>
|
|
</Warning>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="FstabDescSection">
|
|
<Title>Contents of the <Quote>/etc/fstab</Quote> File</Title>
|
|
|
|
<Para>
|
|
The configuration lines placed into <Quote>/etc/fstab</Quote> depend
|
|
on whether you will be using the <Quote>NFS-Root</Quote> or
|
|
<Quote>Embedded-Root</Quote> filesystem configuration.
|
|
</Para>
|
|
|
|
<Sect3 id="NFSRootFstabSection">
|
|
<Title><Quote>NFS-Root</Quote> Filesystem fstab</Title>
|
|
|
|
<Para>Here is an example of an <Quote>/etc/fstab</Quote> for
|
|
an <Quote>NFS-Root</Quote> boot option.
|
|
</Para>
|
|
|
|
<Screen>
|
|
###
|
|
#
|
|
your.nfs.server:/path/to/filesystem / nfs defaults,rsize=8192,wsize=8192 1 1
|
|
#
|
|
none /proc proc defaults 0 0
|
|
###
|
|
</Screen>
|
|
|
|
</Sect3>
|
|
|
|
<Sect3 id="EmbeddedRootFstabSection">
|
|
<Title><Quote>Embedded-Root</Quote> Filesystem fstab</Title>
|
|
|
|
<Para>Here is an example of an <Quote>/etc/fstab</Quote> for
|
|
an <Quote>Embedded-Root</Quote> boot option.
|
|
</Para>
|
|
|
|
<Screen>
|
|
###
|
|
#
|
|
/dev/ram / ext2 defaults
|
|
#
|
|
/proc /proc proc defaults
|
|
###
|
|
</Screen>
|
|
|
|
</Sect3>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="EmbeddedRootProcedureSection">
|
|
<Title>The <Quote>Embedded-Root</Quote> Image Creation Procedure</Title>
|
|
|
|
<Para>
|
|
Prepping up the <Quote>Embedded-Root</Quote> boot image requires a
|
|
number of extra steps. Due to these extra steps, the <Quote>NFS-Root</Quote>
|
|
filesystem option is recommended for beginners to <Application>Linux
|
|
</Application> on the <ProductName>JavaStation</ProductName>. You might
|
|
also try the samples pointed to in this document. Should you still wish
|
|
to build and embedded image on your own, this section outlines the basic
|
|
instructions.
|
|
</Para>
|
|
|
|
<Para>
|
|
Creating the <Quote>Embedded-Root</Quote> boot image is a 5-Step Procedure:
|
|
</Para>
|
|
|
|
<OrderedList>
|
|
<ListItem>
|
|
<Para>
|
|
<Emphasis>Prototype Your Filesystem</Emphasis>
|
|
</Para>
|
|
|
|
<Para>
|
|
This whole chapter deals with rolling your own filesystem.
|
|
In this step, it is assumed you create your own filesystem,
|
|
perhaps by prototyping one on a working <Quote>NFS-Root</Quote>
|
|
filesystem configuration.
|
|
</Para>
|
|
|
|
<Para>
|
|
One thing to keep in mind is that unlike your <Quote>NFS-Root</Quote>
|
|
filesystem, the <Quote>Embedded-Root</Quote> filesystem must fit
|
|
within the confines of your allocated <Acronym>RAM</Acronym>disk,
|
|
generally 4-16 <Acronym>MB</Acronym>. Your maximum size is dependant
|
|
on the setting of the <Acronym>RAM</Acronym>disk driver.
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
<Emphasis>Create an Empty File for Your FileSystem</Emphasis>
|
|
</Para>
|
|
|
|
<Para>
|
|
You now need to create a file-based filesystem <Quote>container</Quote>.
|
|
This is just a file that is the size of your <Acronym>RAM</Acronym>disk.
|
|
</Para>
|
|
|
|
<Para>
|
|
To create this, try the <UserInput>dd</UserInput> command:
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>dd if=/dev/zero of=./fs_test.img bs=1k count=8000 </UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
Using this example, you now should have an 8 <Acronym>MB</Acronym> file
|
|
named <Quote>fs_test.img</Quote>. Note: Be <Emphasis>sure</Emphasis>
|
|
the count you use matches the <Acronym>RAM</Acronym>disk size you
|
|
allocated for in the kernel's <Acronym>RAM</Acronym>disk driver!
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
<Emphasis>Format your Filesystem <Quote>Container</Quote></Emphasis>
|
|
</Para>
|
|
|
|
<Para>
|
|
Now that you have a <Quote>container</Quote> for your filesystem, it
|
|
is time to format it and place a bare filesystem on it.
|
|
</Para>
|
|
|
|
<Para>
|
|
In our kernel phase, we added in support for the ext2 filesystem.
|
|
We'll now format our <Quote>container</Quote> with this filesystem
|
|
type.
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>mkfs.ext2 ./fs_test.img</UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
Ignore any warnings about the file not being a block device, and
|
|
proceed anyway. This is an expected warning message.
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
<Emphasis>Mount the Filesystem <Quote>Container</Quote> and Write to It</Emphasis>
|
|
</Para>
|
|
|
|
<Para>
|
|
Now that you have your filesystem container, you can
|
|
mount it and load your prototyped filesystem on it.
|
|
</Para>
|
|
|
|
<Para>
|
|
To mount the container, use the kernel loopback device.
|
|
Make sure your server's kernel has loopback support enabled
|
|
and issue a:
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>mount -o loop ./fs_test.img /mnt</UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
Copy your files to the filesystem, and make sure <Quote>/etc/fstab
|
|
</Quote> has the <Acronym>RAM</Acronym>disk entries as described
|
|
elsewhere in this document.
|
|
</Para>
|
|
|
|
<Para>
|
|
To avoid symbolic links being changed into actual copies of files, use
|
|
a copy tool like <Quote>tar</Quote> or <Quote>cpio</Quote> instead of a
|
|
<Quote>cp</Quote>.
|
|
</Para>
|
|
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
<Para>
|
|
<Emphasis>Unmount and Compress the Root Filesystem</Emphasis>
|
|
</Para>
|
|
|
|
<Para>
|
|
Unmount the root filesystem you just created.
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>umount /mnt</UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
Compress the filesystem file with maximum <Quote>gzip</Quote>
|
|
compression levels.
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>gzip -v9 ./fs_test.img</UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
You should now have <Quote>fs_test.img.gz</Quote> file.
|
|
</Para>
|
|
</ListItem>
|
|
|
|
<ListItem>
|
|
|
|
<Para>
|
|
<Emphasis>Hook the Root-Filesystem Onto the Back of Your Kernel Image</Emphasis>
|
|
</Para>
|
|
|
|
<Para>
|
|
Now you must append the filesystem image onto your kernel.
|
|
</Para>
|
|
|
|
<Para>
|
|
You do this with a utility program called <Quote>piggyback</Quote>.
|
|
The piggyback program takes care of the task of appending the two and
|
|
letting the kernel know where both it and the filesystem begins and ends.
|
|
</Para>
|
|
|
|
<Para>
|
|
The <Quote>piggyback</Quote> program is found in your kernel source tree
|
|
under <LINUXROOT>/arch/sparc/boot. It might also be found on your
|
|
favorite ftp.kernel.org site.
|
|
</Para>
|
|
|
|
<Para>
|
|
For piggyback to work, it needs your <Acronym>AOUT</Acronym> format
|
|
kernel image, the System.map file from your kernel source root
|
|
directory, and the compressed root-filesystem you just created.
|
|
</Para>
|
|
|
|
<Para>
|
|
We put it all together with a:
|
|
</Para>
|
|
|
|
<Screen>
|
|
<UserInput>piggyback vmlinux.aout System.map fs_test.img.gz</UserInput>
|
|
</Screen>
|
|
|
|
<Para>
|
|
Be sure to backup your kernel image first, as piggyback used the same
|
|
<Quote>vmlinux.aout</Quote> filename for output. Check the filesize of
|
|
your <Quote>vmlinux.aout</Quote> file after giving this command and you
|
|
can verify the filesystem has indeed been appended.
|
|
</Para>
|
|
|
|
</ListItem>
|
|
</OrderedList>
|
|
|
|
<Para>
|
|
Congratulations! You've created an <Quote>Embedded-Root</Quote>
|
|
kernel/filesystem boot image.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="SampleFilesystemsSection">
|
|
<Title>Sample FileSystems</Title>
|
|
|
|
<Para>
|
|
Here are some sample filesystems for you to start with.
|
|
</Para>
|
|
|
|
<Para>
|
|
A filesystem image contributed by Varol Kapton <Email>varol@ulakbim.gov.tr
|
|
</Email> is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/jsroot_varol.tar.gz">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/jsroot_varol.tar.gz
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
<Sect1 id="ServerSetupChapter">
|
|
<Title>Set up Your Server</Title>
|
|
|
|
<Para>
|
|
This chapter describes the configuration steps necessary for
|
|
the server machine to hand-off your <ProductName>JavaStation</ProductName>
|
|
boot image.
|
|
</Para>
|
|
|
|
<Sect2 id="ServerPrefaceSection">
|
|
<Title>Preface</Title>
|
|
<Para>
|
|
It is now time to setup your server to deliver the <Acronym>OS</Acronym>
|
|
and filesystem to the <ProductName>JavaStation</ProductName>.
|
|
</Para>
|
|
|
|
<Para>
|
|
In our examples here, we configure a Linux/SPARC server <Quote>lnxserv
|
|
</Quote> at private IP 192.168.128.100 to deliver a boot image to
|
|
<ProductName>JavaStation</ProductName> <Quote>java01</Quote> at
|
|
private IP 192.168.128.1. Both are on private network 192.168.128/24.
|
|
When using an <Quote>NFS-Root</Quote> Filesystem, the location on
|
|
the server of the filesystem in our sample is at <Quote>/path/to/nfsroot
|
|
</Quote>.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="ConfigureRARPSection">
|
|
<Title>Setting up the <Acronym>RARP</Acronym> service</Title>
|
|
<Para>
|
|
We first need to set up <Acronym>RARP</Acronym> service on our server,
|
|
so the <ProductName>JavaStation</ProductName> can auto-configure its
|
|
<Acronym>IP</Acronym>.
|
|
</Para>
|
|
|
|
<Para>
|
|
First, populate the <Quote>/etc/ethers</Quote> file with the mapping of
|
|
the mac address of the <ProductName>JavaStation</ProductName> to its
|
|
hostname:
|
|
</Para>
|
|
|
|
<Screen>
|
|
### /etc/ethers
|
|
8:0:20:82:7a:21 lnxserv # 192.168.128.100 (server is not necessary,)
|
|
# # (just for completeness)
|
|
#
|
|
#
|
|
08:00:20:81:C2:ae java01 # 192.168.128.1 (JavaStation)
|
|
#
|
|
###
|
|
</Screen>
|
|
|
|
<Para>
|
|
Next, populate the <Quote>/etc/hosts</Quote> file with the <Acronym>IP
|
|
</Acronym> to hostname maps:
|
|
</Para>
|
|
|
|
<Screen>
|
|
### /etc/hosts
|
|
192.168.128.100 lnxserv
|
|
192.168.128.1 java01
|
|
###
|
|
</Screen>
|
|
|
|
<Para>
|
|
Lastly, configure the <Acronym>RARP</Acronym> cache to fill at start-up
|
|
(<Application>Linux/SPARC</Application> has no <Acronym>RARP</Acronym>
|
|
daemon, per se):
|
|
</Para>
|
|
|
|
<Screen>
|
|
### Part of rc.local
|
|
#
|
|
# If necessary, first load the rarp module to be able to fill the cache.
|
|
# /sbin/insmod rarp
|
|
#
|
|
# Now we fill the rarp cache. You better have the rarp command available.
|
|
if [ -f /sbin/rarp ]; then
|
|
/sbin/rarp -f
|
|
fi
|
|
###
|
|
</Screen>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="ConfigureDHCPSection">
|
|
<Title>Setting up the <Acronym>DHCP</Acronym> service</Title>
|
|
|
|
<Para>
|
|
You now need to configure your server to deliver <Acronym>DHCP</Acronym>
|
|
service. This will help identify the <ProductName>JavaStation</ProductName>,
|
|
the network it is on, and where to get its boot image from.
|
|
</Para>
|
|
|
|
|
|
<Para>
|
|
The following is a sample <Quote>dhcpd.conf</Quote> file for the
|
|
<Application>ISC DHCP server</Application> software which ships
|
|
with most <Application>Linux/SPARC</Application> distributions.
|
|
</Para>
|
|
|
|
<Screen>
|
|
### Sample /etc/dhcpd.conf file for ISC DHCPD
|
|
#
|
|
deny unknown-clients;
|
|
#
|
|
subnet 192.168.128.0 netmask 255.255.255.0
|
|
{
|
|
range 192.168.128.1 192.168.128.150;
|
|
}
|
|
|
|
group
|
|
{
|
|
host java01
|
|
{
|
|
hardware ethernet 08:00:20:81:C2:ae;
|
|
filename "C0A88003"; # "/tftpboot/xxx"
|
|
fixed-address java01; # 192.168.128.1
|
|
}
|
|
}
|
|
#
|
|
### End dhcpd.conf file
|
|
</Screen>
|
|
|
|
<Para>
|
|
Note: Some early versions of <Application>ISC DHCPD</Application> are
|
|
reported to not work well. It is recommended you use <Application>ISC
|
|
DHCPD Version 2.0 and above</Application>.
|
|
</Para>
|
|
|
|
<Para>
|
|
A longer
|
|
<ULink url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/petes_dhcpd.conf.txt">dhcpd.conf</Ulink> from the Metabyte server is mirrored here for
|
|
demonstration purposes.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="ConfigureNFSSection">
|
|
<Title>Set up <Acronym>NFS</Acronym> service (<Quote>NFS-Root Options
|
|
</Quote> Only)</Title>
|
|
|
|
<Para>
|
|
When you are serving up an <Quote>NFS-Root</Quote> filesystem, you need
|
|
to share the filesystem you created to the <ProductName>JavaStation
|
|
</ProductName> client. You do this with the <Quote>/etc/exports</Quote>
|
|
file.
|
|
</Para>
|
|
|
|
<Screen>
|
|
###/etc/exports
|
|
/path/to/nfsroot java01(rw,no_root_squash)
|
|
###
|
|
</Screen>
|
|
|
|
<Para>
|
|
Be sure your <Acronym>NFS</Acronym> server gets properly started
|
|
up at boot-time.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="ConfigureTFTPSection">
|
|
<Title>Setting up for Boot with <Acronym>TFTP</Acronym></Title>
|
|
<Para>
|
|
Now we need to set up the last step on our server: the <Acronym>TFTP
|
|
</Acronym> configuration. For this step, you will need the kernel
|
|
you created (using the <Quote>NFS-Root</Quote> option) or the
|
|
piggybacked kernel/fs boot image (using the <Quote>Embedded-Root</Quote>
|
|
option), the appropriate <Application>PROLL</Application>, and some
|
|
knowledge of hexadecimal numbering.
|
|
</Para>
|
|
|
|
<Para>
|
|
The first thing you need to do is verify that <Quote>TFTPd</Quote> is
|
|
enabled in your <Quote>/etc/inetd.conf</Quote> file:
|
|
</Para>
|
|
|
|
<Screen>
|
|
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
|
|
</Screen>
|
|
|
|
<Para>
|
|
Now, you move your copy of proll for your <ProductName>JavaStation
|
|
</ProductName> architecture, along your kernel or piggybacked kernel
|
|
image to /tftpboot.
|
|
</Para>
|
|
|
|
<Para>
|
|
Now, you create of symbolic link from the hexidecimal version of your
|
|
<Acronym>IP</Acronym> to your <Application>PROLL</Application> image,
|
|
and a map from <Quote>HEXIP.PROL</Quote> to your real kernel image. If
|
|
you are using <Quote>Embedded-Root</Quote> option, you point to your
|
|
<Quote>Embedded-Root</Quote> Filesystem plus Kernel image. If you are
|
|
using the <Quote>NFS-Root</Quote> option, you need to point to the
|
|
normal <Quote>vmlinux.aout</Quote> image, plus have a separate map of
|
|
<Acronym>IP</Acronym>->nfsroot location. For sake of completeness,
|
|
you might also want a <Quote>HEXIP.SUN4M</Quote> -> <Quote>HEXIP
|
|
</Quote> map, as that is the custom way of dealing with net boot
|
|
situations with the Sun.
|
|
</Para>
|
|
|
|
<Para>
|
|
Example for java01 booting from <Quote>NFS-Root</Quote>:
|
|
</Para>
|
|
<Screen>
|
|
$ ls -ld /tftpboot
|
|
-rw-r--r-- 1 root root 89608 Mar 20 10:15 proll.aout.krups.11
|
|
-rw-r--r-- 1 root root 52732 Mar 17 11:52 proll.aout.mrcoffee.11
|
|
lrwxrwxrwx 1 root root 19 Mar 20 10:16 proll.krups -> proll.aout.krups.11
|
|
lrwxrwxrwx 1 root root 22 Mar 17 11:54 proll.mrcoffee -> proll.aout.mrcoffee.11
|
|
lrwxrwxrwx 1 root root 10 Apr 1 13:00 C0A88001.SUN4M -> COA88001
|
|
lrwxrwxrwx 1 root root 10 Apr 1 13:00 C0A88001 -> proll.mrcoffee
|
|
lrwxrwxrwx 1 root root 12 Apr 1 13:00 C0A88001.PROL -> vmlinux.aout
|
|
-rw-r--r-- 1 root root 1456189 May 21 12:53 vmlinux.aout
|
|
-rw-r--r-- 1 root root 6743821 Apr 1 12:53 vmlinux_embed.aout
|
|
lrwxrwxrwx 1 root root 18 Apr 1 12:53 192.168.128.1 -> /path/to/nfsroot
|
|
</Screen>
|
|
|
|
<Para>
|
|
Example for java01 booting from <Quote>Embedded-Root</Quote> boot image:
|
|
</Para>
|
|
|
|
<Screen>
|
|
$ ls -ld /tftpboot
|
|
-rw-r--r-- 1 root root 89608 Mar 20 10:15 proll.aout.krups.11
|
|
-rw-r--r-- 1 root root 52732 Mar 17 11:52 proll.aout.mrcoffee.11
|
|
lrwxrwxrwx 1 root root 19 Mar 20 10:16 proll.krups -> proll.aout.krups.11
|
|
lrwxrwxrwx 1 root root 22 Mar 17 11:54 proll.mrcoffee -> proll.aout.mrcoffee.11
|
|
lrwxrwxrwx 1 root root 10 Apr 1 13:00 C0A88001.SUN4M -> COA88001
|
|
lrwxrwxrwx 1 root root 10 Apr 1 13:00 C0A88001 -> proll.mrcoffee
|
|
lrwxrwxrwx 1 root root 12 Apr 1 13:00 C0A88001.PROL -> vmlinux_embed.aout
|
|
-rw-r--r-- 1 root root 1456189 May 21 12:53 vmlinux.aout
|
|
-rw-r--r-- 1 root root 6743821 Apr 1 12:53 vmlinux_embed.aout
|
|
</Screen>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="LastConfigureStepSection">
|
|
<Title>The Last Configuration Step</Title>
|
|
|
|
<Para>
|
|
The last step to configuring your <Application>Linux</Application>-running
|
|
<ProductName>JavaStation</ProductName>: boot it and cross your fingers!
|
|
</Para>
|
|
|
|
<Tip>
|
|
<Para>
|
|
Report of success are also heard of where one or more of these configuration
|
|
steps have been used: knocking on a wooden surface, booting during a full
|
|
moon, walking under ladders, breaking of mirrors, throwing salt over one's
|
|
shoulder, hunting black cats and sacrificing chickens (KFC will suffice).
|
|
</Para>
|
|
</Tip>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="BootVisualsSection">
|
|
<Title>What to See When Booting Linux</Title>
|
|
|
|
<Para>
|
|
When you boot things properly, your JavaStation will start up with
|
|
the normal white background screen with the PROM banner at the top,
|
|
and you will get the black "exclamation mark in triangle" logo,
|
|
signalling the system doesn't yet know who it is. When contact is
|
|
made with the DHCP server, the logo goes away and changes to the
|
|
Java coffee cup logo. After this, a black background window opens.
|
|
This is the PROLL window. It'll show status of the TFTP download in
|
|
progress, and give stats on the size of the file downloaded. Next,
|
|
the whole screen should go black, you should see a picture of Tux the
|
|
penguin in the upper left hand of the screen, and have the
|
|
normal Linux kernel messages printed before you. Any mistakes from
|
|
this point are due to the filesystem you are using, the filesystem
|
|
mounting, or missing kernel drivers which should have been compiled
|
|
in.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
<Sect1 id="TroubleShootingChapter">
|
|
<Title>Troubleshooting</Title>
|
|
|
|
<Para>
|
|
This chapter is intended to provide solutions to frequently and
|
|
infrequently encountered problems in enabling <Application>Linux
|
|
</Application> on the <ProductName>JavaStations</ProductName>.
|
|
</Para>
|
|
|
|
<Sect2 id="NotExecutableTSSection">
|
|
<Title>When booting, the message <Quote>The file just loaded does not
|
|
appear to be executable.</Quote> Why?
|
|
</Title>
|
|
|
|
<Para>
|
|
On systems that have the older OpenBoot version 2.3, and are not set
|
|
up to use PROLL, you will get this message when attempting to boot
|
|
up a kernel image that is not in AOUT format. Be sure to run
|
|
<UserInput>elftoaout</UserInput> on your kernel image.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
<Sect2 id="NoMagicTSSection">
|
|
<Title>When booting, the message <Quote>no a.out magic</Quote> appears
|
|
and halts the boot. Why?
|
|
</Title>
|
|
|
|
<Para>
|
|
On systems that are set up to use PROLL, you will see this message
|
|
when attempting to boot up a kernel image that is not in AOUT format.
|
|
Be sure to run <UserInput>elftoaout</UserInput> on your kernel image.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="FlashTSSection">
|
|
<Title>I tried booting a Krups but JavaOS comes up. I don't even have JavaOS!
|
|
</Title>
|
|
|
|
<Para>
|
|
This likely means you have a copy of JavaOS loaded on your flash SIMM.
|
|
Remove the SIMM and the problem should go away.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="TenMBLimitTSSection">
|
|
<Title>Cannot Boot an <Quote>Embedded-Root</Quote> image > 10 <Acronym>MB
|
|
</Acronym>on my <ProductName>JavaStation</ProductName>. Why?</Title>
|
|
|
|
<Para>
|
|
There is a known limit of 8 <Acronym>MB</Acronym> when using the
|
|
<Quote>Embedded-Root</Quote> boot image option.
|
|
</Para>
|
|
|
|
<Para>
|
|
The cause of this is the current version of the <Application>PROLL
|
|
</Application> software, which map only 8 <Acronym>MB</Acronym>
|
|
of low memory. Any more and banking support would need to be
|
|
added to it.
|
|
</Para>
|
|
|
|
<Para>
|
|
This limit can be fixed if needed by someone, as the source
|
|
to <Application>PROLL</Application> has been released under the
|
|
General Public License <Acronym>GPL</Acronym>.
|
|
</Para>
|
|
|
|
<Para>
|
|
So in reality, the embedded image size limit is really 8 <Acronym>MB</Acronym>
|
|
, not 10 <Acronym>MB</Acronym>. If 10 <Acronym>MB</Acronym> somehow works
|
|
for you, it is by <Quote>luck</Quote>!
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="KeyGarblesTSSection">
|
|
<Title>After Booting, Typing Anything Yields Garbage Characters. Why?</Title>
|
|
|
|
<Para>
|
|
There are a few possibilities for this. Among them:
|
|
</Para>
|
|
|
|
<OrderedList>
|
|
<ListItem>
|
|
<Para>
|
|
You have an incorrect device # for tty0.
|
|
</Para>
|
|
</ListItem>
|
|
<ListItem>
|
|
<Para>
|
|
A <Quote>keytable</Quote> loaded is incorrect. Make sure you use
|
|
<Quote>sun</Quote> instead of <Quote>PC</Quote> if you use the keytable
|
|
program. Look for the keytable configuration file if it exists.
|
|
</Para>
|
|
</ListItem>
|
|
</OrderedList>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="FontServTSSection">
|
|
<Title>In X Sessions to a <Application>Solaris</Application> server, the
|
|
font server <Quote>xfs</Quote> crashes. Why?
|
|
</Title>
|
|
|
|
<Para>
|
|
If you do <Application>X</Application> sessions to a <Application>Solaris
|
|
</Application> server, and you find that your sessions are no longer opening
|
|
up new windows, chances are the font server on the <Application>Solaris
|
|
</Application> host has crashed. This is a known bug in <Application>
|
|
Solaris</Application> 2.6 and 2.7 when you have about 2 dozen <Hardware>
|
|
X terminals</Hardware> sessions running.
|
|
</Para>
|
|
|
|
<Para>
|
|
The fix is to move the font server to a different architecture and point your
|
|
<ProductName>JavaStations</ProductName> there, or to upgrade your
|
|
<Application>Solaris</Application> to the 2.7 11/99 maintenance
|
|
release or <Application>Solaris 8</Application> which both have fixes
|
|
to this problem.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
<Sect2 id="XDMCPTSSection">
|
|
<Title>Performing Indirect <Acronym>XDMCP</Acronym> to a <Application>
|
|
Solaris</Application> Server Results in Session Login Failures. Why?
|
|
</Title>
|
|
|
|
<Para>
|
|
Congratulations! You must have one of patch numbers 107180-12 through
|
|
107180-19 installed on a <Application>Solaris 7</Application>
|
|
server. You need to upgrade to 107180-20 or above to fix this problem.
|
|
</Para>
|
|
|
|
<BlockQuote>
|
|
<Attribution>Robert Dubinski, Computer Systems Technician at Marquette
|
|
University
|
|
<Email>tech@mscs.mu.edu</Email>
|
|
</Attribution>
|
|
<Para>
|
|
Here's a little rant:
|
|
</Para>
|
|
<Para>
|
|
I reported this problem to Sun in November 1999, at which time I was
|
|
told a fix was not scheduled to be made, since I was using an
|
|
<Quote>unsupported configuration.</Quote>. Never mind the client
|
|
was a piece of hardware made by Sun itself. Also never mind that
|
|
indirect <Acronym>XDMCP</Acronym> queries is a standard itself which
|
|
was broken by Sun. A call back in late January 2000, and I learn that
|
|
the record of my previous call was non-existant, but a fix was now on
|
|
its way. The fix finally was made available in April 2000, five months
|
|
after first reporting the problem. Considering revisions to this
|
|
patch during the broken <Acronym>XDMCP</Acronym> period dealt with
|
|
fixing system security issues, we were forced to run the older insecure
|
|
software for five months while waiting for a fix to a problem which
|
|
should have been patched immediately.
|
|
</Para>
|
|
<Para>
|
|
The moral of the story: test your <ProductName>JavaStation</ProductName>
|
|
configuration against an upgraded server that is not in production mode.
|
|
</Para>
|
|
</BlockQuote>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="SUSETftpTSSection">
|
|
<Title>TFTPd config doesn't work on SUSE. Why?</Title>
|
|
|
|
<Para>
|
|
This was reported by a user after this document was first released.
|
|
</Para>
|
|
|
|
<Para>
|
|
In SUSE 6.3, using the tftpd from the 'a' package of the netkit rpm,
|
|
you must be sure your tftpd line in /etc/inetd.conf has the -s flag.
|
|
Otherwise you need to specify a full path.
|
|
</Para>
|
|
|
|
<Para>
|
|
Also, it is not necessary to run tftpd as root, so the suggested username
|
|
and group for tftpd on SUSE 6.3 is 'nobody' and 'nogroup'
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
<Sect1 id="MiscAnswersChapter">
|
|
<Title>Answers to Miscellaneous Questions</Title>
|
|
|
|
<Para>
|
|
This chapter aims to answer some miscellaneous questions
|
|
about <Application>Linux</Application> and the <ProductName>JavaStations
|
|
</ProductName>.
|
|
</Para>
|
|
|
|
<Sect2 id="RARPFAQSection">
|
|
<Title>Regarding <Acronym>RARP</Acronym>: Is it Needed or Not?</Title>
|
|
|
|
<Para>
|
|
<Acronym>RARP</Acronym> is not needed with the <ProductName>Krups
|
|
</ProductName> or <ProductName>Espresso</ProductName> models and
|
|
recent <Application>PROLL</Application> software. <Acronym>RARP
|
|
</Acronym> is required for <ProductName>Mr. Coffee</ProductName>,
|
|
however.
|
|
</Para>
|
|
|
|
<Para>
|
|
This document explains how to set up kernel-level <Acronym>RARP</Acronym>
|
|
for the remaining models. In kernel versions 2.3.x/2.4.x, kernel-level
|
|
<Acronym>RARP</Acronym> support is removed. The Metabyte server
|
|
holds a version of <Application> ANK userland RARP</Application> from
|
|
Andi Klein of SuSE that will work with Linux/SPARC. It is available
|
|
from: <ULink url="http://corp.metabyte.com/~zaitcev/linux/rarpd-ap1.tar.bz2">
|
|
http://corp.metabyte.com/~zaitcev/linux/rarpd-ap1.tar.bz2</Ulink>.
|
|
The command to use then is <UserInput>rarpd-ank -e eth0</UserInput>.
|
|
<Quote>-e</Quote> makes it ignore /tftpboot checking, and
|
|
<Quote>eth0</Quote> is needed if you are behind a firewall.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="EspressoCardReaderFAQSection">
|
|
<Title>Can One Use the Smart Card Reader on the Espresso models?</Title>
|
|
|
|
<Para>
|
|
This is not currently supported, but the reader follows an
|
|
ISO standard (ISO 7816-3). On <ProductName>
|
|
Espresso</ProductName>, if you look into <Application>PROLL</Application>,
|
|
there are definitions for the <Acronym>GPIO</Acronym> smartcard data/clock in
|
|
<Quote>eeprom.c</Quote>. So a programmer should technically be able to get
|
|
the Smart Card slot running.
|
|
</Para>
|
|
</Sect2>
|
|
|
|
<Sect2 id="SolarisDHCPFAQSection">
|
|
<Title>Can One Use the <Application>Solaris</Application> <Acronym>DHCP</Acronym>
|
|
server instead of <Acronym>ISC</Acronym>?</Title>
|
|
|
|
<Para>
|
|
Yes, this is possible. Earlier ISC daemons had problems, while the
|
|
Solaris server was more robust. Here is how to configure it:
|
|
</Para>
|
|
|
|
<Para>
|
|
First, fill in your /var/dhcp/<Quote>networks</Quote> file, populating
|
|
it with ethernet to IP info, and the appropriate leastime.
|
|
</Para>
|
|
|
|
<Screen>
|
|
# This example uses "infinite" leastime
|
|
#
|
|
0108002081C2AE 03 192.168.128.1 192.168.128.100 java01 # JavaStation
|
|
010800208E4CF6 03 192.168.128.2 192.168.128.100 java02 # JavaStation
|
|
</Screen>
|
|
|
|
<Para>
|
|
Next, fill in your /var/dhcp/dhcptab file with entries similar to:
|
|
</Para>
|
|
|
|
<Screen>
|
|
##
|
|
# First, some network info
|
|
#
|
|
Locale m :UTCoffst=21600:
|
|
www m :Include=Locale:Timeserv=192.168.128.100:DNSdmain=my.own.net:DNSserv=192.168.128.100:
|
|
192.168.128.0 m :Broadcst=192.168.128.255:Subnet=255.255.255.0:MTU=1500:BootSrvA=192.168.128.100:Router=192.168.128.101:NISdmain=my.own.net:NISservs=192.168.128.100:
|
|
#
|
|
# note: BootServA can point to a different TFTP server to get the kernel image
|
|
# off of.
|
|
#
|
|
#
|
|
##
|
|
# Now we define the JavaStation TFTPboot parameters
|
|
#
|
|
SUNW.Linux m :Include=www:JOSchksm=0x155dbf97:Rootpath=/tftpboot:BootFile=proll.mrcoffee:BootSrvA=192.168.128.100:TFTPsrvN=lnxserv:
|
|
SUNW.Linux.Krups m :Include=www:Rootpath=/tftpboot:BootFile=proll.krups:BootSrvA=192.168.128.100:TFTPsrvN=lnxserv:
|
|
#
|
|
#
|
|
# note: different classes are defined for the different PROLL images.
|
|
#
|
|
##
|
|
# Lastly, we list our hosts and which boot class each one gets.
|
|
java01 m :LeaseTim=-1:Include=SUNW.Linux:
|
|
java02 m :LeaseTim=-1:Include=SUNW.Linux.Krups:
|
|
#
|
|
#
|
|
#
|
|
###
|
|
</Screen>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="BootOptionsFAQSection">
|
|
<Title>Can One Pass Arguments to <Quote>/sbin/init</Quote> in a Diskless
|
|
Boot like This?</Title>
|
|
|
|
<Para>
|
|
<Application>PROLL</Application> ships with <Acronym>DHCP</Acronym>
|
|
options disabled, but it could be changed. You would then do something
|
|
like <Quote>/tftpboot/0A0A0000.ARGS</Quote> to get those parameters in.
|
|
</Para>
|
|
|
|
<Para>
|
|
If you boot from flash memory, <Application>PROLL</Application> picks up
|
|
<Application>SILO</Application> options (where <Application>SILO
|
|
</Application> is > version 0.9.6 and <Application>PROLL</Application>
|
|
is >= version 11)
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="EnablingXFAQSection">
|
|
<Title>Enabling <Application>X</Application> on the
|
|
<ProductName>JavaStation</ProductName></Title>
|
|
|
|
<Para>
|
|
Enabling <Application>X</Application> on the <ProductName>JavaStation
|
|
</ProductName> is possible.
|
|
</Para>
|
|
|
|
<Para>
|
|
First, be sure you have enabled the appropriate framebuffer device
|
|
in your kernel's configuration (as described elsewhere in this document).
|
|
</Para>
|
|
|
|
<Para>
|
|
Next, you'll want to use the generic <Application>Sun Framebuffer X server
|
|
</Application> and <Quote>XF86Config</Quote> file. You can build this
|
|
yourself, or you can try someone's prebuilt binaries, like the samples
|
|
pointed to below.
|
|
</Para>
|
|
|
|
<Para>
|
|
As of this time, <Application>XFree 4.0</Application> does not work on
|
|
the <Hardware>SPARC</Hardware> line. You'll need to use an
|
|
<Application>XFree 3.3.x</Application> variant in the meantime.
|
|
The new driver model of 4.0 will provide the path necessary to
|
|
provide a dedicated accellerated X server for the <ProductName>
|
|
JavaStations</ProductName>.
|
|
</Para>
|
|
|
|
<Para>
|
|
Sample XFree Sun Frambuffer X Server File is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/XF86_FBDev">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/XF86_FBDev
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Sample XFree JavaStation-Ready XF86Config File is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/XF86Config">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/XF86Config
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="MailingListFAQSection">
|
|
<Title>Is There Mailing List Help?</Title>
|
|
|
|
<Para>
|
|
There is a mailing devoted exclusively to running <Application>Linux
|
|
</Application> on <Hardware>SPARC processor</Hardware> based machines
|
|
like the <ProductName>JavaStations</ProductName>.
|
|
</Para>
|
|
|
|
<Para>
|
|
The mailing list address is <Quote>sparclinux@vger.rutgers.edu</Quote>.
|
|
You should first subscribe to it by sending a message to
|
|
<Quote>majordomo@vger.rutgers.edu</Quote> with a subject and body line
|
|
of <Quote>subscribe sparclinux <your_email_address></Quote>. You
|
|
can leave out your email address, but it is helpful to put it in if you
|
|
have multiple valid addresses at your site.
|
|
</Para>
|
|
|
|
<Para>
|
|
Archives of the Linux/Sparc mailing list are kept at:
|
|
<ULink url="http://www.progressive-comp.com/Lists/?l=linux-sparc&r=1&
|
|
w=2">http://www.progressive-comp.com/Lists/?l=linux-sparc&r=1&w=2"
|
|
</ULink>
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="FlashBootFAQSection">
|
|
<Title>Can One Boot a JavaStation from Onboard Flash Memory?</Title>
|
|
|
|
<Para>
|
|
It is possible to boot a JavaStation-NC from flash, but requires
|
|
too much arcane knowledge at the moment to be recommended.
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
|
|
<Sect1 id="UnansweredQuestionsChapter">
|
|
<Title>Unanswered Questions</Title>
|
|
|
|
<Para>
|
|
This chapter lists questions which have been asked by the author or
|
|
others, but as of now have no answers to.
|
|
</Para>
|
|
|
|
<Sect2 id="PiggybackUnanswered">
|
|
<Title>Does <Quote>Piggyback</Quote> work for the <Hardware>x86</Hardware>
|
|
too?
|
|
</Title>
|
|
|
|
<Para>Enquiring minds want to know.</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="EspressoAvailabilityUnanswered">
|
|
<Title>Where Can One Find <ProductName>Espressos</ProductName> for Sale?</Title>
|
|
|
|
<Para>Enquiring minds want to know.</Para>
|
|
|
|
</Sect2>
|
|
|
|
|
|
<Sect2 id="NetBootToolsUnanswered">
|
|
<Title>Do Tools Exist to Configure Net Boot Entries Quickly?</Title>
|
|
|
|
<Para>Enquiring minds want to know.</Para>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="FlashUseUnanswered">
|
|
<Title>What can one use the Krups Flash memory for?</Title>
|
|
|
|
<Para>
|
|
Though it is not supported without some experimental patches from
|
|
Metabyte, the question arises as to what uses one might put the
|
|
flash to use for, aside from booting?
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
|
|
<Sect1 id="AppendixChapter">
|
|
<Title>Appendix</Title>
|
|
|
|
<Para>
|
|
This section is a collection of various reference documents which
|
|
do not belong in any other section.
|
|
</Para>
|
|
|
|
<Sect2 id="MrCoffeeJumpersSection">
|
|
<Title><ProductName>Mr. Coffee</ProductName> Jumper Info</Title>
|
|
|
|
<Screen>
|
|
Mr. Coffee Jumper Assignments
|
|
|
|
J0206 JTAG header, perhaps JSCC compatible.
|
|
J0904 1-2 shortened Enter POST - output ttya, input ttya
|
|
1-2 open Skip POST - output screen, input ttya
|
|
3-4 Unused
|
|
5-6 Unused
|
|
7-8 Unused
|
|
J1101 1-2 open (dflt) TPE squelch
|
|
1-2 short Reduced squelch threshold
|
|
J1102 1-2 open (dflt) 100 Ohm TPE termination
|
|
short 150 Ohm TPE termination
|
|
J1602 Manufacturing test of unknown sort
|
|
J1603 1-2 PROM select (unfortunately PROM socket is emply)
|
|
2-3 (default) Flash select
|
|
J1604 1-2 FPROM write disable
|
|
2-3 (default) FPROM write enable
|
|
|
|
J0904 block is a bit block of pullup resistors which a user may shorten.
|
|
They may be read from the keyboard controller with a command 0xDD.
|
|
</Screen>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="KrupsJumperSection">
|
|
<Title><ProductName>Krups</ProductName> Jumper Info</Title>
|
|
|
|
<Screen>
|
|
Krups Jumper Assignments
|
|
|
|
J1202 1-2 Use Flash
|
|
2-3 Select optional diagnostic FLASH PROM in socket J1203
|
|
(this does not sound quite right ...)
|
|
J1300 1-2 Software debug use
|
|
3-4 Factory use - PROM switch??
|
|
5-6 Unused
|
|
7-8 Flash update recovery
|
|
J0500 JTAG
|
|
</Screen>
|
|
|
|
</Sect2>
|
|
|
|
<Sect2 id="JavaStationPhotoGallery">
|
|
<Title><ProductName>JavaStation</ProductName> Photo Gallery</Title>
|
|
|
|
<Para>
|
|
This section contains links to pictures of the JavaStation line.
|
|
</Para>
|
|
|
|
|
|
<Para>
|
|
Front view of Mr. Coffee is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_front_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_front_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Top view of Mr. Coffee is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_top_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_top_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Inside view of Mr. Coffee is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_inside_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_inside_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Mr. Coffee white case variation #1 at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_white_case_1.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_white_case_1.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Mr. Coffee white case variation #2 at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_white_case_2.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/mr_coffee_white_case_2.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Front view of krups is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_front_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_front_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Side view of krups is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_side_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_side_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Top view of krups is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_top_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/krups_top_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Front view of Espresso is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_front_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_front_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Side view of Espresso is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_side_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_side_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Rear view of Espresso is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_rear_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_rear_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
Inside view of Espresso is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_inside_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/espresso_inside_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
See the <ProductName>JavaEngine-1</ProductName> at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/je1_overhead_view.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/je1_overhead_view.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
View of the JavaStation mousepad is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/javastation_mousepad.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/javastation_mousepad.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
<Para>
|
|
View of a Lab of JavaStations running Linux is at:
|
|
<ULink
|
|
url="http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/lab_of_javastations.jpg">
|
|
http://www.mscs.mu.edu/~tech/Linux_on_JS/Files/lab_of_javastations.jpg
|
|
</Ulink>
|
|
</Para>
|
|
|
|
</Sect2>
|
|
|
|
</Sect1>
|
|
|
|
</Article>
|
|
|