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