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