[precedente] CDROM-edicola - Copertina - KDE [successivo]

Articoli


Linux su UltraSparc

Provare Linux su macchine diverse dai soliti Intel è sempre emozionante. Specie quando ti capita per le mani una vera ``bestia'' di calcolatore.

Ho trovato un amico che sta facendo il ricercatore al CNR in Francia, e che si è trovato per le mani una Sparc Ultra 1, che nessun altro usava e/o gestiva. Sopra, ovviamente (o quasi) c'era installato Solaris, però ha sentito da subito la mancanza del Linux che era abituato ad usare all'università in Italia.

Appena ha avuto l'occasione di tornare in Italia per un paio di settimane, però, mi ha rintracciato chiedendomi di sistemargli la Sparc configurandogli a puntino Solaris (installando make, gcc e configurandolo con l'ls a colori e altre ``raffinatezze'') oppure installandoci sopra Linux. Avevo a disposizione tutte le scartoffie e i CD col Solaris (ma in francese), mentre per Linux non avevo altro che le risorse disponibili in rete. La fortuna è stata che trattandosi della settimana di Pasqua, con nessuno o quasi al dipartimento universitario, ho potuto portare a casa la Sparc per lavorarci con comodo.

Qui viene il bello, visto che di Sparc so solo che sono belle, che sopra non ci gira ancora Windows (per fortuna), che esiste la combinazione di tasti [stop][a] per i comandi ``speciali'', e che una volta installato Linux, usarlo è praticamente identico ad un Intel.

Con queste conoscenze, mi porto a casa la Sparc, insieme anche ad un Gb di software scaricato dalla rete, appunto per provare Linux. Il software che ho scaricato consiste in:

Da prove che ho effettuato (con cmp), quasi tutti i pacchetti .rpm della UltraPenguin sono identici ai corrispondenti RedHat, e a quanto pare la distribuzione UltraPenguin contiene solo il kernel Linux adattato per le macchine Ultra (64 bit) e alcuni piccoli ritocchi qua e là rispetto alla RedHat.

La documentazione è scarsetta, ma provo subito a creare i floppy di avvio. Non ne va manco uno, né quelli di RedHat, né quelli di UltraPenguin, né quelli di Debian. Non mi resta che provare via rete.

C'è da dire che la prova più ovvia da fare è usando UltraPenguin, essendo questa specifica per la macchina che mi ritrovo. Ma a quanto pare tutti credono che la gente sappia come far fare il boot via rete ad una Sparc. Le istruzioni (semplici, peraltro) le ho trovate in un file di testo in mezzo ai dischi di avvio della Debian Sparc.

Quando si dà il comando ``boot net'' al prompt della Sparc, questa manda in rete un messaggio RARP per chiedere qual è il suo indirizzo IP, poi tramite tftp scarica un'immagine contenente kernel e filesystem di base. Basta quindi avere un'altra macchina Linux in rete (anche Intel) e le cose diventano di una semplicità immane.

Basta quindi un comando ``rarp'' seguito da un comando ``arp'' con i parametri identici (il primo l'IP da assegnare, il secondo l'indirizzo hardware della ethernet della Sparc, quest'ultimo è mostrato all'accensione della macchina). Per fare ciò è necessario che il kernel sia stato compilato con l'opzione RARPD abilitata, cosa che normalmente succede. Inoltre serve anche una rete ben configurata (ovvio), e scegliere il corretto IP da assegnare alla sparc.

Anche la seconda fase, tftp, si supera con facilità. Basta assicurarsi che in /etc/inetd.conf sia abilitata la riga relativa a in.tftpd e verificare in quale directory del filesystem vengono cercate le immagini da mandare in base alle richieste ricevute. Nel mio caso, la directory usata da in.tftpd è /boot.

Qui occorre copiare il file immagine per il boot via rete della Sparc, chiamandolo con l'IP assegnato alla Sparc scritto in esadecimale (8 caratteri). Per chi non ha tempo di star lì a convertire in esadecimale l'IP, è sufficiente dare il comando ``boot net'' alla Sparc, e vedere nei log della macchina che fa da server quale file viene chiesto a in.ftpd. In questo modo basta un link simbolico tra il file immagine e il file chiesto a in.tftpd, e si ha anche la conferma che RARP è perfettamente configurato.

Adesso, quindi, se si usa l'immagine giusta, si può installare Linux sulla Sparc. Quella che ha funzionato, l'ho trovata nella directory updates della distribuzione UltraPenguin. Questa immagine viene caricata dalla Sparc, viene decompresso il kernel, e poi lo schermo diventa nero. Ma non solo, in alto a sinistra appare un pinguino molto simile al logo di Linux, e lo schermo si riempie di piccole scritte molto simili a quelle che appaiono al boot di Linux su Intel. Sì, in effetti nella Sparc sta girando Linux. Dopo una decina di secondi (inizializzazione scsi e altre periferiche) parte la schermata di installazione di Linux! :-)

Da qui in avanti si tratta di installare una RedHat, quindi non entro nei dettagli. Un accorgimento durante il partizionamento è tenere la 3a partizione (/dev/sda3) grande come l'intero disco, poi il resto si svolge come su macchine Intel (compresi i numeri da assegnare alle partizioni Linux e Linux Swap).

Un errore che ho avuto è il boot successivo all'installazione. RedHat (su cui è basata quasi completamente UltraPenguin) non installa lo stesso kernel usato per l'installazione, e quello installato automaticamente non funziona. Occorre quindi prima del riavvio prendere l'immagine del kernel (vmlinux.gz) che si trova nell'area degli aggiornamenti (updates) e copiarla sopra il kernel installato da RedHat. La versione che ho usato e che era presente nella distribuzione è la 2.1.85.

Successivamente il funzionamento della macchina è stato splendido, o almeno superiore alle aspettative: il kernel reggeva alla grande l'hardware sottostante, nessun messaggio di errore di memoria o disco. Console virtuali funzionanti, ls colorato, e quasi tutte le cose tipiche di una distribuzione Linux su Intel. Purtroppo alcuni programmi non funzionano, tipo passwd, X e ssh, quest'ultimo ho tentato di compilarlo.

Per passwd non c'è stato verso di farlo funzionare, a quanto pare il kernel per Sparc non ha ancora un buon sistema di lock dei file (o almeno il punto problematico di passwd era bloccare /etc/passwd). L'ho risolto con uno script /bin/sh che fa quasi l'equivalente di passwd.

Per X è bastato installare il pacchetto aggiornato, distribuito con UltraPenguin. Ho rinunciato a ssh per mancanza di tempo: la Sparc doveva tornare in patria.

Le altre distribuzioni non le ho provate. RedHat non ne valeva la pena, essendo UltraPenguin già una RedHat ottimizzata per Sparc Ultra. Debian, invece, non aveva dischetti funzionanti per la macchina che avevo per le mani, e neppure immagini per l'avvio da rete.

Alcuni link

Linux per Processori SPARC
UltraPenguin 1.0

di Michele Dalla Silvestra


[precedente] CDROM-edicola - Copertina - KDE [successivo]