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