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