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