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 un
30modem ISDN, per esempio, probabilmente non dovreste preoccuparvi di
31isdn4k-utils.
32
33====================== =================  ========================================
34        Programma       Versione minima       Comando per verificare la versione
35====================== =================  ========================================
36GNU C                  4.6                gcc --version
37GNU make               3.81               make --version
38binutils               2.20               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
52isdn4k-utils           3.1pre1            isdnctrl 2>&1|grep version
53nfs-utils              1.0.5              showmount --version
54procps                 3.2.0              ps --version
55oprofile               0.9                oprofiled --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.3                sphinx-build --version
63====================== =================  ========================================
64
65.. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
66
67Compilazione del kernel
68***********************
69
70GCC
71---
72
73La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel
74vostro calcolatore.
75
76Make
77----
78
79Per compilare il kernel vi servirà GNU make 3.81 o successivo.
80
81Binutils
82--------
83
84Il sistema di compilazione, dalla versione 4.13,  per la produzione dei passi
85intermedi, si è convertito all'uso di *thin archive* (`ar T`) piuttosto che
86all'uso del *linking* incrementale (`ld -r`). Questo richiede binutils 2.20 o
87successivo.
88
89pkg-config
90----------
91
92Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per
93verificare l'esistenza degli strumenti kconfig e per determinare le
94impostazioni da usare in 'make {g,x}config'.  Precedentemente pkg-config
95veniva usato ma non verificato o documentato.
96
97Flex
98----
99
100Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
101un analizzatore lessicale.  Questo richiede flex 2.5.35 o successivo.
102
103Bison
104-----
105
106Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
107un parsificatore.  Questo richiede bison 2.0 o successivo.
108
109Perl
110----
111
112Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,
113``Getopt::Std``, ``File::Basename``, e ``File::Find``.
114
115BC
116--
117
118Vi servirà bc per compilare i kernel dal 3.10 in poi.
119
120OpenSSL
121-------
122
123Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli
124e la gestione dei certificati; sono usati per la creazione della chiave e
125la generazione della firma.
126
127Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il
128kernel 3.7 e successivi.  Vi serviranno anche i pacchetti di sviluppo di
129openssl per compilare il kernel 4.3 o successivi.
130
131
132Strumenti di sistema
133********************
134
135Modifiche architetturali
136------------------------
137
138DevFS è stato reso obsoleto da udev
139(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
140
141Il supporto per UID a 32-bit è ora disponibile.  Divertitevi!
142
143La documentazione delle funzioni in Linux è una fase di transizione
144verso una documentazione integrata nei sorgenti stessi usando dei commenti
145formattati in modo speciale e posizionati vicino alle funzioni che descrivono.
146Al fine di arricchire la documentazione, questi commenti possono essere
147combinati con i file ReST presenti in Documentation/; questi potranno
148poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.
149Per convertire i documenti da ReST al formato che volete, avete bisogno di
150Sphinx.
151
152Util-linux
153----------
154
155Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per
156dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono
157più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;
158e altre chicche.  Probabilmente vorrete aggiornarlo.
159
160Ksymoops
161--------
162
163Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento
164ksymoops per decodificarlo, ma nella maggior parte dei casi non vi servirà.
165Generalmente è preferibile compilare il kernel con l'opzione ``CONFIG_KALLSYMS``
166cosicché venga prodotto un output più leggibile che può essere usato così com'è
167(produce anche un output migliore di ksymoops).  Se per qualche motivo il
168vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di
169ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete
170usare ksymoops per decodificare l'oops.
171
172Mkinitrd
173--------
174
175I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di
176mkinitrd.
177
178E2fsprogs
179---------
180
181L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.
182Ovviamente, aggiornarlo è una buona idea.
183
184JFSutils
185--------
186
187Il pacchetto ``jfsutils`` contiene programmi per il file-system JFS.
188Sono disponibili i seguenti strumenti:
189
190- ``fsck.jfs`` - avvia la ripetizione del log delle transizioni, e verifica e
191  ripara una partizione formattata secondo JFS
192
193- ``mkfs.jfs`` - crea una partizione formattata secondo JFS
194
195- sono disponibili altri strumenti per il file-system.
196
197Reiserfsprogs
198-------------
199
200Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux
201kernel 2.4.x).  Questo è un pacchetto combinato che contiene versioni
202funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e
203``reiserfsck``.  Questi programmi funzionano sulle piattaforme i386 e alpha.
204
205Xfsprogs
206--------
207
208L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi
209``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.
210Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi
211dovrebbe funzionare correttamente con la versione corrente del codice
212XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via
213di importanti miglioramenti).
214
215PCMCIAutils
216-----------
217
218PCMCIAutils sostituisce ``pcmica-cs``.  Serve ad impostare correttamente i
219connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per
220i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema
221hotplug è in uso.
222
223Quota-tools
224-----------
225
226Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del
227formato quota.  La versione 3.07 e successive di quota-tools supportano
228questo formato.  Usate la versione raccomandata nella lista qui sopra o una
229successiva.
230
231Micro codice per Intel IA32
232---------------------------
233
234Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un
235apposito driver; il driver è accessibile come un normale dispositivo a
236caratteri (misc).  Se non state usando udev probabilmente sarà necessario
237eseguire i seguenti comandi come root prima di poterlo aggiornare::
238
239  mkdir /dev/cpu
240  mknod /dev/cpu/microcode c 10 184
241  chmod 0644 /dev/cpu/microcode
242
243Probabilmente, vorrete anche il programma microcode_ctl da usare con questo
244dispositivo.
245
246udev
247----
248
249``udev`` è un programma in spazio utente il cui scopo è quello di popolare
250dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.
251``udev`` sostituisce le funzionalità base di devfs, consentendo comunque
252nomi persistenti per i dispositivi.
253
254FUSE
255----
256
257Serve libfuse 2.4.0 o successiva.  Il requisito minimo assoluto è 2.3.0 ma
258le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.
259
260
261Rete
262****
263
264Cambiamenti generali
265--------------------
266
267Se per quanto riguarda la configurazione di rete avete esigenze di un certo
268livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.
269
270Filtro dei pacchetti / NAT
271--------------------------
272
273Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi
274strumenti come nelle versioni del kernel antecedenti la 2.4.x (iptables).
275Include ancora moduli di compatibilità per 2.2.x ipchains e 2.0.x ipdwadm.
276
277PPP
278---
279
280Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e
281per funzionare su diversi livelli.  Se usate PPP, aggiornate pppd almeno alla
282versione 2.4.0.
283
284Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root
285col seguente comando::
286
287  mknod /dev/ppp c 108 0
288
289Isdn4k-utils
290------------
291
292Per via della modifica del campo per il numero di telefono, il pacchetto
293isdn4k-utils dev'essere ricompilato o (preferibilmente) aggiornato.
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
351Make
352----
353
354- <ftp://ftp.gnu.org/gnu/make/>
355
356Binutils
357--------
358
359- <https://www.kernel.org/pub/linux/devel/binutils/>
360
361Flex
362----
363
364- <https://github.com/westes/flex/releases>
365
366Bison
367-----
368
369- <ftp://ftp.gnu.org/gnu/bison/>
370
371OpenSSL
372-------
373
374- <https://www.openssl.org/>
375
376Strumenti di sistema
377********************
378
379Util-linux
380----------
381
382- <https://www.kernel.org/pub/linux/utils/util-linux/>
383
384Kmod
385----
386
387- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
388- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
389
390Ksymoops
391--------
392
393- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
394
395Mkinitrd
396--------
397
398- <https://code.launchpad.net/initrd-tools/main>
399
400E2fsprogs
401---------
402
403- <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
404
405JFSutils
406--------
407
408- <http://jfs.sourceforge.net/>
409
410Reiserfsprogs
411-------------
412
413- <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
414
415Xfsprogs
416--------
417
418- <ftp://oss.sgi.com/projects/xfs/>
419
420Pcmciautils
421-----------
422
423- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
424
425Quota-tools
426-----------
427
428- <http://sourceforge.net/projects/linuxquota/>
429
430
431Microcodice Intel P6
432--------------------
433
434- <https://downloadcenter.intel.com/>
435
436udev
437----
438
439- <http://www.freedesktop.org/software/systemd/man/udev.html>
440
441FUSE
442----
443
444- <https://github.com/libfuse/libfuse/releases>
445
446mcelog
447------
448
449- <http://www.mcelog.org/>
450
451Rete
452****
453
454PPP
455---
456
457- <ftp://ftp.samba.org/pub/ppp/>
458
459Isdn4k-utils
460------------
461
462- <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
463
464NFS-utils
465---------
466
467- <http://sourceforge.net/project/showfiles.php?group_id=14>
468
469Iptables
470--------
471
472- <http://www.iptables.org/downloads.html>
473
474Ip-route2
475---------
476
477- <https://www.kernel.org/pub/linux/utils/net/iproute2/>
478
479OProfile
480--------
481
482- <http://oprofile.sf.net/download/>
483
484NFS-Utils
485---------
486
487- <http://nfs.sourceforge.net/>
488
489Documentazione del kernel
490*************************
491
492Sphinx
493------
494
495- <http://www.sphinx-doc.org/>
496