Debian 4 su DEC Alpha

di marcognu | 6/12/2008

PWS600aTutti noi abbiamo in casa una workstation basata su processore DEC Alpha ;)
Nel mio caso si tratta di una Personal Workstation Alpha 600a1 con impresso il glorioso marchio “Digital”, perfettamente funzionante, sulla quale nel tempo ho usato WinNT 4.0 Workstation, FreeBSD 4.7 e, da qualche tempo, Debian 4.0 Etch.

Sebbene lo meriterebbe, con questo post non intendo raccontare tutta la storia dell’hardware che caratterizza le PWS – quando questa classe di workstation apparve sul mercato, i processori x86 più potenti erano i PentiumII a 300MHz -, né tanto meno le peculiarità del software che su tale hardware poteva girare. Basti sapere che i s.o. sviluppati per tale hardware sono appunto NT4.0, OpenVMS, True64 (e prima Digital Unix), FreeBSD e qualche distro Linux.

DEC Alpha 21164
Vabbè, tanto per renderle giustizia, la 600a monta un DEC Alpha 21164 a 600MHz (quello col dissipatore di calore bullonato sopra). Il processore Alpha con la sua architettura RISC e le sue varie evoluzioni del bus EV, grazie alla compravendita di brevetti Digital2 avvenuta tra la fine degli anni ‘90 e la prima metà di questo decennio, è alla base dell’evoluzione, dell’incremento di prestazioni e di frequenze di clock che i processori AMD ed Intel hanno avuto in questi 10 anni.

Un altro pezzo forte delle PWS è la scheda grafica. La mia 600a monta di serie una PowerStorm 4D60T marchiata Digital e prodotta da Intergraph3, sulla base del chipset grafico delle schede RealiZM. Purtroppo solo con WinNT ho potuto godere della tremenda accelerazione hardware OpenGL che questa scheda fornisce, giocando a Quake2, per giunta con codice x86 tradotto per Alpha dal layer FX!324 in real-time… massimo rispetto per quegli sviluppatori visionari! Col driver TGA di XFree86 e di X.org infatti funziona solo la sezione che monta un Cirrus Logic GD5440 con, se non ricordo male, 1MB di ram video, mentre il resto dell’elettronica è del tutto ignorato. Risultato: scheda smontata, gelosamente conservata e sostituita con una più comune ATI PCI.

Ok, tralasciando questi ricordi da anziano, sulla 600a ho messo Debian 4.0 Etch. Siccome sono fresco fresco di re-installazione, ho pensato di riportare qui i passi da seguire per una corretta installazione, si sa mai che possa servire a qualcuno.

Quanto sto per scivere vale sia per i modelli “a” che per gli “au”. La differenza sta nel fatto che gli “a” venivano forniti con Windows mentre gli “au” con Unix.

Tutte le PWS di Digital e, in seguito, di Compaq hanno di serie un doppio firmware:
- SRM console;
- ARC, meglio consociuto come AlphaBIOS.
Il primo è necessario per il boot dei sitemi Unix-like mentre il secondo emula il bios di un comune pc e serve per l’avvio di WinNT4.0. Inoltre il primo supporta il disklabel degli Unix BSD, mentre il secondo la partition table di MS-DOS.
Il primo passo da fare è dunque abilitare il boot via SRM console, ammesso che non sia già così. Per farlo è sufficiente avviare la workstation, premere F2 per accedere al setup del bios, andare sulla voce “Advanced CMOS Setup/Console Selection” e scegliere “Unix (SRM)”, salvare la modifica e spegnere la workstation. Attenzione: se non viene spenta, al reboot viene  eseguito ancora l’AlphaBIOS.

SRM presenta pochi comandi, simili a quelli di Unix; qui è sufficiente sapere che scrivendo al prompt “help” si ottiene la lista dei comandi disponibili, mentre scrivendo “help <comando>” si ottiene l’help del comando indicato.

Un comando fondamentale è “show device”, che in output mostra la lista dei device disponibili.
Nel mio caso ad esempio ho:

>>> show device

dkc0.0.0.1009.0 DKC0 IBM DNES-309170W SAH0
dkc200.2.0.1009.0 DKC200 SEAGATE ST318406LW 0108
dkc300.3.0.1009.0 DKC300 PLEXTOR CD-ROM PX-40TS 1.13
ewa0.0.0.3.0 EWA0 [mac address]

dove la prima colonna è il nome effettivo del device, la seconda è un alias più adatto a noi umani, la terza è la stringa di descrizione fornita dal device e la quarta è la versione del firmware del device stesso, se disponibile (il comando mostra anche le schede PCI installate e riconosciute).
Dischi e unità ottiche sono le varie DKC, mentre la scheda di rete è EWA0.

Per fare il boot da un qualunque device, si usa il comando “boot”.
Nel caso dell’avvio dell’installazione da cd/dvd si scrive qualcosa di simile a questo:

