0001 .. include:: ../disclaimer-ita.rst
0002
0003 :Original: :ref:`Documentation/process/changes.rst <changes>`
0004 :Translator: Federico Vaga <federico.vaga@vaga.pv.it>
0005
0006 .. _it_changes:
0007
0008 Requisiti minimi per compilare il kernel
0009 ++++++++++++++++++++++++++++++++++++++++
0010
0011 Introduzione
0012 ============
0013
0014 Questo documento fornisce una lista dei software necessari per eseguire questa
0015 versione del kernel.
0016
0017 Questo documento è basato sul file "Changes" del kernel 2.0.x e quindi le
0018 persone che lo scrissero meritano credito (Jared Mauch, Axel Boldt,
0019 Alessandro Sigala, e tanti altri nella rete).
0020
0021 Requisiti minimi correnti
0022 *************************
0023
0024 Prima di pensare d'avere trovato un baco, aggiornate i seguenti programmi
0025 **almeno** alla versione indicata! Se non siete certi della versione che state
0026 usando, il comando indicato dovrebbe dirvelo.
0027
0028 Questa lista presume che abbiate già un kernel Linux funzionante. In aggiunta,
0029 non tutti gli strumenti sono necessari ovunque; ovviamente, se non avete una
0030 PC Card, per esempio, probabilmente non dovreste preoccuparvi di pcmciautils.
0031
0032 ====================== ================= ========================================
0033 Programma Versione minima Comando per verificare la versione
0034 ====================== ================= ========================================
0035 GNU C 5.1 gcc --version
0036 Clang/LLVM (optional) 11.0.0 clang --version
0037 GNU make 3.81 make --version
0038 binutils 2.23 ld -v
0039 flex 2.5.35 flex --version
0040 bison 2.0 bison --version
0041 pahole 1.16 pahole --version
0042 util-linux 2.10o fdformat --version
0043 kmod 13 depmod -V
0044 e2fsprogs 1.41.4 e2fsck -V
0045 jfsutils 1.1.3 fsck.jfs -V
0046 reiserfsprogs 3.6.3 reiserfsck -V
0047 xfsprogs 2.6.0 xfs_db -V
0048 squashfs-tools 4.0 mksquashfs -version
0049 btrfs-progs 0.18 btrfsck
0050 pcmciautils 004 pccardctl -V
0051 quota-tools 3.09 quota -V
0052 PPP 2.4.0 pppd --version
0053 nfs-utils 1.0.5 showmount --version
0054 procps 3.2.0 ps --version
0055 udev 081 udevd --version
0056 grub 0.93 grub --version || grub-install --version
0057 mcelog 0.6 mcelog --version
0058 iptables 1.4.2 iptables -V
0059 openssl & libcrypto 1.0.0 openssl version
0060 bc 1.06.95 bc --version
0061 Sphinx\ [#f1]_ 1.7 sphinx-build --version
0062 cpio any cpio --version
0063 ====================== ================= ========================================
0064
0065 .. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
0066
0067 Compilazione del kernel
0068 ***********************
0069
0070 GCC
0071 ---
0072
0073 La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel
0074 vostro calcolatore.
0075
0076 Clang/LLVM (opzionale)
0077 ----------------------
0078
0079 L'ultima versione di clang e *LLVM utils* (secondo `releases.llvm.org
0080 <https://releases.llvm.org>`_) sono supportati per la generazione del
0081 kernel. Non garantiamo che anche i rilasci più vecchi funzionino, inoltre
0082 potremmo rimuovere gli espedienti che abbiamo implementato per farli
0083 funzionare. Per maggiori informazioni
0084 :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
0085
0086 Make
0087 ----
0088
0089 Per compilare il kernel vi servirà GNU make 3.81 o successivo.
0090
0091 Binutils
0092 --------
0093
0094 Per generare il kernel è necessario avere Binutils 2.23 o superiore.
0095
0096 pkg-config
0097 ----------
0098
0099 Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per
0100 verificare l'esistenza degli strumenti kconfig e per determinare le
0101 impostazioni da usare in 'make {g,x}config'. Precedentemente pkg-config
0102 veniva usato ma non verificato o documentato.
0103
0104 Flex
0105 ----
0106
0107 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
0108 un analizzatore lessicale. Questo richiede flex 2.5.35 o successivo.
0109
0110 Bison
0111 -----
0112
0113 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
0114 un parsificatore. Questo richiede bison 2.0 o successivo.
0115
0116 pahole
0117 ------
0118
0119 Dalla versione 5.2, quando viene impostato CONFIG_DEBUG_INFO_BTF, il sistema di
0120 compilazione genera BTF (BPF Type Format) a partire da DWARF per vmlinux. Più
0121 tardi anche per i moduli. Questo richiede pahole v1.16 o successivo.
0122
0123 A seconda della distribuzione, lo si può trovare nei pacchetti 'dwarves' o
0124 'pahole'. Oppure lo si può trovare qui: https://fedorapeople.org/~acme/dwarves/.
0125
0126 Perl
0127 ----
0128
0129 Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,
0130 ``Getopt::Std``, ``File::Basename``, e ``File::Find``.
0131
0132 BC
0133 --
0134
0135 Vi servirà bc per compilare i kernel dal 3.10 in poi.
0136
0137 OpenSSL
0138 -------
0139
0140 Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli
0141 e la gestione dei certificati; sono usati per la creazione della chiave e
0142 la generazione della firma.
0143
0144 Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il
0145 kernel 3.7 e successivi. Vi serviranno anche i pacchetti di sviluppo di
0146 openssl per compilare il kernel 4.3 o successivi.
0147
0148
0149 Strumenti di sistema
0150 ********************
0151
0152 Modifiche architetturali
0153 ------------------------
0154
0155 DevFS è stato reso obsoleto da udev
0156 (http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
0157
0158 Il supporto per UID a 32-bit è ora disponibile. Divertitevi!
0159
0160 La documentazione delle funzioni in Linux è una fase di transizione
0161 verso una documentazione integrata nei sorgenti stessi usando dei commenti
0162 formattati in modo speciale e posizionati vicino alle funzioni che descrivono.
0163 Al fine di arricchire la documentazione, questi commenti possono essere
0164 combinati con i file ReST presenti in Documentation/; questi potranno
0165 poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.
0166 Per convertire i documenti da ReST al formato che volete, avete bisogno di
0167 Sphinx.
0168
0169 Util-linux
0170 ----------
0171
0172 Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per
0173 dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono
0174 più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;
0175 e altre chicche. Probabilmente vorrete aggiornarlo.
0176
0177 Ksymoops
0178 --------
0179
0180 Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento
0181 ksymoops per decodificarlo, ma nella maggior parte dei casi non vi servirà.
0182 Generalmente è preferibile compilare il kernel con l'opzione ``CONFIG_KALLSYMS``
0183 cosicché venga prodotto un output più leggibile che può essere usato così com'è
0184 (produce anche un output migliore di ksymoops). Se per qualche motivo il
0185 vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di
0186 ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete
0187 usare ksymoops per decodificare l'oops.
0188
0189 Mkinitrd
0190 --------
0191
0192 I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di
0193 mkinitrd.
0194
0195 E2fsprogs
0196 ---------
0197
0198 L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.
0199 Ovviamente, aggiornarlo è una buona idea.
0200
0201 JFSutils
0202 --------
0203
0204 Il pacchetto ``jfsutils`` contiene programmi per il file-system JFS.
0205 Sono disponibili i seguenti strumenti:
0206
0207 - ``fsck.jfs`` - avvia la ripetizione del log delle transizioni, e verifica e
0208 ripara una partizione formattata secondo JFS
0209
0210 - ``mkfs.jfs`` - crea una partizione formattata secondo JFS
0211
0212 - sono disponibili altri strumenti per il file-system.
0213
0214 Reiserfsprogs
0215 -------------
0216
0217 Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux
0218 kernel 2.4.x). Questo è un pacchetto combinato che contiene versioni
0219 funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e
0220 ``reiserfsck``. Questi programmi funzionano sulle piattaforme i386 e alpha.
0221
0222 Xfsprogs
0223 --------
0224
0225 L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi
0226 ``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.
0227 Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi
0228 dovrebbe funzionare correttamente con la versione corrente del codice
0229 XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via
0230 di importanti miglioramenti).
0231
0232 PCMCIAutils
0233 -----------
0234
0235 PCMCIAutils sostituisce ``pcmica-cs``. Serve ad impostare correttamente i
0236 connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per
0237 i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema
0238 hotplug è in uso.
0239
0240 Quota-tools
0241 -----------
0242
0243 Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del
0244 formato quota. La versione 3.07 e successive di quota-tools supportano
0245 questo formato. Usate la versione raccomandata nella lista qui sopra o una
0246 successiva.
0247
0248 Micro codice per Intel IA32
0249 ---------------------------
0250
0251 Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un
0252 apposito driver; il driver è accessibile come un normale dispositivo a
0253 caratteri (misc). Se non state usando udev probabilmente sarà necessario
0254 eseguire i seguenti comandi come root prima di poterlo aggiornare::
0255
0256 mkdir /dev/cpu
0257 mknod /dev/cpu/microcode c 10 184
0258 chmod 0644 /dev/cpu/microcode
0259
0260 Probabilmente, vorrete anche il programma microcode_ctl da usare con questo
0261 dispositivo.
0262
0263 udev
0264 ----
0265
0266 ``udev`` è un programma in spazio utente il cui scopo è quello di popolare
0267 dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.
0268 ``udev`` sostituisce le funzionalità base di devfs, consentendo comunque
0269 nomi persistenti per i dispositivi.
0270
0271 FUSE
0272 ----
0273
0274 Serve libfuse 2.4.0 o successiva. Il requisito minimo assoluto è 2.3.0 ma
0275 le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.
0276
0277
0278 Rete
0279 ****
0280
0281 Cambiamenti generali
0282 --------------------
0283
0284 Se per quanto riguarda la configurazione di rete avete esigenze di un certo
0285 livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.
0286
0287 Filtro dei pacchetti / NAT
0288 --------------------------
0289
0290 Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi
0291 strumenti come nelle versioni del kernel antecedenti la 2.4.x (iptables).
0292 Include ancora moduli di compatibilità per 2.2.x ipchains e 2.0.x ipdwadm.
0293
0294 PPP
0295 ---
0296
0297 Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e
0298 per funzionare su diversi livelli. Se usate PPP, aggiornate pppd almeno alla
0299 versione 2.4.0.
0300
0301 Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root
0302 col seguente comando::
0303
0304 mknod /dev/ppp c 108 0
0305
0306
0307 NFS-utils
0308 ---------
0309
0310 Nei kernel più antichi (2.4 e precedenti), il server NFS doveva essere
0311 informato sui clienti ai quali si voleva fornire accesso via NFS. Questa
0312 informazione veniva passata al kernel quando un cliente montava un file-system
0313 mediante ``mountd``, oppure usando ``exportfs`` all'avvio del sistema.
0314 exportfs prende le informazioni circa i clienti attivi da ``/var/lib/nfs/rmtab``.
0315
0316 Questo approccio è piuttosto delicato perché dipende dalla correttezza di
0317 rmtab, che non è facile da garantire, in particolare quando si cerca di
0318 implementare un *failover*. Anche quando il sistema funziona bene, ``rmtab``
0319 ha il problema di accumulare vecchie voci inutilizzate.
0320
0321 Sui kernel più recenti il kernel ha la possibilità di informare mountd quando
0322 arriva una richiesta da una macchina sconosciuta, e mountd può dare al kernel
0323 le informazioni corrette per l'esportazione. Questo rimuove la dipendenza con
0324 ``rmtab`` e significa che il kernel deve essere al corrente solo dei clienti
0325 attivi.
0326
0327 Per attivare questa funzionalità, dovete eseguire il seguente comando prima di
0328 usare exportfs o mountd::
0329
0330 mount -t nfsd nfsd /proc/fs/nfsd
0331
0332 Dove possibile, raccomandiamo di proteggere tutti i servizi NFS dall'accesso
0333 via internet mediante un firewall.
0334
0335 mcelog
0336 ------
0337
0338 Quando ``CONFIG_x86_MCE`` è attivo, il programma mcelog processa e registra
0339 gli eventi *machine check*. Gli eventi *machine check* sono errori riportati
0340 dalla CPU. Incoraggiamo l'analisi di questi errori.
0341
0342
0343 Documentazione del kernel
0344 *************************
0345
0346 Sphinx
0347 ------
0348
0349 Per i dettaglio sui requisiti di Sphinx, fate riferimento a :ref:`it_sphinx_install`
0350 in :ref:`Documentation/translations/it_IT/doc-guide/sphinx.rst <it_sphinxdoc>`
0351
0352 Ottenere software aggiornato
0353 ============================
0354
0355 Compilazione del kernel
0356 ***********************
0357
0358 gcc
0359 ---
0360
0361 - <ftp://ftp.gnu.org/gnu/gcc/>
0362
0363 Clang/LLVM
0364 ----------
0365
0366 - :ref:`Getting LLVM <getting_llvm>`.
0367
0368 Make
0369 ----
0370
0371 - <ftp://ftp.gnu.org/gnu/make/>
0372
0373 Binutils
0374 --------
0375
0376 - <https://www.kernel.org/pub/linux/devel/binutils/>
0377
0378 Flex
0379 ----
0380
0381 - <https://github.com/westes/flex/releases>
0382
0383 Bison
0384 -----
0385
0386 - <ftp://ftp.gnu.org/gnu/bison/>
0387
0388 OpenSSL
0389 -------
0390
0391 - <https://www.openssl.org/>
0392
0393 Strumenti di sistema
0394 ********************
0395
0396 Util-linux
0397 ----------
0398
0399 - <https://www.kernel.org/pub/linux/utils/util-linux/>
0400
0401 Kmod
0402 ----
0403
0404 - <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
0405 - <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
0406
0407 Ksymoops
0408 --------
0409
0410 - <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
0411
0412 Mkinitrd
0413 --------
0414
0415 - <https://code.launchpad.net/initrd-tools/main>
0416
0417 E2fsprogs
0418 ---------
0419
0420 - <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
0421 - <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
0422
0423 JFSutils
0424 --------
0425
0426 - <http://jfs.sourceforge.net/>
0427
0428 Reiserfsprogs
0429 -------------
0430
0431 - <https://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/>
0432
0433 Xfsprogs
0434 --------
0435
0436 - <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
0437 - <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
0438
0439 Pcmciautils
0440 -----------
0441
0442 - <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
0443
0444 Quota-tools
0445 -----------
0446
0447 - <http://sourceforge.net/projects/linuxquota/>
0448
0449
0450 Microcodice Intel P6
0451 --------------------
0452
0453 - <https://downloadcenter.intel.com/>
0454
0455 udev
0456 ----
0457
0458 - <http://www.freedesktop.org/software/systemd/man/udev.html>
0459
0460 FUSE
0461 ----
0462
0463 - <https://github.com/libfuse/libfuse/releases>
0464
0465 mcelog
0466 ------
0467
0468 - <http://www.mcelog.org/>
0469
0470 cpio
0471 ----
0472
0473 - <https://www.gnu.org/software/cpio/>
0474
0475 Rete
0476 ****
0477
0478 PPP
0479 ---
0480
0481 - <https://download.samba.org/pub/ppp/>
0482 - <https://git.ozlabs.org/?p=ppp.git>
0483 - <https://github.com/paulusmack/ppp/>
0484
0485
0486 NFS-utils
0487 ---------
0488
0489 - <http://sourceforge.net/project/showfiles.php?group_id=14>
0490
0491 Iptables
0492 --------
0493
0494 - <https://netfilter.org/projects/iptables/index.html>
0495
0496 Ip-route2
0497 ---------
0498
0499 - <https://www.kernel.org/pub/linux/utils/net/iproute2/>
0500
0501 OProfile
0502 --------
0503
0504 - <http://oprofile.sf.net/download/>
0505
0506 NFS-Utils
0507 ---------
0508
0509 - <http://nfs.sourceforge.net/>
0510
0511 Documentazione del kernel
0512 *************************
0513
0514 Sphinx
0515 ------
0516
0517 - <http://www.sphinx-doc.org/>