Linux op een Alpha CPU laten draaien

ArticleCategory: []

Hardware

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or nospam: or http://homepage]

original in en Bruce Ediger 

en to nl Guus Snijders

AboutTheAuthor: []

Abstract:[Here you write a little summary]

De auteur deelt zijn ervaringen met het samenstellen van een Alpha PC met ons.

ArticleIllustration:

[Illustratie]

ArticleBody:[The article body]

Achtergrond

Ik ben altijd in het bezit geweest van computers die geen gebruik maakten van Intel CPUs of Microsoft besturingssytemen draaiden, van een Radio Shack Color Computer 3 met OS-9 in 1986, via een AT&T 3b1 in 1988, NeXT M68040 "black" hardware in 1991, en een Sun SPARCStation IPC in 1995. Tijdens mijn home computer ervaring hebben mensen (zowel in het 'echte' leven als op usenet) me verteld dat Wintel hardware en software zowel completer als goedkoper waren , hoewel mogelijk niet van dezelfde kwaliteit, als de 'propietary' hardware die ik op de keukentafel had.

Tussen Januari en Maart 1997 stelde ik een computer samen met een Digital Equipment Corporation Alpha CPU en kreeg deze aan het draaien met het Linux besturingssysteem. De DEC computer, een "Universele Desktop Box" (UDB), hoewel geen Intel 80x86-gebaseerde CPU gebruikt "industrie standard, eenvoudig te verkrijgen" PC onderdelen. Ik kon nu de de aanbevelingen over Wintel "industry standard" hardware in de praktijk testen. Dit is een verslag van mijn ervaringen.

Samenvatting

Het verkrijgen van computers of onderdelen van computers die niet standaard verondersteld worden is nog steeds vrij lastig, maar niet onmogelijk. Computer winkels, zowel grote ketens en kleine doe-het-zelf types, willen je alleen complete systemen verkopen. Verkoop-personeel negeren vaak alles behalve de complete systemen die de winkel verkoopt. De prijzen van standaard "PC compatible" hardware zijn niet zo laag als reclames en usenet advocaten me hadden laten geloven.

Mijn voorgaande Freeware en Hardware ervaring

Alvorens mijn verhaal te lezen, zou je ervan bewust moeten zijn dat ik niet onervaren ben. Ik heb gewerkt als programmeur voor de afgelopen 6 jaar, voornamelijk in gevarieerde Unix omgevingen. Een van mijn computers (een SPARCStation IPC) draait een andere vrij-beschikbare Unix kloon, NetBSD, dus ik beschik wel over enige ervaring met de problemen die deze besturingssytemen kunnen geven. De computers die ik bezit zijn geen "standaard" of massa-markt hardware dus heb ik alle onderhoud en upgrading zelf gedaan.

Het verhaal

Ik schafte mezelf een overgebleven Digital Equipment Corporation VX40A-F2 Universal Desktop Box (UDB) aan van Starship/Computer Guys. Dit deed ik via een on-line veiling bij www.onsale.com. Hoewel ik de goederen heb ontvangen waarvoor ik had betaald, ben ik niet zeker of ik onsale.com kan aanraden. Ik heb reeds tonnen spam gehad, ofwel Starship of Onsale.com heeft hun lijst met email adressen gegeven aan niets-ontziende email adverteerders.

Deze UDB was volledig kaal. Het had geen geheugen, geen disk, geen monitor of keyboard. Het kwam met een muis, een RedHat Linux/Alpha 4.0 CD-ROM set en wat minimalistische instructies, echter.

Nadat de UDB was aangekomen, ging ik verder met het verkrijgen van de andere onderdelen die ik nodig had om er een bruikbare computer van te maken. De eerste episode behelsde het geheugen.

Ik belde een aantal gebruikte en doe-het-zelf type computer zaken in het Denver metro gebied om 36-pins, 70 nanoseconde of beter, "true parity" SIMMs te vinden. Allemaal gaven ze me een prijs op. Op een zaterdag, reed ik erheen om er een paar op te halen. In 3 van de winkels kreeg exact dezelfde behandeling: Ik vroeg naar het geheugen, zij zochten de prijs op en vertelden me de mijn PC naar hun zaak te brengen om hun de SIMMs te laten plaatsen. Ik zwaaide met de DEC documentatie naar ze, zei dat ik ze alleen wilde kopen, en bereid was te tekenen om m'n recht op geruineerd geheugen terug te brengen, op te geven. De verkopers liepen onwillig naar achter, alleen maar om te ontdekken dat ze geen SIMMs, zoals de UDB ze nodig had, op voorraad hadden.