>>> boot DKC300

Al comando boot si possono fornire due parametri:
-file per indicare quale immagine del kernel usare;
-flags per passare delle opzioni all’immagine del kernel.

Se non si fornisce alcun parametro, viene eseguito il boot da cd e si arriva al prompt di “aboot”.
Aboot è un boot manager per Linux su sistemi Alpha con SRM console… appunto. Si trova qualcosa di simile – yaboot – anche quando si vuole installare Debian su Mac-PowerPC.

Aboot ha dei comandi semplici. Quello che serve sapere in questa sede è che digitando “l” si ottiene la lista delle immagini bootabili del kernel, identificate da un numero compreso fra 0 e 9; è sufficiente indicare “0″ per eseguire l’immagine di default, che avvia l’installazione semi-grafica.

aboot>0

L’alternativa ad aboot è scrivere al prompt di SRM il seguente comando:

>>> boot DKC300 -flags 0

in questo modo aboot non presenta il suo prompt perché sa già quale immagine del kernel usare per l’avvio e il boot da cd porta subito nella procedura semi-grafica di installazione… sì, quella in stile Slackware, senza punta&clicca, che si usa con tastiera e tasto TAB a manetta.

A mio parere è meglio passare per aboot, perché alla fine dell’installazione e dopo il riavvio ci si ritroverà ancora lui a gestire l’avvio di Linux e questo torna utile nel caso ci fossero problemi subito dopo la prima installazione.
Premendo “q” infatti si torna al prompt di SRM e da qui poi sarà possibile testare l’avvio della workstation con l’apposito comando – che descriverò tra poco – per poi automatizzare l’avvio di Linux.

La procedura fa le solite cose, viste e riviste un sacco di volte (del resto chi si ferma a leggere questo post, Linux l’avrà già installato anche sulla centralina della caldaia!).

Arrivati al partizionamento dei dischi, ci si deve ricordare che per Alpha bisonga avere una partizione per aboot (basta 1MB) e una partizione di avvio per “/boot”, formattata tassativamente in ext2. Il resto a discrezione e in base al disco o ai dischi a disposizione. L’installazione procede come di consueto. In particolare io ho scelto la netinstall, per la comodità di avere un cd leggero e l’ADSL pagata per qualcosa di utile, hehehe!
Una volta finita l’installazione, si riavvia la workstation.

A questo punto, prima di automatizzare la procedura di avvio, val la pena verificare che aboot legga correttamente l’immagine del kernel.
Come prima, digitando “l” si ha la lista dei kernel disponibili e digitando “0″ si avvia Debian col predefinito per la nostra installazione fresca fresca… e dopo poco si vedrà Etch in tutto il suo splendore.

Nel caso ci fossero problemi, premendo “q” in aboot oppure premendo come dei forsennati la combinazione CTRL-C, è possibile interrompere la sequenza di avvio e ritornare al prompt di SRM.
Da qui è sufficiente scrivere:

>>> boot <device> -flags <n>

nel mio caso:

>>> boot DKC0 -flags 0

per verificare che la workstation esegua correttamente il boot di Debian.

Se tutto va a buon fine – e si torna ad avere Debian in tutto il suo splendore -, usando i seguenti parametri digitabili sempre dal prompt di SRM, si imposta il boot automatico, in modo tale da saltare l’interazione con SRM e con aboot:

>>> set boot_osflags 0
>>> set bootdef_dev DKC0
>>> set auto_action BOOT

Qui poi o si riavvia la workstation oppure si scrive per l’ultima volta il comando di avvio dall’hard disk.

Bene! Spero che questo post possa essere di aiuto a qualcuno. Se ci fosse qualche integrazione utile da fare, basta postare i commenti.
Nel caso poi qualcuno avesse trovato un driver per la PowerStorm, mi farebbe un grandissimo favore passandomi il link :)

note:

  1. un pò rimaneggiata nei componenti hardware
  2. la Digital è stata acquistata da Compaq, che è stata acquistata da HP. Diversi brevetti su CPU e bus sono passati a società produttrici di microprocessori, acquisite o già partner dei due più grossi produttori mondiali di CPU
  3. altro colosso del periodo, insieme a Digital, Silicon Graphics, Sun… nella produzione di sistemi per l’elaborazione grafica 2D e 3D, l’elaborazione video, ecc.
  4. FX!32 funzionava come layer di emulazione di un processore Intel e contemporaneamente come traduttore di codice binario: alla prima esecuzione del software per x86, mentre il programma era disponibile per l’utente, traduceva le istruzioni in codice nativo per Alpha; alla seconda esecuzione quindi si usufruiva di una versione nativa del programma stesso, senza dover più ricorrere alla versione x86, se non per tradurre eventuali funzionalità non ancora utilizzate dall’utente


Servizi Web e Consulenza Informatica Web Mastering e Customizzazione Applicazioni, Siti e Portali Web