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