File: ultralinux.html

package info (click to toggle)
pj-9805 1.0-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 396 kB
  • ctags: 24
  • sloc: makefile: 39; sh: 18
file content (216 lines) | stat: -rw-r--r-- 9,279 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Linux su UltraSparc</TITLE>
</HEAD>

<BODY LINK="#0000ff" VLINK="#0000ff" ALINK="#0000ff" BGCOLOR="#ffffff">

<TABLE BORDER=0 CELLPADDING=0 WIDTH=100%>
<TR>

<TD ALIGN=left BGCOLOR="#ffffff">
<A HREF="linux-edicola.html">
<IMG ALT="[precedente]" SRC="pj_images/a_left.gif" BORDER=0></A>
</TD>

<TD ALIGN=center BGCOLOR="#cccccc">
<FONT COLOR="#00ff00">
<A HREF="linux-edicola.html">CDROM-edicola</A>
- <A HREF="index.html">Copertina</A> -
<A HREF="kde.html">KDE</A>
</FONT>
</TD>

<TD ALIGN=right BGCOLOR="#ffffff">
<A HREF="kde.html">
<IMG ALT="[successivo]" SRC="pj_images/a_right.gif" BORDER=0></A>
</TD>

</TR>
</TABLE>


<P ALIGN=right>
<FONT SIZE=+3 COLOR="#ff0000">
<EM>Articoli</EM>
</FONT>
<HR>

<P ALIGN=center>
<FONT SIZE=+3 COLOR="#0000FF">Linux su UltraSparc
</FONT>
</P>


<P>Provare Linux su macchine diverse dai soliti Intel &egrave; sempre emozionante.
Specie quando ti capita per le mani una vera ``bestia'' di calcolatore.</P>

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

<P>Appena ha avuto l'occasione di tornare in Italia per un paio di
settimane, per&ograve;, mi ha rintracciato chiedendomi di sistemargli la Sparc
configurandogli a puntino Solaris (installando <CODE>make</CODE>,
<CODE>gcc</CODE> e configurandolo con l'<CODE>ls</CODE> 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 &egrave; 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.</P>


<P>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 <CODE>[stop][a]</CODE> per i comandi ``speciali'', e che una volta
installato Linux, usarlo &egrave; praticamente identico ad un Intel.</P>

<P>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:

<UL>
<LI>RedHat 4.2 per Sparc (non &egrave; uscita la 5 per Sparc, ancora)
<LI>UltraPenguin 1.0 (RedHat 4.2 per Sparc adattata per le macchine Ultra)
<LI>Debian 2.0 frozen per Sparc (non si sa mai, se mi avanza tempo...)
</UL></P>

<P>Da prove che ho effettuato (con <CODE>cmp</CODE>), quasi tutti i
pacchetti <CODE>.rpm</CODE> 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&nbsp;bit) e
alcuni piccoli ritocchi qua e l&agrave; rispetto alla RedHat.</P>

<P>La documentazione &egrave; scarsetta, ma provo subito a creare i floppy di
avvio. Non ne va manco uno, n&eacute; quelli di RedHat, n&eacute; quelli di UltraPenguin,
n&eacute; quelli di Debian. Non mi resta che provare via rete.</P>

<P>C'&egrave; da dire che la prova pi&ugrave; ovvia da fare &egrave; 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.</P>

<P>Quando si d&agrave; il comando ``<CODE>boot&nbsp;net</CODE>'' al prompt della
Sparc, questa manda in rete un messaggio <EM>RARP</EM> per chiedere qual &egrave;
il suo indirizzo IP, poi tramite <EM>tftp</EM> 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&agrave;
immane.</P>

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

<P>Anche la seconda fase, <EM>tftp</EM>, si supera con facilit&agrave;. Basta
assicurarsi che in <CODE>/etc/inetd.conf</CODE> sia abilitata la riga
relativa a <CODE>in.tftpd</CODE> 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 <CODE>in.tftpd</CODE> &egrave;
<CODE>/boot</CODE>.</P>

