1.. include:: ../disclaimer-ita.rst
2
3:Original: :ref:`Documentation/process/changes.rst <changes>`
4:Translator: Federico Vaga <federico.vaga@vaga.pv.it>
5
6.. _it_changes:
7
8Requisiti minimi per compilare il kernel
9++++++++++++++++++++++++++++++++++++++++
10
11Introduzione
12============
13
14Questo documento fornisce una lista dei software necessari per eseguire i
15kernel 4.x.
16
17Questo documento è basato sul file "Changes" del kernel 2.0.x e quindi le
18persone che lo scrissero meritano credito (Jared Mauch, Axel Boldt,
19Alessandro Sigala, e tanti altri nella rete).
20
21Requisiti minimi correnti
22*************************
23
24Prima di pensare d'avere trovato un baco, aggiornate i seguenti programmi
25**almeno** alla versione indicata!  Se non siete certi della versione che state
26usando, il comando indicato dovrebbe dirvelo.
27
28Questa lista presume che abbiate già un kernel Linux funzionante.  In aggiunta,
29non tutti gli strumenti sono necessari ovunque; ovviamente, se non avete una
30PC Card, per esempio, probabilmente non dovreste preoccuparvi di pcmciautils.
31
32====================== =================  ========================================
33        Programma       Versione minima       Comando per verificare la versione
34====================== =================  ========================================
35GNU C                  4.6                gcc --version
36GNU make               3.81               make --version
37binutils               2.21               ld -v
38flex                   2.5.35             flex --version
39bison                  2.0                bison --version
40util-linux             2.10o              fdformat --version
41kmod                   13                 depmod -V
42e2fsprogs              1.41.4             e2fsck -V
43jfsutils               1.1.3              fsck.jfs -V
44reiserfsprogs          3.6.3              reiserfsck -V
45xfsprogs               2.6.0              xfs_db -V
46squashfs-tools         4.0                mksquashfs -version
47btrfs-progs            0.18               btrfsck
48pcmciautils            004                pccardctl -V
49quota-tools            3.09               quota -V
50PPP                    2.4.0              pppd --version
51nfs-utils              1.0.5              showmount --version
52procps                 3.2.0              ps --version
53oprofile               0.9                oprofiled --version
54udev                   081                udevd --version
55grub                   0.93               grub --version || grub-install --version
56mcelog                 0.6                mcelog --version
57iptables               1.4.2              iptables -V
58openssl & libcrypto    1.0.0              openssl version
59bc                     1.06.95            bc --version
60Sphinx\ [#f1]_         1.3                sphinx-build --version
61====================== =================  ========================================
62
63.. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
64
65Compilazione del kernel
66***********************
67
68GCC
69---
70
71La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel
72vostro calcolatore.
73
74Make
75----
76
77Per compilare il kernel vi servirà GNU make 3.81 o successivo.
78
79Binutils
80--------
81
82Per generare il kernel è necessario avere Binutils 2.21 o superiore.
83
84pkg-config
85----------
86
87Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per
88verificare l'esistenza degli strumenti kconfig e per determinare le
89impostazioni da usare in 'make {g,x}config'.  Precedentemente pkg-config
90veniva usato ma non verificato o documentato.
91
92Flex
93----
94
95Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
96un analizzatore lessicale.  Questo richiede flex 2.5.35 o successivo.
97
98Bison
99-----
100
101Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
102un parsificatore.  Questo richiede bison 2.0 o successivo.
103
104Perl
105----
106
107Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,
108``Getopt::Std``, ``File::Basename``, e ``File::Find``.
109
110BC
111--
112
113Vi servirà bc per compilare i kernel dal 3.10 in poi.
114
115OpenSSL
116-------
117
118Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli
119e la gestione dei certificati; sono usati per la creazione della chiave e
120la generazione della firma.
121
122Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il
123kernel 3.7 e successivi.  Vi serviranno anche i pacchetti di sviluppo di
124openssl per compilare il kernel 4.3 o successivi.
125
126
127Strumenti di sistema
128********************
129
130Modifiche architetturali
131------------------------
132
133DevFS è stato reso obsoleto da udev
134(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
135
136Il supporto per UID a 32-bit è ora disponibile.  Divertitevi!
137
138La documentazione delle funzioni in Linux è una fase di transizione
139verso una documentazione integrata nei sorgenti stessi usando dei commenti
140formattati in modo speciale e posizionati vicino alle funzioni che descrivono.
141Al fine di arricchire la documentazione, questi commenti possono essere
142combinati con i file ReST presenti in Documentation/; questi potranno
143poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.
144Per convertire i documenti da ReST al formato che volete, avete bisogno di
145Sphinx.
146
147Util-linux
148----------
149
150Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per
151dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono
152più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;
153e altre chicche.  Probabilmente vorrete aggiornarlo.
154
155Ksymoops
156--------
157
158Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento
159ksymoops per decodificarlo, ma nella maggior parte dei casi non vi servirà.
160Generalmente è preferibile compilare il kernel con l'opzione ``CONFIG_KALLSYMS``
161cosicché venga prodotto un output più leggibile che può essere usato così com'è
162(produce anche un output migliore di ksymoops).  Se per qualche motivo il
163vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di
164ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete
165usare ksymoops per decodificare l'oops.
166
167Mkinitrd
168--------
169
170I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di
171mkinitrd.
172
173E2fsprogs
174---------
175
176L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.
177Ovviamente, aggiornarlo è una buona idea.
178
179JFSutils
180--------
181
182Il pacchetto ``jfsutils`` contiene programmi per il file-system JFS.
183Sono disponibili i seguenti strumenti:
184
185- ``fsck.jfs`` - avvia la ripetizione del log delle transizioni, e verifica e
186  ripara una partizione formattata secondo JFS
187
188- ``mkfs.jfs`` - crea una partizione formattata secondo JFS
189
190- sono disponibili altri strumenti per il file-system.
191
192Reiserfsprogs
193-------------
194
195Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux
196kernel 2.4.x).  Questo è un pacchetto combinato che contiene versioni
197funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e
198``reiserfsck``.  Questi programmi funzionano sulle piattaforme i386 e alpha.
199
200Xfsprogs
201--------
202
203L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi
204``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.
205Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi
206dovrebbe funzionare correttamente con la versione corrente del codice
207XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via
208di importanti miglioramenti).
209
210PCMCIAutils
211-----------
212
213PCMCIAutils sostituisce ``pcmica-cs``.  Serve ad impostare correttamente i
214connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per
215i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema
216hotplug è in uso.
217
218Quota-tools
219-----------
220
221Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del
222formato quota.  La versione 3.07 e successive di quota-tools supportano
223questo formato.  Usate la versione raccomandata nella lista qui sopra o una
224successiva.
225
226Micro codice per Intel IA32
227---------------------------
228
229Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un
230apposito driver; il driver è accessibile come un normale dispositivo a
231caratteri (misc).  Se non state usando udev probabilmente sarà necessario
232eseguire i seguenti comandi come root prima di poterlo aggiornare::
233
234  mkdir /dev/cpu
235  mknod /dev/cpu/microcode c 10 184
236  chmod 0644 /dev/cpu/microcode
237
238Probabilmente, vorrete anche il programma microcode_ctl da usare con questo
239dispositivo.
240
241udev
242----
243
244``udev`` è un programma in spazio utente il cui scopo è quello di popolare
245dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.
246``udev`` sostituisce le funzionalità base di devfs, consentendo comunque
247nomi persistenti per i dispositivi.
248
249FUSE
250----
251
252Serve libfuse 2.4.0 o successiva.  Il requisito minimo assoluto è 2.3.0 ma
253le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.
254
255
256Rete
257****
258
259Cambiamenti generali
260--------------------
261
262Se per quanto riguarda la configurazione di rete avete esigenze di un certo
263livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.
264
265Filtro dei pacchetti / NAT
266--------------------------
267
268Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi
269strumenti come nelle versioni del kernel antecedenti la 2.4.x (iptables).
270Include ancora moduli di compatibilità per 2.2.x ipchains e 2.0.x ipdwadm.
271
272PPP
273---
274
275Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e
276per funzionare su diversi livelli.  Se usate PPP, aggiornate pppd almeno alla
277versione 2.4.0.
278
279Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root
280col seguente comando::
281
282  mknod /dev/ppp c 108 0
283
284
285NFS-utils
286---------
287
288Nei kernel più antichi (2.4 e precedenti), il server NFS doveva essere
289informato sui clienti ai quali si voleva fornire accesso via NFS.  Questa
290informazione veniva passata al kernel quando un cliente montava un file-system
291mediante ``mountd``, oppure usando ``exportfs`` all'avvio del sistema.
292exportfs prende le informazioni circa i clienti attivi da ``/var/lib/nfs/rmtab``.
293
294Questo approccio è piuttosto delicato perché dipende dalla correttezza di
295rmtab, che non è facile da garantire, in particolare quando si cerca di
296implementare un *failover*.  Anche quando il sistema funziona bene, ``rmtab``
297ha il problema di accumulare vecchie voci inutilizzate.
298
299Sui kernel più recenti il kernel ha la possibilità di informare mountd quando
300arriva una richiesta da una macchina sconosciuta, e mountd può dare al kernel
301le informazioni corrette per l'esportazione.  Questo rimuove la dipendenza con
302``rmtab`` e significa che il kernel deve essere al corrente solo dei clienti
303attivi.
304
305Per attivare questa funzionalità, dovete eseguire il seguente comando prima di
306usare exportfs o mountd::
307
308  mount -t nfsd nfsd /proc/fs/nfsd
309
310Dove possibile, raccomandiamo di proteggere tutti i servizi NFS dall'accesso
311via internet mediante un firewall.
312
313mcelog
314------
315
316Quando ``CONFIG_x86_MCE`` è attivo, il programma mcelog processa e registra
317gli eventi *machine check*.  Gli eventi *machine check* sono errori riportati
318dalla CPU.  Incoraggiamo l'analisi di questi errori.
319
320
321Documentazione del kernel
322*************************
323
324Sphinx
325------
326
327Per i dettaglio sui requisiti di Sphinx, fate riferimento a :ref:`it_sphinx_install`
328in :ref:`Documentation/translations/it_IT/doc-guide/sphinx.rst <it_sphinxdoc>`
329
330Ottenere software aggiornato
331============================
332
333Compilazione del kernel
334***********************
335
336gcc
337---
338
339- <ftp://ftp.gnu.org/gnu/gcc/>
340
341Make
342----
343
344- <ftp://ftp.gnu.org/gnu/make/>
345
346Binutils
347--------
348
349- <https://www.kernel.org/pub/linux/devel/binutils/>
350
351Flex
352----
353
354- <https://github.com/westes/flex/releases>
355
356Bison
357-----
358
359- <ftp://ftp.gnu.org/gnu/bison/>
360
361OpenSSL
362-------
363
364- <https://www.openssl.org/>
365
366Strumenti di sistema
367********************
368
369Util-linux
370----------
371
372- <https://www.kernel.org/pub/linux/utils/util-linux/>
373
374Kmod
375----
376
377- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
378- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
379
380Ksymoops
381--------
382
383- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
384
385Mkinitrd
386--------
387
388- <https://code.launchpad.net/initrd-tools/main>
389
390E2fsprogs
391---------
392
393- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
394- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
395
396JFSutils
397--------
398
399- <http://jfs.sourceforge.net/>
400
401Reiserfsprogs
402-------------
403
404- <https://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/>
405
406Xfsprogs
407--------
408
409- <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
410- <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
411
412Pcmciautils
413-----------
414
415- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
416
417Quota-tools
418-----------
419
420- <http://sourceforge.net/projects/linuxquota/>
421
422
423Microcodice Intel P6
424--------------------
425
426- <https://downloadcenter.intel.com/>
427
428udev
429----
430
431- <http://www.freedesktop.org/software/systemd/man/udev.html>
432
433FUSE
434----
435
436- <https://github.com/libfuse/libfuse/releases>
437
438mcelog
439------
440
441- <http://www.mcelog.org/>
442
443Rete
444****
445
446PPP
447---
448
449- <https://download.samba.org/pub/ppp/>
450- <https://git.ozlabs.org/?p=ppp.git>
451- <https://github.com/paulusmack/ppp/>
452
453
454NFS-utils
455---------
456
457- <http://sourceforge.net/project/showfiles.php?group_id=14>
458
459Iptables
460--------
461
462- <https://netfilter.org/projects/iptables/index.html>
463
464Ip-route2
465---------
466
467- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
468
469OProfile
470--------
471
472- <http://oprofile.sf.net/download/>
473
474NFS-Utils
475---------
476
477- <http://nfs.sourceforge.net/>
478
479Documentazione del kernel
480*************************
481
482Sphinx
483------
484
485- <http://www.sphinx-doc.org/>
486