1 .. include:: ../disclaimer-ita.rst
3 :Original: :ref:`Documentation/process/changes.rst <changes>`
4 :Translator: Federico Vaga <federico.vaga@vaga.pv.it>
8 Requisiti minimi per compilare il kernel
9 ++++++++++++++++++++++++++++++++++++++++
14 Questo documento fornisce una lista dei software necessari per eseguire i
17 Questo documento è basato sul file "Changes" del kernel 2.0.x e quindi le
18 persone che lo scrissero meritano credito (Jared Mauch, Axel Boldt,
19 Alessandro Sigala, e tanti altri nella rete).
21 Requisiti minimi correnti
22 *************************
24 Prima di pensare d'avere trovato un baco, aggiornate i seguenti programmi
25 **almeno** alla versione indicata! Se non siete certi della versione che state
26 usando, il comando indicato dovrebbe dirvelo.
28 Questa lista presume che abbiate già un kernel Linux funzionante. In aggiunta,
29 non tutti gli strumenti sono necessari ovunque; ovviamente, se non avete un
30 modem ISDN, per esempio, probabilmente non dovreste preoccuparvi di
33 ====================== ================= ========================================
34 Programma Versione minima Comando per verificare la versione
35 ====================== ================= ========================================
36 GNU C 4.6 gcc --version
37 GNU make 3.81 make --version
39 flex 2.5.35 flex --version
40 bison 2.0 bison --version
41 util-linux 2.10o fdformat --version
43 e2fsprogs 1.41.4 e2fsck -V
44 jfsutils 1.1.3 fsck.jfs -V
45 reiserfsprogs 3.6.3 reiserfsck -V
46 xfsprogs 2.6.0 xfs_db -V
47 squashfs-tools 4.0 mksquashfs -version
48 btrfs-progs 0.18 btrfsck
49 pcmciautils 004 pccardctl -V
50 quota-tools 3.09 quota -V
51 PPP 2.4.0 pppd --version
52 isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version
53 nfs-utils 1.0.5 showmount --version
54 procps 3.2.0 ps --version
55 oprofile 0.9 oprofiled --version
56 udev 081 udevd --version
57 grub 0.93 grub --version || grub-install --version
58 mcelog 0.6 mcelog --version
59 iptables 1.4.2 iptables -V
60 openssl & libcrypto 1.0.0 openssl version
61 bc 1.06.95 bc --version
62 Sphinx\ [#f1]_ 1.3 sphinx-build --version
63 ====================== ================= ========================================
65 .. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
67 Compilazione del kernel
68 ***********************
73 La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel
79 Per compilare il kernel vi servirà GNU make 3.81 o successivo.
84 Il sistema di compilazione, dalla versione 4.13, per la produzione dei passi
85 intermedi, si è convertito all'uso di *thin archive* (`ar T`) piuttosto che
86 all'uso del *linking* incrementale (`ld -r`). Questo richiede binutils 2.20 o
92 Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per
93 verificare l'esistenza degli strumenti kconfig e per determinare le
94 impostazioni da usare in 'make {g,x}config'. Precedentemente pkg-config
95 veniva usato ma non verificato o documentato.
100 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
101 un analizzatore lessicale. Questo richiede flex 2.5.35 o successivo.
106 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
107 un parsificatore. Questo richiede bison 2.0 o successivo.
112 Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,
113 ``Getopt::Std``, ``File::Basename``, e ``File::Find``.
118 Vi servirà bc per compilare i kernel dal 3.10 in poi.
123 Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli
124 e la gestione dei certificati; sono usati per la creazione della chiave e
125 la generazione della firma.
127 Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il
128 kernel 3.7 e successivi. Vi serviranno anche i pacchetti di sviluppo di
129 openssl per compilare il kernel 4.3 o successivi.
135 Modifiche architetturali
136 ------------------------
138 DevFS è stato reso obsoleto da udev
139 (http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
141 Il supporto per UID a 32-bit è ora disponibile. Divertitevi!
143 La documentazione delle funzioni in Linux è una fase di transizione
144 verso una documentazione integrata nei sorgenti stessi usando dei commenti
145 formattati in modo speciale e posizionati vicino alle funzioni che descrivono.
146 Al fine di arricchire la documentazione, questi commenti possono essere
147 combinati con i file ReST presenti in Documentation/; questi potranno
148 poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.
149 Per convertire i documenti da ReST al formato che volete, avete bisogno di
155 Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per
156 dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono
157 più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;
158 e altre chicche. Probabilmente vorrete aggiornarlo.
163 Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento
164 ksymoops per decodificarlo, ma nella maggior parte dei casi non vi servirà.
165 Generalmente è preferibile compilare il kernel con l'opzione ``CONFIG_KALLSYMS``
166 cosicché 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
168 vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di
169 ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete
170 usare ksymoops per decodificare l'oops.
175 I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di
181 L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.
182 Ovviamente, aggiornarlo è una buona idea.
187 Il pacchetto ``jfsutils`` contiene programmi per il file-system JFS.
188 Sono disponibili i seguenti strumenti:
190 - ``fsck.jfs`` - avvia la ripetizione del log delle transizioni, e verifica e
191 ripara una partizione formattata secondo JFS
193 - ``mkfs.jfs`` - crea una partizione formattata secondo JFS
195 - sono disponibili altri strumenti per il file-system.
200 Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux
201 kernel 2.4.x). Questo è un pacchetto combinato che contiene versioni
202 funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e
203 ``reiserfsck``. Questi programmi funzionano sulle piattaforme i386 e alpha.
208 L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi
209 ``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.
210 Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi
211 dovrebbe funzionare correttamente con la versione corrente del codice
212 XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via
213 di importanti miglioramenti).
218 PCMCIAutils sostituisce ``pcmica-cs``. Serve ad impostare correttamente i
219 connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per
220 i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema
226 Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del
227 formato quota. La versione 3.07 e successive di quota-tools supportano
228 questo formato. Usate la versione raccomandata nella lista qui sopra o una
231 Micro codice per Intel IA32
232 ---------------------------
234 Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un
235 apposito driver; il driver è accessibile come un normale dispositivo a
236 caratteri (misc). Se non state usando udev probabilmente sarà necessario
237 eseguire i seguenti comandi come root prima di poterlo aggiornare::
240 mknod /dev/cpu/microcode c 10 184
241 chmod 0644 /dev/cpu/microcode
243 Probabilmente, vorrete anche il programma microcode_ctl da usare con questo
249 ``udev`` è un programma in spazio utente il cui scopo è quello di popolare
250 dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.
251 ``udev`` sostituisce le funzionalità base di devfs, consentendo comunque
252 nomi persistenti per i dispositivi.
257 Serve libfuse 2.4.0 o successiva. Il requisito minimo assoluto è 2.3.0 ma
258 le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.
267 Se per quanto riguarda la configurazione di rete avete esigenze di un certo
268 livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.
270 Filtro dei pacchetti / NAT
271 --------------------------
273 Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi
274 strumenti come nelle versioni del kernel antecedenti la 2.4.x (iptables).
275 Include ancora moduli di compatibilità per 2.2.x ipchains e 2.0.x ipdwadm.
280 Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e
281 per funzionare su diversi livelli. Se usate PPP, aggiornate pppd almeno alla
284 Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root
285 col seguente comando::
287 mknod /dev/ppp c 108 0
292 Per via della modifica del campo per il numero di telefono, il pacchetto
293 isdn4k-utils dev'essere ricompilato o (preferibilmente) aggiornato.
298 Nei kernel più antichi (2.4 e precedenti), il server NFS doveva essere
299 informato sui clienti ai quali si voleva fornire accesso via NFS. Questa
300 informazione veniva passata al kernel quando un cliente montava un file-system
301 mediante ``mountd``, oppure usando ``exportfs`` all'avvio del sistema.
302 exportfs prende le informazioni circa i clienti attivi da ``/var/lib/nfs/rmtab``.
304 Questo approccio è piuttosto delicato perché dipende dalla correttezza di
305 rmtab, che non è facile da garantire, in particolare quando si cerca di
306 implementare un *failover*. Anche quando il sistema funziona bene, ``rmtab``
307 ha il problema di accumulare vecchie voci inutilizzate.
309 Sui kernel più recenti il kernel ha la possibilità di informare mountd quando
310 arriva una richiesta da una macchina sconosciuta, e mountd può dare al kernel
311 le informazioni corrette per l'esportazione. Questo rimuove la dipendenza con
312 ``rmtab`` e significa che il kernel deve essere al corrente solo dei clienti
315 Per attivare questa funzionalità, dovete eseguire il seguente comando prima di
316 usare exportfs o mountd::
318 mount -t nfsd nfsd /proc/fs/nfsd
320 Dove possibile, raccomandiamo di proteggere tutti i servizi NFS dall'accesso
321 via internet mediante un firewall.
326 Quando ``CONFIG_x86_MCE`` è attivo, il programma mcelog processa e registra
327 gli eventi *machine check*. Gli eventi *machine check* sono errori riportati
328 dalla CPU. Incoraggiamo l'analisi di questi errori.
331 Documentazione del kernel
332 *************************
337 Per i dettaglio sui requisiti di Sphinx, fate riferimento a :ref:`it_sphinx_install`
338 in :ref:`Documentation/translations/it_IT/doc-guide/sphinx.rst <it_sphinxdoc>`
340 Ottenere software aggiornato
341 ============================
343 Compilazione del kernel
344 ***********************
349 - <ftp://ftp.gnu.org/gnu/gcc/>
354 - <ftp://ftp.gnu.org/gnu/make/>
359 - <https://www.kernel.org/pub/linux/devel/binutils/>
364 - <https://github.com/westes/flex/releases>
369 - <ftp://ftp.gnu.org/gnu/bison/>
374 - <https://www.openssl.org/>
382 - <https://www.kernel.org/pub/linux/utils/util-linux/>
387 - <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
388 - <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
393 - <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
398 - <https://code.launchpad.net/initrd-tools/main>
403 - <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
408 - <http://jfs.sourceforge.net/>
413 - <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
418 - <ftp://oss.sgi.com/projects/xfs/>
423 - <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
428 - <http://sourceforge.net/projects/linuxquota/>
434 - <https://downloadcenter.intel.com/>
439 - <http://www.freedesktop.org/software/systemd/man/udev.html>
444 - <https://github.com/libfuse/libfuse/releases>
449 - <http://www.mcelog.org/>
457 - <ftp://ftp.samba.org/pub/ppp/>
462 - <ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/>
467 - <http://sourceforge.net/project/showfiles.php?group_id=14>
472 - <http://www.iptables.org/downloads.html>
477 - <https://www.kernel.org/pub/linux/utils/net/iproute2/>
482 - <http://oprofile.sf.net/download/>
487 - <http://nfs.sourceforge.net/>
489 Documentazione del kernel
490 *************************
495 - <http://www.sphinx-doc.org/>