<P>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&igrave; a convertire in esadecimale
l'IP, &egrave; sufficiente dare il comando ``<CODE>boot&nbsp;net</CODE>'' alla
Sparc, e vedere nei log della macchina che fa da server quale file viene
chiesto a <CODE>in.ftpd</CODE>. In questo modo basta un link simbolico tra
il file immagine e il file chiesto a <CODE>in.tftpd</CODE>, e si ha anche la
conferma che <EM>RARP</EM> &egrave; perfettamente configurato.</P>

<P>Adesso, quindi, se si usa l'immagine giusta, si pu&ograve; installare Linux
sulla Sparc. Quella che ha funzionato, l'ho trovata nella directory
<CODE>updates</CODE> 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&igrave;, in effetti nella Sparc
sta girando Linux. Dopo una decina di secondi (inizializzazione scsi e altre
periferiche) parte la schermata di installazione di Linux!&nbsp;:-)</P>

<P>Da qui in avanti si tratta di installare una RedHat, quindi non entro nei
dettagli. Un accorgimento durante il partizionamento &egrave; tenere la 3a
partizione (<CODE>/dev/sda3</CODE>) 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).</P>

<P>Un errore che ho avuto &egrave; il boot successivo all'installazione. RedHat (su
cui &egrave; 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
(<CODE>vmlinux.gz</CODE>) che si trova nell'area degli aggiornamenti
(<CODE>updates</CODE>) e copiarla sopra il kernel installato da RedHat. La
versione che ho usato e che era presente nella distribuzione &egrave; la
2.1.85.</P>

<P>Successivamente il funzionamento della macchina &egrave; 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, <CODE>ls</CODE> colorato, e quasi tutte le cose tipiche di una
distribuzione Linux su Intel. Purtroppo alcuni programmi non funzionano,
tipo <CODE>passwd</CODE>, <CODE>X</CODE> e <CODE>ssh</CODE>, quest'ultimo ho
tentato di compilarlo.</P>

<P>Per <CODE>passwd</CODE> non c'&egrave; 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 <CODE>passwd</CODE> era bloccare
<CODE>/etc/passwd</CODE>). L'ho risolto con uno script <CODE>/bin/sh</CODE>
che fa quasi l'equivalente di <CODE>passwd</CODE>.</P>

<P>Per <CODE>X</CODE> &egrave; bastato installare il pacchetto aggiornato,
distribuito con UltraPenguin. Ho rinunciato a <CODE>ssh</CODE> per mancanza
di tempo: la Sparc doveva tornare in patria.</P>

<P>Le altre distribuzioni non le ho provate. RedHat non ne valeva la pena,
essendo UltraPenguin gi&agrave; 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.</P>


<H2>Alcuni link</H2>

<P><A HREF="http://www.geog.ubc.ca/s_linux.html">
Linux per Processori SPARC</A><BR>
<A HREF="http://sunsite.mff.cuni.cz/linux/ultrapenguin-1.0/">
UltraPenguin 1.0</A></P>


<P ALIGN=RIGHT>di
<A HREF="mailto:dalla@pluto.linux.it">Michele Dalla Silvestra</A>
</P>


<HR>
<TABLE BORDER=0 CELLPADDING=0 WIDTH=100%>
<TR>

<TD ALIGN=left BGCOLOR="#ffffff">
<A HREF="linux-edicola.html">
<IMG ALT="[precedente]" SRC="pj_images/a_left.gif" BORDER=0></A>
</TD>

<TD ALIGN=center BGCOLOR="#cccccc">
<FONT COLOR="#00ff00">
<A HREF="linux-edicola.html">CDROM-edicola</A>
- <A HREF="index.html">Copertina</A> -
<A HREF="kde.html">KDE</A>
</FONT>
</TD>

<TD ALIGN=right BGCOLOR="#ffffff">
<A HREF="kde.html">
<IMG ALT="[successivo]" SRC="pj_images/a_right.gif" BORDER=0></A>
</TD>

</TR>
</TABLE>

</BODY>
</HTML>