old-www/LDP/LG/issue31/pavlicek.html

439 lines
19 KiB
HTML

<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>A Personal Linux/Alpha System: 64 bits for under $500 LG #31
</title>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<center>
<H1><font color="maroon">A PERSONAL LINUX/ALPHA SYSTEM: 64 BITS FOR UNDER $500</font></H1>
<H4>by <A HREF="mailto:pavlicek@altavista.net">Russell C. Pavlicek</A></H4>
</center>
<P> <HR> <P>
<!--
<center>
<img src="udb.gif">
</center>
-->
<H3>BACKGROUND</H3>
<P>
This article is the result of my efforts to build a personal Digital
Alpha workstation to run Linux/Alpha. For under $500 (US), I assembled a
166 MHz Universal Desktop Box (often called a UDB or Multia) with a half
gigabyte of disk space, 32 megabytes of memory, 2x CD ROM drive, ethernet port,
2 serial ports, and a parallel port. For a few dollars more, this could
easily be expanded with more disk and RAM.
<P>
Rather than engage in a lengthy discourse on how I went about building my
particular Linux/Alpha workstation, I'd like to share my observations
regarding the Alpha-specific peculiarities I encountered.
I had used Linux/x86 for years, but I found that there were some
Alpha installation issues which were brand new to me. Once I understood
these few issues, it was simple to construct a useful Linux/Alpha system.
<P>
<H3>WHY MAKE AN INEXPENSIVE ALPHA SYSTEM?</H3>
<P>
Why indeed? When the usual x86 offerings are inexpensive and
omnipresent, why bother constructing a low-end Linux/Alpha box?
<OL>
<P>
<LI><I>It makes a decent, inexpensive 64-bit development and testing platform.
</I></LI>
<P>
There's lots of talk today about running 64-bit applications. But much
of the discussion is nothing more than that -- talk. If you want to find
out if your application will survive and thrive in 64 bits, here is a very
low cost
opportunity to try it out. A low cost Linux/Alpha platform represents an
excellent opportunity for porting and testing software in a true 64-bit
environment.
<P>
<LI><I>It is an excellent proof-of-concept system for faster Alpha systems.
</I></LI>
<P>
Just as many organizations are beginning to see that Linux can be used to their
competitive advantage, others are beginning to see that the Linux/Alpha
combination can be used in environments where extreme horsepower is
required for certain tasks. However, those who hold the purse strings
are wary of pouring money into a different hardware architecture until they
have concrete proof that the new system will do the job (and rightfully so).
An inexpensive Linux/Alpha system becomes
an ideal prototype that can demonstrate the possible effectiveness of the
proposed solution without incurring high costs. Once the concept is validated,
it may be possible to secure management backing for a full-blown Linux/Alpha
solution.
<P>
<LI><I>It is a development tool for Linux/IA64.
</I></LI>
<P>
The Intel IA64 architecture is coming with the expected release of Intel's
"Merced" processor
around the year 2000. Many UNIX vendors are lining up to make sure that
their particular UNIX implementation becomes the standard UNIX for the new
architecture. Many Linux folks, of course, would like to see Linux/IA64
enter the fray early so that early adopters of the IA64 architecture might
find themselves looking at Linux/IA64 as a viable first 64-bit operating system.
<!--
And we know that the more people use Linux, the more likely they are to
love Linux. Linux can sell itself when people begin to use it.
-->
<P>
So what does Linux/Alpha have to do with this? Well, some programs in the
mountain of Open Source code that we find in the Linux world are
not currently functional in the 64 bit world of Linux/Alpha.
And many new programs have to be tested on a
64-bit environment to make sure they will make the jump to Linux/IA64.
We need to make sure that all those programs that add value to Linux are
64-bit friendly when IA64 hits the streets. An excellent way of doing that
is through porting the code to the 64-bit Linux/Alpha platform. Not only will
the Linux world be ready to invade the IA64 space when it is birthed, but
this will also serve to further solidify the Linux/Alpha offering.
<P>
<LI><I>Linux/Alpha solutions are becoming more cost effective
</I></LI>
<P>
I've met many people over the past few years who desired to use Linux/Alpha,
but could not afford the price tag. Now, however, it is clear that falling
hardware prices and the availability of used Alpha machines is clearing the
way for people to use Linux/Alpha. Just recently, retailers like
<A HREF="http://www.lsl.com/">Linux Systems Labs</A> began selling low-priced
Red Hat Linux/Alpha CDs (GPL distribution). And the long-awaited Debian V2
will support the Alpha platform as well.
<P>
There has never been a better time to take a look at Linux/Alpha.
<P>
<LI><I>Experience, experience, experience!
</I></LI>
<P>
It never hurts to add more current technical expertise to your resume. And
experience in a 64-bit UNIX implementation could look awfully nice on the
resume when many companies begin employing 64-bit architectures like Alpha
and IA64.
<P>
<LI><I>My reason...
</I></LI>
<P>
I work for Compaq Computer Corporation (in the part of Compaq which used
to be Digital Equipment
Corporation) as a Technical Consultant in the Networks and Systems
Integration Services (NSIS) organization in the US Federal
Government Region. It is my desire to be ready to serve Linux/Alpha
customers in the Federal Government, so I decided to prepare myself by
personally purchasing, installing, and using a Linux/Alpha system.
<P>
I have already used Linux/x86 successfully as a part of two customer engagements
within the past year. A few of my coworkers locally have also used
Linux/x86 in customer engagements during that timeframe. I haven't seen
any Linux/Alpha work yet, but I intend to be ready when it comes!
<P>
<LI><I>My <B>other</B> reason...
</I></LI>
<P>
And let's not forget the <B>big</B> reason: <I>Linux/Alpha is a blast!</I>
If you thought Linux was fun to work with on the x86 architecture, wait until
you have 64 bits to play with!
</OL>
<P>
<H3>THE COSTS:</H3>
<P>
As the sole breadwinner for a family of four in the greater Washington DC
area, I do not have great sums of money to pour into development of a
computer system of any sort. I've built several PCs over the years and I've
always followed the same basic rules: stay well behind the technology curve
and keep it CHEAP! Quality is a concern (building junk is a total waste of
money; you lose more by building garbage than by building something that is
more expensive but functional), but financial limitations are quite real.
So, by buying good used products and/or non-current unused products, I can
shave the price down to acceptable levels without sacrificing usability.
Sure, I'd like to run dual 600 MHz Alpha processors with 50 gigabytes of disk
and a gigabyte of RAM -- but I'd prefer to stay married, thank you!
<P>
With these guidelines in mind, I purchased all of the following pieces through
on-line auctions (I used
<A HREF="http://www.ebay.com/">eBay</A>,
<A HREF="http://www.haggle.com/">Haggle</A>,
and <A HREF="http://www.onsale.com/">Onsale</A>) and local computer shows in
the first few months of 1998.
<P>
Here is what I assembled:
<P>
<!--- >
<OL>
<LI>DEC Universal Desktop Box (UDB; aka Multia) $189</LI>
<LI>TI 16 MB 72 Pin Parity Memory $29</LI>
<LI>16 MB 72 Pin Parity Memory $38</LI>
<LI>IBM 540 MB SCSI Disk $44</LI>
<LI>Toshiba SCSI 2x CD $25</LI>
<LI>Generic SCSI Cable $16</LI>
<LI>Generic Internal SCSI Cable $13</LI>
<LI>Mitsumi Keyboard $13</LI>
<LI>NEC SVGA Monitor $94</LI>
<LI>DEC Mouse (free; included with UDB)</LI>
<LI>Generic SCSI Case (free; had this already)</LI>
<LI>Red Hat Powertools 5.0 $19</LI>
<P>
<P>*** TOTAL *** $480
</OL>
< --->
<TABLE border=2>
<TR><TD width=30>1.</TD><TD width=300>DEC Universal Desktop Box (UDB; aka Multia)</TD><TD width=160>$189</TD></TR>
<TR><TD>2.</TD><TD>TI 16 MB 72 Pin Parity Memory</TD><TD>$29</TD></TR>
<TR><TD>3.</TD><TD>16 MB 72 Pin Parity Memory</TD><TD>$38</TD></TR>
<TR><TD>4.</TD><TD>IBM 540 MB SCSI Disk</TD><TD>$44</TD></TR>
<TR><TD>5.</TD><TD>Toshiba SCSI 2x CD</TD><TD>$25</TD></TR>
<TR><TD>6.</TD><TD>Generic SCSI Cable</TD><TD>$16</TD></TR>
<TR><TD>7.</TD><TD>Generic Internal SCSI Cable</TD><TD>$13</TD></TR>
<TR><TD>8.</TD><TD>Mitsumi Keyboard (PS/2 style)</TD><TD>$13</TD></TR>
<TR><TD>9.</TD><TD>NEC SVGA Monitor</TD><TD>$94</TD></TR>
<TR><TD>10.</TD><TD>DEC Mouse (PS/2 style)</TD><TD>(free; included with UDB)</TD></TR>
<TR><TD>11.</TD><TD>Generic SCSI Case</TD><TD>(free; had this already)</TD></TR>
<TR><TD>12.</TD><TD>Red Hat Powertools 5.0</TD><TD>$19</TD></TR>
<P>
<TR><TD>&nbsp</TD><TD>*** TOTAL ***</TD><TD>$480</TD></TR>
</TABLE>
<H3>THE GOTCHAS:</H3>
<P>
As a user of Linux/x86 since 1995, I've grown accustomed to the capabilities
and methodologies of the Linux/x86 world. I found a handful of differences
in the Linux/Alpha world which are worth noting to someone who wants to make
the jump to 64 bits:
<OL>
<LI><I>A Linux/Alpha system with a single hard drive uses at least three partitions
</I></LI>
<P>
The Alpha system needs to load the initial boot code from a partition that
the Alpha console (in ROM) understands. So, a single disk Linux/Alpha system
is likely to have at least three partitions:
<P>
<OL>
<LI>/dev/sda1 tiny DOS FAT partition containing the loader</LI>
<LI>/dev/sda2 root partition</LI>
<LI>/dev/sda3 swap partition</LI>
</OL>
<P>
Linux/x86 folks will obviously be used to the need for root and swap partitions,
but the floppy-sized FAT partition containing LINLOAD.EXE and MILO is a
different concept.
<P>
<LI><I>MILO instead of LILO
</I></LI>
<P>
Linux/x86 has the simple, yet highly useful, LILO (LInux LOader) to boot Linux
from the hard drive. Linux/Alpha has MILO (MIni LOader) to accomplish the
same task, but using a slightly different methodology. Rather than residing
in a boot block, MILO resides in the tiny DOS-formatted partition on the SCSI
drive (normally /dev/sda1). The Alpha console boots MILO from the DOS FAT
partition, then MILO boots Linux/Alpha from the Ext2 partition (/dev/sda2).
<P>
<LI><I>Multiple kernels
</I></LI>
<P>
Since there are often differences between the hardware standardly found on
different Alpha machines, you are given a choice of pre-built kernels to
use when installing the operating system. It is generally quite easy to
select the appropriate kernel for your machine, since the documentation
very clearly maps the available kernels to most common Alpha models.
But it is still different than most Linux/x86 installation procedures.
<P>
<LI><I>Different processor architecture
</I></LI>
<P>
The Alpha processor family and the x86 processor family are two different
animals. As one might expect, a 64-bit RISC processor and a 32-bit CISC
processor go about their respective tasks in very different ways. What does
this mean to someone who wants to build a Linux/Alpha workstation? Don't
be stingy with memory or processor speed if you can help it. In particular,
I've found that my Linux/Alpha system performs much better with additional
memory. There is quite a noticeable improvement in speed when running at
32 megabytes as opposed to 16 megabytes. In fact, the first real upgrade
I hope to perform is to add more memory to the system. Thankfully,
memory is much more affordable than it was at the beginning of the decade,
so adding a few more megabytes isn't a particularly expensive proposition.
<P>
<P>
<LI><I>Check out the limitations of the Alpha you intend to purchase
</I></LI>
<P>
It is important to remember that some Alpha machines (notably the older
Turbochannel bus machines) do not currently run Linux. Make certain that
the Alpha system you intend to purchase is listed on the
<A HREF="http://www.azstarnet.com/~axplinux/">
Linux/Alpha Home Page</A>. Also, if you select the UDB, be
aware that it is a bounded box -- there is essentially no room for an internal
disk drive (yes, you can use a 2.5 inch SCSI drive, but that is expensive
compared to a 3.5 inch SCSI drive), there is absolutely no room for a CDROM
drive in the box, and the processor speed is relatively slow. If you intend
to upgrade
the system to a faster Alpha processor in the future, you'd probably be better
off with an Alpha with a more standard case and motherboard. I chose the UDB
because it was available very cheaply and I already owned an external drive
cabinet that I could use to mount the hard drive and CDROM drive.
I found some excellent technical information online provided by
<A HREF="http://www.annex.co.uk/systems/udbtroub.html">Annex Technology</A>.
<P>
<LI><I>Use an installation "cookbook", if available
</I></LI>
<P>
While the Red Hat 5.0 Linux/Alpha installation is quite good, it is not
quite as simple as the Linux/x86 installation. As I've already mentioned,
you'll need to select a kernel for your machine, create a small FAT boot
partition, as well as a few other simple steps which you didn't need to
perform on a Linux/x86 install. It is helpful, then, to
locate and use a "cookbook" or "cheat sheet" to help you during
the installation.
<P>
The UDB I purchased was originally sold by Starship Computer via one of the
Internet auctions. I purchased the UDB used from the original buyer who
no longer needed the unit. This person included the original installation
instructions supplied by Starship in the box. The instructions were quite
good and very detailed. I have already seen similar documents circulating
in the newsgroups pertaining to the installation of Red Hat 5.1 for Alpha.
If you can obtain such an installation guide,
it can save you time and keep you from forgetting small Alpha-specific
details.
<P>
<LI><I>Beware unmatched memory
</I></LI>
<P>
For the UDB, at least, matched memory SIMMs are critical. The first set
I obtained from an auction which advertised new SIMMs shipped together.
They did not specifically say that they were matched. They were not.
That's one mistake I will not make again. The SIMMs did work together
for a while, but once the machine ran for a while, it began to generate
memory errors. I replaced them with a set of matched SIMMs and all memory
problems ceased.
<P>
<LI><I>Thinwire Ethernet problem for UDB kernel ("noname") for Red Hat 5.0
</I></LI>
<P>
I found out that the kernel supplied in Red Hat 5.0 for the UDB (noname.img)
had a bug that prevented it from using the thinwire ethernet adapter. I
simply downloaded the kernel supplied with Red Hat 4.2 and I was back in
business.
<P>
This was a problem that took much longer to identify than to fix.
The <A HREF="http://www.redhat.com/support/docs/errata.html">
Red Hat errata page (http://www.redhat.com/support/docs/errata.html)</A>,
one of the first places to turn with possible
distribution errors, was silent on this subject at the time.
As there are less Linux/Alpha users in the world than Linux/x86, the newsgroups
were not spilling over with information on this problem as one would expect
if there was a kernel problem in a Linux/x86 distribution. Yet the newsgroups
held the answer nonetheless; it just took a little longer to locate the
message which gave me the key to the problem.
<P>
<LI><I>PPP was broken in Red Hat 5.0
</I></LI>
<P>
The pppd package supplied in Red Hat 5.0 didn't work properly on Alpha.
I consulted the <A HREF="http://www.redhat.com/support/docs/errata.html">
Red Hat errata</A> on the Red Hat homepage and downloaded the
corrected PPP kit. One rpm command later, I had a working PPP protocol.
Again, it took longer to identify the problem than it did to correct it.
<P>
<LI><I>X Windows
</I></LI>
<P>
While X Windows is usable with only 16 MB of memory, it will need to swap
out jobs just to start up. 32 MB will yield a much faster X Windows system,
as it will be able to load without swapping. If you can afford more memory,
it is to your benefit.
<P>
<LI><I>Where's the browser?
</I></LI>
<P>
Perhaps my greatest frustration was the lack of a fully-functional, native,
graphical, 64-bit web browser. Lynx, a character-cell browser, is useful
for downloading software upgrades, if needed, such as the kernel and PPP
kits mentioned above. Unfortunately, it is not as helpful for general
browsing, due to its non-graphical nature. There is Grail, which is written
in Python, but the current version (0.4) seems too flaky for normal use.
One common solution seems to be to use Netscape for x86 under the EM86
emulator (below), but it's not a "native" Alpha solution.
<P>
As of this writing, the best native solution I've found is
<A HREF="http://www.troll.no/qtmozilla/">QtMozilla</A>, Mozilla
compiled using the Qt libraries. It was created as a demonstration of Troll
Tech's Qt libraries, but it is quite usable. I have also seen reports of
other Linux/Alpha Mozilla implementations, so I hope that we will see a
stable, full-featured Mozilla for Alpha before very long.
<P>
<LI><I>EM86
</I></LI>
<P>
Don't forget about <A HREF="ftp://ftp.digital.com/pub/DEC/Linux-Alpha/em86/">
EM86</A>, Digital's software for running Linux/x86 binaries
on Linux/Alpha. You can find the latest kits at
<A HREF="ftp://ftp.digital.com/pub/DEC/Linux-Alpha/em86/">Digital's FTP location</A>.
Red Hat kernels included in the 5.0 and 5.1 distributions now support EM86 right out
of the box (no longer any need to rebuild the kernel). Also, kernels starting
with 2.0.34 (as well as the latest 2.1.x development kernel) have integrated
EM86 support without requiring the use
of patches before building. Be aware, though, that you may not find
the emulation speed acceptable on older, slower Alpha boxes.
<P>
<LI><I>Always read the documentation
</I></LI>
<P>
Make sure you read the FAQ
<A HREF="http://www.azstarnet.com/~axplinux/FAQ.html">
(http://www.azstarnet.com/~axplinux/FAQ.html)</A> and the chapter on the Alpha
installation in the
<A HREF="http://www.redhat.com/support/docs/rhl/RHL-5.0-Installation-Guide-HTML/manual/">
Red Hat Installation Guide</A>. And don't forget to check the
<A HREF="http://www.redhat.com/support/docs/errata.html">
Red Hat errata page (http://www.redhat.com/support/docs/errata.html)</A> for
any known problems in the distribution.
</OL>
<P>
<H3>CONCLUSION:</H3>
<P>
I found that building the UDB was an enlightening experience, as was
installing Red Hat Linux for Alpha 5.0. I have already used the system to
port 32-bit applications to a 64-bit platform. Even if it is not exactly a
whirlwind by current system standards, my inexpensive Linux/Alpha UDB system
has been a very worthwhile (and <I>fun</I>) acquisition.
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright &copy; 1998, Russell C. Pavlicek <BR>
Published in Issue 31 of <i>Linux Gazette</i>, August 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./raymond.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./pelletier.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->