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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
|
<!-- retain these comments for translator revision tracking -->
<!-- original version: 40980 -->
<sect1 id="kernel-baking">
<!-- <title>Compiling a New Kernel</title> -->
<title>Compilazione di un nuovo kernel</title>
<para>
<!--
Why would someone want to compile a new kernel? It is often not
necessary since the default kernel shipped with Debian handles most
configurations. Also, Debian often offers several alternative kernels.
So you may want to check first if there is an alternative kernel image
package that better corresponds to your hardware. However, it can be
useful to compile a new kernel in order to:
-->
Perché qualcuno dovrebbe compilarsi un nuovo kernel? Spesso non è
necessario dato che il kernel inserito in Debian gestisce la
maggior parte delle configurazioni. Inoltre Debian offre parecchi kernel
alternativi, quindi si dovrebbe come prima cosa controllare se fra i
pacchetti con kernel alternativi ce n'è uno che si adatta meglio al proprio
hardware. Comunque può essere utile compilare un nuovo kernel per poter:
<itemizedlist>
<listitem><para>
<!--
handle special hardware needs, or hardware conflicts with the
pre-supplied kernels
-->
gestire hardware particolare o gestire conflitti hardware con kernel
preconfezionati
</para></listitem>
<listitem><para>
<!--
use options of the kernel which are not supported in the pre-supplied
kernels (such as high memory support)
-->
usare opzioni del kernel che non sono supportate dai kernel preconfezionati
(per esempio il supporto per la memoria alta)
</para></listitem>
<listitem><para>
<!--
optimize the kernel by removing useless drivers to speed up boot time
-->
ottimizzare il kernel rimuovendo i driver inutili in modo da velocizzare
l'avvio del sistema
</para></listitem>
<listitem><para>
<!--
create a monolithic instead of a modularized kernel
-->
creare un kernel monolitico al posto di uno modulare
</para></listitem>
<listitem><para>
<!--
run an updated or development kernel
-->
usare un kernel aggiornato o di sviluppo
</para></listitem>
<listitem><para>
<!--
learn more about linux kernels
-->
imparare cose nuove sui kernel linux
</para></listitem>
</itemizedlist>
</para>
<sect2>
<!-- <title>Kernel Image Management</title> -->
<title>Gestione dell'immagine del kernel</title>
<para>
<!--
Don't be afraid to try compiling the kernel. It's fun and profitable.
-->
Non ci si deve impaurire nel provare a compilare il kernel. È
divertente e utile.
</para><para>
<!--
To compile a kernel the Debian way, you need some packages:
<classname>fakeroot</classname>, <classname>kernel-package</classname>,
<classname>linux-source-2.6</classname>
and a few others which are probably already installed (see
<filename>/usr/share/doc/kernel-package/README.gz</filename> for the
complete list).
-->
Per compilare il kernel con il metodo seguito da Debian sono necessari
alcuni pacchetti: <classname>fakeroot</classname>,
<classname>kernel-package</classname>,
<classname>linux-source-2.6</classname>
e pochi altri che probabilmente sono già installati (si consulti
<filename>/usr/share/doc/kernel-package/README.gz</filename> per
l'elenco completo).
</para><para>
<!--
This method will make a .deb of your kernel source, and, if you have
non-standard modules, make a synchronized dependent .deb of those
too. It's a better way to manage kernel images;
<filename>/boot</filename> will hold the kernel, the System.map, and a
log of the active config file for the build.
-->
Questo metodo crea un .deb dai sorgenti del kernel e, se si hanno dei
moduli non-standard, crea anche un .deb di questi moduli sincronizzato
con il precedente. Questo è il miglior modo di gestire le immagini del
kernel; in <filename>/boot</filename> vengono inseriti il kernel, il file
System.map e un log con le configurazioni attive durante la compilazione.
</para><para>
<!--
Note that you don't <emphasis>have</emphasis> to compile your kernel
the <quote>Debian way</quote>; but we find that using the packaging system
to manage your kernel is actually safer and easier. In fact, you can get
your kernel sources right from Linus instead of
<classname>linux-source-2.6</classname>,
yet still use the <classname>kernel-package</classname> compilation method.
-->
Notare che <emphasis>non</emphasis> è obbligatorio compilare il kernel
<quote>alla Debian</quote>; ma l'uso del sistema di pacchetti per gestire
il kernel è realmente più sicuro e più semplice. In pratica si possono
anche reperire i sorgenti del kernel direttamente da Linus anziché da
<classname>linux-source-2.6</classname> e comunque usare il metodo di
compilazione con <classname>kernel-package</classname>.
</para><para>
<!--
Note that you'll find complete documentation on using
<classname>kernel-package</classname> under
<filename>/usr/share/doc/kernel-package</filename>. This section just
contains a brief tutorial.
-->
Notare che è possibile trovare la documentazione completa sull'uso di
<classname>kernel-package</classname> in
<filename>/usr/share/doc/kernel-package</filename>. Questa sezione
contiene solo un breve manuale introduttivo.
</para><para>
<!--
Hereafter, we'll assume you have free rein over your machine and will
extract your kernel source to somewhere in your home directory<footnote>
-->
D'ora in avanti si suppone che si abbia il controllo completo della
macchina e che i sorgenti del kernel siano da qualche parte all'interno
della propria home directory<footnote>
<para>
<!--
There are other locations where you can extract kernel sources and build
your custom kernel, but this is easiest as it does not require special
permissions.
-->
Ci sono molti altri posti in cui è possibile estrarre i sorgenti del
kernel e compilare un kernel personalizzato, ma è molto più semplice
se questa operazione non richiede dei permessi speciali.
</para>
<!--
</footnote>. We'll also assume that your kernel version is
&kernelversion;. Make sure you are in the directory to where you want to
unpack the kernel sources, extract them using
<userinput>tar xjf /usr/src/linux-source-&kernelversion;.tar.bz2</userinput>
and change to the directory
<filename>linux-source-&kernelversion;</filename>
that will have been created.
-->
</footnote>. Si suppone anche che la versione del kernel sia
&kernelversion;. Assicurarsi di trovarsi nella directory in cui si vuole
scompattare i sorgenti del kernel, estrarli usando
<userinput>tar xjf /usr/src/linux-source-&kernelversion;.tar.bz2</userinput>
e cambiare la directory corrente in
<filename>linux-source-&kernelversion;</filename>
che è stata appena creata.
</para><para>
<!--
Now, you can configure your kernel. Run <userinput>make
xconfig</userinput> if X11 is installed, configured and being run; run
<userinput>make menuconfig</userinput> otherwise (you'll need
<classname>libncurses5-dev</classname> installed). Take the time to read
the online help and choose carefully. When in doubt, it is typically
better to include the device driver (the software which manages
hardware peripherals, such as Ethernet cards, SCSI controllers, and so
on) you are unsure about. Be careful: other options, not related to a
specific hardware, should be left at the default value if you do not
understand them. Do not forget to select <quote>Kernel module loader</quote>
in <quote>Loadable module support</quote> (it is not selected by default).
If not included, your Debian installation will experience problems.
-->
Adesso si può configurare il kernel. Eseguire <userinput>make
xconfig</userinput> se X11 è installato, configurato e in esecuzione;
altrimenti eseguire <userinput>make menuconfig</userinput> (è necessario
che sia installato il pacchetto <classname>libncurses5-dev</classname>).
Prendersi tutto il tempo necessario per leggere l'aiuto in linea e
scegliere con attenzione; in caso di dubbi di solito è consigliabile
includere i driver dei dispositivi (il software che gestisce le
periferiche hardware come le schede Ethernet, i controller SCSI e così
via) se non si è sicuri. Attenzione: se non si capisce il significato
delle altre opzioni non legate a un hardware specifico si dovrebbero
lasciare al valore predefinito. Non ci si deve dimenticare di selezionare
<quote>Kernel module loader</quote> in <quote>Loadable module
support</quote> (normalmente non è selezionato), altrimenti il proprio
sistema Debian rischia di avere dei seri problemi.
</para><para>
<!--
Clean the source tree and reset the <classname>kernel-package</classname>
parameters. To do that, do <userinput>make-kpkg clean</userinput>.
-->
Ripulire i sorgenti e ripristinare i parametri di
<classname>kernel-package</classname> usando <userinput>make-kpkg
clean</userinput>.
</para><para>
<!--
Now, compile the kernel:
<userinput>fakeroot make-kpkg -initrd -revision=custom.1.0 kernel_image</userinput>.
The version number of <quote>1.0</quote> can be changed at will; this is just
a version number that you will use to track your kernel builds.
Likewise, you can put any word you like in place of <quote>custom</quote>
(e.g., a host name). Kernel compilation may take quite a while, depending on
the power of your machine.
-->
Adesso compilare il kernel con: <userinput>fakeroot make-kpkg --initrd
--revision=custom.1.0 kernel_image</userinput>. Il numero di versione
<quote>1.0</quote> può essere cambiato secondo le necessità;
questo è semplicemente il numero di versione che si può usare per
tener traccia delle compilazioni del kernel. Allo stesso modo si può
inserire qualsiasi parola al posto di <quote>custom</quote> (p.e. il
nome dell'host). La compilazione del kernel richiede un po' di tempo,
in base alla potenza della macchina.
</para><para>
<!--
Once the compilation is complete, you can install your custom kernel
like any package. As root, do
<userinput>dpkg -i
../linux-image-&kernelversion;-<replaceable>subarchitecture</replaceable>_custom.1.0_&architecture;.deb</userinput>.
The <replaceable>subarchitecture</replaceable> part is an optional
sub-architecture,
<phrase arch="i386"> such as <quote>686</quote>, </phrase>
depending on what kernel options you set.
<userinput>dpkg -i</userinput> will install the
kernel, along with some other nice supporting files. For instance,
the <filename>System.map</filename> will be properly installed
(helpful for debugging kernel problems), and
<filename>/boot/config-&kernelversion;</filename> will be installed,
containing your current configuration set. Your new
kernel package is also clever enough to automatically update your boot
loader to use the new kernel. If you have created a modules package,
you'll need to install that package as well.
-->
Finita la compilazione è possibile installare il proprio kernel
personalizzato come qualsiasi altro pacchetto. Da root eseguire
<userinput>dpkg -i
../linux-image-&kernelversion;-<replaceable>subarchitecture</replaceable>_custom.1.0_&architecture;.deb</userinput>.
La parte <replaceable>sottoarchitettura</replaceable> è opzionale e
indica la sottoarchitettura,
<phrase arch="i386"> per esempio <quote>686</quote>, </phrase>
in base alle opzioni del kernel sono state attivate.
<userinput>dpkg -i</userinput> installa il kernel più
alcuni file di supporto. Per esempio sono installati i file
<filename>System.map</filename> (utile per il debug del kernel) e
<filename>/boot/config-&kernelversion;</filename> che contiene la
configurazione. Il nuovo pacchetto con il kernel è anche in grado di
aggiornare automaticamente il bootloader in modo da poter usare il nuovo
kernel. Se si è creato anche un pacchetto con i moduli allora
è necessario installare anche questo pacchetto.
</para><para>
<!--
It is time to reboot the system: read carefully any warning that the
above step may have produced, then <userinput>shutdown -r now</userinput>.
-->
Adesso si deve riavviare il sistema: leggere attentamente tutti gli
avvertimenti che potrebbero apparire durante il passo precedente e
poi eseguire <userinput>shutdown -r now</userinput>.
</para><para>
<!--
For more information on Debian kernels and kernel compilation, see the
<ulink url="&url-kernel-handbook;">Debian Linux Kernel Handbook</ulink>.
For more information on <classname>kernel-package</classname>, read
the fine documentation in <filename>/usr/share/doc/kernel-package</filename>.
-->
Per ulteriori informazioni sui kernel Debian e sulla
compilazione del kernel si consulti il
<ulink url="&url-kernel-handbook;">Debian Linux Kernel Handbook</ulink>.
Per ulteriori informazioni su <classname>kernel-package</classname>
si consulti l'eccellente documentazione in
<filename>/usr/share/doc/kernel-package</filename>.
</para>
</sect2>
</sect1>
|