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