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