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 una
30 PC Card, per esempio, probabilmente non dovreste preoccuparvi di pcmciautils.
32 ====================== ================= ========================================
33 Programma Versione minima Comando per verificare la versione
34 ====================== ================= ========================================
35 GNU C 4.6 gcc --version
36 GNU make 3.81 make --version
38 flex 2.5.35 flex --version
39 bison 2.0 bison --version
40 util-linux 2.10o fdformat --version
42 e2fsprogs 1.41.4 e2fsck -V
43 jfsutils 1.1.3 fsck.jfs -V
44 reiserfsprogs 3.6.3 reiserfsck -V
45 xfsprogs 2.6.0 xfs_db -V
46 squashfs-tools 4.0 mksquashfs -version
47 btrfs-progs 0.18 btrfsck
48 pcmciautils 004 pccardctl -V
49 quota-tools 3.09 quota -V
50 PPP 2.4.0 pppd --version
51 nfs-utils 1.0.5 showmount --version
52 procps 3.2.0 ps --version
53 oprofile 0.9 oprofiled --version
54 udev 081 udevd --version
55 grub 0.93 grub --version || grub-install --version
56 mcelog 0.6 mcelog --version
57 iptables 1.4.2 iptables -V
58 openssl & libcrypto 1.0.0 openssl version
59 bc 1.06.95 bc --version
60 Sphinx\ [#f1]_ 1.3 sphinx-build --version
61 ====================== ================= ========================================
63 .. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
65 Compilazione del kernel
66 ***********************
71 La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel
77 Per compilare il kernel vi servirà GNU make 3.81 o successivo.
82 Per generare il kernel è necessario avere Binutils 2.21 o superiore.
87 Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per
88 verificare l'esistenza degli strumenti kconfig e per determinare le
89 impostazioni da usare in 'make {g,x}config'. Precedentemente pkg-config
90 veniva usato ma non verificato o documentato.
95 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
96 un analizzatore lessicale. Questo richiede flex 2.5.35 o successivo.
101 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
102 un parsificatore. Questo richiede bison 2.0 o successivo.
107 Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,
108 ``Getopt::Std``, ``File::Basename``, e ``File::Find``.
113 Vi servirà bc per compilare i kernel dal 3.10 in poi.
118 Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli
119 e la gestione dei certificati; sono usati per la creazione della chiave e
120 la generazione della firma.
122 Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il
123 kernel 3.7 e successivi. Vi serviranno anche i pacchetti di sviluppo di
124 openssl per compilare il kernel 4.3 o successivi.
130 Modifiche architetturali
131 ------------------------
133 DevFS è stato reso obsoleto da udev
134 (http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
136 Il supporto per UID a 32-bit è ora disponibile. Divertitevi!
138 La documentazione delle funzioni in Linux è una fase di transizione
139 verso una documentazione integrata nei sorgenti stessi usando dei commenti
140 formattati in modo speciale e posizionati vicino alle funzioni che descrivono.
141 Al fine di arricchire la documentazione, questi commenti possono essere
142 combinati con i file ReST presenti in Documentation/; questi potranno
143 poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.
144 Per convertire i documenti da ReST al formato che volete, avete bisogno di
150 Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per
151 dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono
152 più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;
153 e altre chicche. Probabilmente vorrete aggiornarlo.
158 Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento
159 ksymoops per decodificarlo, ma nella maggior parte dei casi non vi servirà.
160 Generalmente è preferibile compilare il kernel con l'opzione ``CONFIG_KALLSYMS``
161 cosicché venga prodotto un output più leggibile che può essere usato così com'è
162 (produce anche un output migliore di ksymoops). Se per qualche motivo il
163 vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di
164 ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete
165 usare ksymoops per decodificare l'oops.
170 I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di
176 L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.
177 Ovviamente, aggiornarlo è una buona idea.
182 Il pacchetto ``jfsutils`` contiene programmi per il file-system JFS.
183 Sono disponibili i seguenti strumenti:
185 - ``fsck.jfs`` - avvia la ripetizione del log delle transizioni, e verifica e
186 ripara una partizione formattata secondo JFS
188 - ``mkfs.jfs`` - crea una partizione formattata secondo JFS
190 - sono disponibili altri strumenti per il file-system.
195 Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux
196 kernel 2.4.x). Questo è un pacchetto combinato che contiene versioni
197 funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e
198 ``reiserfsck``. Questi programmi funzionano sulle piattaforme i386 e alpha.
203 L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi
204 ``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.
205 Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi
206 dovrebbe funzionare correttamente con la versione corrente del codice
207 XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via
208 di importanti miglioramenti).
213 PCMCIAutils sostituisce ``pcmica-cs``. Serve ad impostare correttamente i
214 connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per
215 i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema
221 Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del
222 formato quota. La versione 3.07 e successive di quota-tools supportano
223 questo formato. Usate la versione raccomandata nella lista qui sopra o una
226 Micro codice per Intel IA32
227 ---------------------------
229 Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un
230 apposito driver; il driver è accessibile come un normale dispositivo a
231 caratteri (misc). Se non state usando udev probabilmente sarà necessario
232 eseguire i seguenti comandi come root prima di poterlo aggiornare::
235 mknod /dev/cpu/microcode c 10 184
236 chmod 0644 /dev/cpu/microcode
238 Probabilmente, vorrete anche il programma microcode_ctl da usare con questo
244 ``udev`` è un programma in spazio utente il cui scopo è quello di popolare
245 dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.
246 ``udev`` sostituisce le funzionalità base di devfs, consentendo comunque
247 nomi persistenti per i dispositivi.
252 Serve libfuse 2.4.0 o successiva. Il requisito minimo assoluto è 2.3.0 ma
253 le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.
262 Se per quanto riguarda la configurazione di rete avete esigenze di un certo
263 livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.
265 Filtro dei pacchetti / NAT
266 --------------------------
268 Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi
269 strumenti come nelle versioni del kernel antecedenti la 2.4.x (iptables).
270 Include ancora moduli di compatibilità per 2.2.x ipchains e 2.0.x ipdwadm.
275 Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e
276 per funzionare su diversi livelli. Se usate PPP, aggiornate pppd almeno alla
279 Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root
280 col seguente comando::
282 mknod /dev/ppp c 108 0
288 Nei kernel più antichi (2.4 e precedenti), il server NFS doveva essere
289 informato sui clienti ai quali si voleva fornire accesso via NFS. Questa
290 informazione veniva passata al kernel quando un cliente montava un file-system
291 mediante ``mountd``, oppure usando ``exportfs`` all'avvio del sistema.
292 exportfs prende le informazioni circa i clienti attivi da ``/var/lib/nfs/rmtab``.
294 Questo approccio è piuttosto delicato perché dipende dalla correttezza di
295 rmtab, che non è facile da garantire, in particolare quando si cerca di
296 implementare un *failover*. Anche quando il sistema funziona bene, ``rmtab``
297 ha il problema di accumulare vecchie voci inutilizzate.
299 Sui kernel più recenti il kernel ha la possibilità di informare mountd quando
300 arriva una richiesta da una macchina sconosciuta, e mountd può dare al kernel
301 le informazioni corrette per l'esportazione. Questo rimuove la dipendenza con
302 ``rmtab`` e significa che il kernel deve essere al corrente solo dei clienti
305 Per attivare questa funzionalità, dovete eseguire il seguente comando prima di
306 usare exportfs o mountd::
308 mount -t nfsd nfsd /proc/fs/nfsd
310 Dove possibile, raccomandiamo di proteggere tutti i servizi NFS dall'accesso
311 via internet mediante un firewall.
316 Quando ``CONFIG_x86_MCE`` è attivo, il programma mcelog processa e registra
317 gli eventi *machine check*. Gli eventi *machine check* sono errori riportati
318 dalla CPU. Incoraggiamo l'analisi di questi errori.
321 Documentazione del kernel
322 *************************
327 Per i dettaglio sui requisiti di Sphinx, fate riferimento a :ref:`it_sphinx_install`
328 in :ref:`Documentation/translations/it_IT/doc-guide/sphinx.rst <it_sphinxdoc>`
330 Ottenere software aggiornato
331 ============================
333 Compilazione del kernel
334 ***********************
339 - <ftp://ftp.gnu.org/gnu/gcc/>
344 - <ftp://ftp.gnu.org/gnu/make/>
349 - <https://www.kernel.org/pub/linux/devel/binutils/>
354 - <https://github.com/westes/flex/releases>
359 - <ftp://ftp.gnu.org/gnu/bison/>
364 - <https://www.openssl.org/>
372 - <https://www.kernel.org/pub/linux/utils/util-linux/>
377 - <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
378 - <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
383 - <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
388 - <https://code.launchpad.net/initrd-tools/main>
393 - <http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz>
398 - <http://jfs.sourceforge.net/>
403 - <http://www.kernel.org/pub/linux/utils/fs/reiserfs/>
408 - <ftp://oss.sgi.com/projects/xfs/>
413 - <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
418 - <http://sourceforge.net/projects/linuxquota/>
424 - <https://downloadcenter.intel.com/>
429 - <http://www.freedesktop.org/software/systemd/man/udev.html>
434 - <https://github.com/libfuse/libfuse/releases>
439 - <http://www.mcelog.org/>
447 - <ftp://ftp.samba.org/pub/ppp/>
453 - <http://sourceforge.net/project/showfiles.php?group_id=14>
458 - <http://www.iptables.org/downloads.html>
463 - <https://www.kernel.org/pub/linux/utils/net/iproute2/>
468 - <http://oprofile.sf.net/download/>
473 - <http://nfs.sourceforge.net/>
475 Documentazione del kernel
476 *************************
481 - <http://www.sphinx-doc.org/>