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