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