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 37Rust (opzionale) 1.74.1 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