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