Uiteindelijk heb ik de SIMMs die ik nodig had aangeschaft via een post-order concern, Memory Shippers in San Francisco, ondanks de angsten van de gebruikte-computers zaken in Denver.

Ik ging naar de plaatselijke Computer City massa-markt personal computer shop om een "PS/2 compatible" keyboard aan te schaffen. De gebruikte-computer shops waren onwillig om me SIMMs te verkopen, maar wilden me ook geen toetsenbord verkopen. Er was een duizelingwekkende variatie aan toetsenborden bij Computer City, elk gemarkeerd met een verzameling buzzwords. Ik slaagde er in om 2 logo's te onderscheiden welke "PS/2" compatible aanduidden, maar de enige dozen die er achter zaten, zeiden "Not PS/2 Compatible". Uiteindelijk vond ik er een die aangaf "PS/2 Compatible" te zijn, ondanks het gebrek aan hulp van de Computer City verkopers. Blijkbaar zorgt het aantrekken van een pastel-geel Computer City polo shirt voor het terugvallen van het IQ naar zo'n 20 punten. Het toetsenbord dat ik aanschafte was een met een gemiddelde prijs. De goedkoopste waren alleen "AT Compatible".

Ik ontdekte dat de UDB een "multi-synch" SVGA monitor moest hebben in verband met z'n ingebouwde video mogelijkheden. Geen van mijn monitoren was "multi-synch". Tijdens mijn zoektocht naar geheugen en toetsenbord, had ik ook de prijzen en beschikbaarheid van monitoren opgemerkt.

In 1996, had ik een originele 19-inch Sun Microsystems monitor aangeschaft via een usenet newsgroup voor $350, dus ik schrok toen ik gebruikte 17" multi-synch monitoren voor $450 en meer zag. Nieuwe monitoren bij de massa-markt PC zaken waren ook aardig aan de prijs.

Uiteindelijk besloot ik een 14 of 15 inch monitor aan te schaffen. Het bleek een verglijkbaar verhaal te zijn als tijdens mijn zoektocht naar geheugen. Na achter rondgekeken te hebben, wilde een computer shop me een monitor verkopen die was gebruikt tijdens reparaties. Een andere computer shop deed alleen in 17" en groter. De derde had zelf alleen een monitor te koop (op de volledige systemen na), een Compaq "Pressario 1410". Deze monitor is blijkbaar een witte olifant, daar de speakers om een of andere reden alleen met Compaq computers werken. Als een NeXT eigenaar en gebruiker, was ik bekend met het gebrek aan geluid, dus dit speelde niet echt mee in mijn beslissing.  

Digital Equipment Corporation stopte met de productie van de UDB (ook bekend als "Multia") product lijn ergens in 1996, maar het service hardware handboek hadden ze online geplaatst, beschikbaar via FTP. Dit is niet zo gracieus als het klinkt, daar het geen diagrammen bevat, welke de posities van de jumpers bevat die het gedrag de verschillende aspecten van de UDB bepaalden. Gelukkig heeft RedHat zijn mailing list archief publiekelijk gemaakt en doorzoekbaar.

Gewapend met de beperkte documentatie van "Starship Computer", (het bedrijf waar ik de UDB van had) en een aantal documenten van de Digital serive manual, de RedHat mailing list en andere web pagina's, was ik in staat om de UDB de MILO mini-loader te laten booten. De "SRM" boot prom is niet in sync met de monitor, dus een deel van de boot is blind. Daarna was ik in staat om RedHat Linux for Alpha 4.0 op een Fujitsu model M1606SAU SCSI disk te installeren. Ik had een Toshiba XM-3301TA CD-ROM drive die ik eerder had aangepast om samen te werken met de Sun SPARC boot PROM, welke 512 byte disk sectoren verwacht. Ik vindt het opmerkelijk dat de hardware en software werkten met een aangepaste, 5-jaar-oude CD-ROM drive.

Een moeilijkheid die ik tegenkwam, was om "fdisk" te gebruiken om een MS-DOS partitie tabel aan te maken. Het lijkt tegenstrijdig om te geloven dat Digital boot PROMs maakte die een "FAT" bestandssyteem nodig hebben om van op te starten, maar het is zo. Ook ontdekte ik dat de verschillende partities moesten beginnen op een deelbaar-door-4 nummer cylinder.

Een tweede moeilijkheid die ik tegenkwam was dat de fool-proof instructies van Starship/Computer Guys impliciet aannamen dat de HDD zich bevond op SCSI Target 0. Ervaring met Sun's boot PROM door de jaren stond me toe om uit te vinden waar de UDB boot PROM code Target 0 aannam.  

