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