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