Het kostte me twee complete installatie cycli om een bevredigende, werkende Linux te krijgen. Ik maakte een verkeerde keus van pakketten tijdens de eerste keer. Ik dacht dat het systeem draaiende krijgen het belangrijkste was. Om het netwerk binnen die installatie aan de gang te krijgen zou eenvoudig zijn. Om een IP netwerk aan de gang te krijgen terwijl het hele systeem niet geconfigureerd is om te starten is knap lastig. Ik eindigde met het hele systeem opnieuw te installeren als een "networked workstation".

Waarschijnlijk is er iets niet helemaal goed met de Linux netwerk code. De standaard installatie zorgt ervoor dat het boot proces hangt, maar er zit ook een diepere afwijking in: iedere 3,5 seconde vuurt de Linux/alpha kernel een 46-byte pakket naar zichzelf af. Het ethernet frame heeft de machine's eigen MAC adres zowel als bron en bestemming. Misschien is dit een hartslag of een manier om te controleren dat de netwerk bekabeling intact is, maar het is puzzelend.

Na het systeem zover te krijgen dat het bootte van de harddisk, was de rest van de setup niet echt moeilijk. Ik moest de RedHat mailing list doorsnuffelen naar hints om het boot proces niet te laten hangen, en moest experimenteren met het XFree86 configuratie bestand. De aanschaf van een eenvoudige 14 inch monitor was een vergissing: alles is echt klein.

Al snel liep ik tegen een bug aan met betrekking tot de 64-bit Alpha CPU. Ik wilde de klok van mijn machine gesynchroniseerd houden en `rdate' leek een eenvoudige manier. Ik gebruikte het reeds op 2 andere machines, en het leek eenvoudiger om te compileren en te gebruiken dan alternatieven als NTP (ik heb NTP opgezet en onderhouden in het verleden).

Het compileren van 'rdate' van de NetBSD 1.1 broncode was redelijk makkelijk. Het stond erop me te vertellen dat de tijd op m'n andere machines (SPARC IPC en M68040 NeXT) ergens in 1861 was. Het bleek een aan opvullings "feature" van de Alpha CPU te liggen: het `rdate' protocol wordt verwacht om een 32-bit, "netwerk" byte order te geven, een macht-van-2 aantal seconden sinds 12.00 AM, 1 januari 1900. De `rdate' code gebruikt de bibliotheek routine nthol() om z'n eigen byte order terug te krijgen. Dit resulteerde in het zetten van de 32ste bit van de nummerieke representatie van de datum naar een `1'. Deze 32-bit waarde wordt opgevuld/uitgebreid als hij wordt geladen in de 64-bit brede registers van de Alpha CPU. De `1' bit op positie 32 maakte het nummer in de registers negatief.

Kostenoverzicht

  Prijs  Verzenden 
Kale UDB:  365.00 40.00 (incl. muis en RH 4.0)
twee, 32-Mb SIMMs  162.00 34.50
PS/2 keyboard  37.54 
Compaq Presario Monitor  321.58

  886.12 74.50 = $960.62 (1997 US Dollars)
Zoals je misschien hebt gemerkt, ontbreken de Fujitsu M1606SAU-512 harde schijf, de externe behuizing ervoor en een paar kabels. Deze had ik nog ligggen. De RedHat Linux installatie procedure gebruikt ook 2 `extfs' floppies, aangemaakt met behulp van diskette images op de CD-ROM disks. Het is daardoor nodig om reeds een computer klaar te hebben met een CD-ROM drive en een floppy drive om voorbij dit opstakel te komen.

Geschatte Tijd

Mijn schattings is dat ik zo'n 35 tot 45 uur aan dit project heb gespendeerd, uitgespreid over 3 maanden muur-klok-tijd. Ik denk dat in een 9 tot 5 "werk" omgeving bij een bedrijf hetzelfde project zo ongeveer het dubbele van deze tijd nodig zou hebben gehad. Daar ik het deed in m'n eigen tijd, kon ik (bijvoorbeeld) het installatie proces starten en eten gaan koken. In een "werk" omgeving, wordt je vaak weggeroepen van een taak, ondanks het feit dat het nog niet helemaal goed gaat.

Voor meer informatie

Red Hat's Alpha mailing list archief
Doorzoek het Alpha mailing list archief
Linux/Alpha Frequently Asked Questions
UDB Hardware Info
Meer UDB Hardware Info
Persoonlijk Getuigschrif
Alpha Compiler Kookboek
Digital Technical Journal Deel4, nr 4, speciale uitgave over de Alpha architectuur 
Waarom je Microsoft zou moeten boycotten
Mail me commentaren