541 lines · plain
1.. include:: ../disclaimer-ita.rst2 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 kernel9++++++++++++++++++++++++++++++++++++++++10 11Introduzione12============13 14Questo documento fornisce una lista dei software necessari per eseguire questa15versione del kernel.16 17Questo documento è basato sul file "Changes" del kernel 2.0.x e quindi le18persone che lo scrissero meritano credito (Jared Mauch, Axel Boldt,19Alessandro Sigala, e tanti altri nella rete).20 21Requisiti minimi correnti22*************************23 24Prima di pensare d'avere trovato un baco, aggiornate i seguenti programmi25**almeno** alla versione indicata! Se non siete certi della versione che state26usando, 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 una30PC Card, per esempio, probabilmente non dovreste preoccuparvi di pcmciautils.31 32====================== ================= ========================================33 Programma Versione minima Comando per verificare la versione34====================== ================= ========================================35GNU C 5.1 gcc --version36Clang/LLVM (optional) 13.0.0 clang --version37Rust (opzionale) 1.76.0 rustc --version38bindgen (opzionale) 0.65.1 bindgen --version39GNU make 3.81 make --version40bash 4.2 bash --version41binutils 2.25 ld -v42flex 2.5.35 flex --version43bison 2.0 bison --version44pahole 1.16 pahole --version45util-linux 2.10o mount --version46kmod 13 depmod -V47e2fsprogs 1.41.4 e2fsck -V48jfsutils 1.1.3 fsck.jfs -V49reiserfsprogs 3.6.3 reiserfsck -V50xfsprogs 2.6.0 xfs_db -V51squashfs-tools 4.0 mksquashfs -version52btrfs-progs 0.18 btrfsck53pcmciautils 004 pccardctl -V54quota-tools 3.09 quota -V55PPP 2.4.0 pppd --version56nfs-utils 1.0.5 showmount --version57procps 3.2.0 ps --version58udev 081 udevd --version59grub 0.93 grub --version || grub-install --version60mcelog 0.6 mcelog --version61iptables 1.4.2 iptables -V62openssl & libcrypto 1.0.0 openssl version63bc 1.06.95 bc --version64Sphinx\ [#f1]_ 2.4.4 sphinx-build --version65cpio any cpio --version66GNU tar 1.28 tar --version67gtags (opzionale) 6.6.5 gtags --version68====================== ================= ========================================69 70.. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel71 72Compilazione del kernel73***********************74 75GCC76---77 78La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel79vostro calcolatore.80 81Clang/LLVM (opzionale)82----------------------83 84L'ultima versione di clang e *LLVM utils* (secondo `releases.llvm.org85<https://releases.llvm.org>`_) sono supportati per la generazione del86kernel. Non garantiamo che anche i rilasci più vecchi funzionino, inoltre87potremmo rimuovere gli espedienti che abbiamo implementato per farli88funzionare. Per maggiori informazioni89:ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.90 91Make92----93 94Per compilare il kernel vi servirà GNU make 3.81 o successivo.95 96Bash97----98Per generare il kernel vengono usati alcuni script per bash.99Questo richiede bash 4.2 o successivo.100 101Binutils102--------103 104Per generare il kernel è necessario avere Binutils 2.25 o superiore.105 106pkg-config107----------108 109Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per110verificare l'esistenza degli strumenti kconfig e per determinare le111impostazioni da usare in 'make {g,x}config'. Precedentemente pkg-config112veniva usato ma non verificato o documentato.113 114Flex115----116 117Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera118un analizzatore lessicale. Questo richiede flex 2.5.35 o successivo.119 120Bison121-----122 123Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera124un parsificatore. Questo richiede bison 2.0 o successivo.125 126pahole127------128 129Dalla versione 5.2, quando viene impostato CONFIG_DEBUG_INFO_BTF, il sistema di130compilazione 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' o134'pahole'. Oppure lo si può trovare qui: https://fedorapeople.org/~acme/dwarves/.135 136Perl137----138 139Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,140``Getopt::Std``, ``File::Basename``, e ``File::Find``.141 142BC143--144 145Vi servirà bc per compilare i kernel dal 3.10 in poi.146 147OpenSSL148-------149 150Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli151e la gestione dei certificati; sono usati per la creazione della chiave e152la generazione della firma.153 154Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il155kernel 3.7 e successivi. Vi serviranno anche i pacchetti di sviluppo di156openssl per compilare il kernel 4.3 o successivi.157 158Tar159---160 161GNU Tar è necessario per accedere ai file d'intestazione del kernel usando sysfs162(CONFIG_IKHEADERS)163 164gtags / GNU GLOBAL (opzionale)165------------------------------166 167Il programma GNU GLOBAL versione 6.6.5, o successiva, è necessario quando si168vuole eseguire ``make gtags`` e generare i relativi indici. Internamente si fa169uso del parametro gtags ``-C (--directory)`` che compare in questa versione.170 171Strumenti di sistema172********************173 174Modifiche architetturali175------------------------176 177DevFS è stato reso obsoleto da udev178(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 transizione183verso una documentazione integrata nei sorgenti stessi usando dei commenti184formattati in modo speciale e posizionati vicino alle funzioni che descrivono.185Al fine di arricchire la documentazione, questi commenti possono essere186combinati con i file ReST presenti in Documentation/; questi potranno187poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.188Per convertire i documenti da ReST al formato che volete, avete bisogno di189Sphinx.190 191Util-linux192----------193 194Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per195dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono196più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;197e altre chicche. Probabilmente vorrete aggiornarlo.198 199Ksymoops200--------201 202Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento203ksymoops 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 il207vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di208ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete209usare ksymoops per decodificare l'oops.210 211Mkinitrd212--------213 214I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di215mkinitrd.216 217E2fsprogs218---------219 220L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.221Ovviamente, aggiornarlo è una buona idea.222 223JFSutils224--------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 e230 ripara una partizione formattata secondo JFS231 232- ``mkfs.jfs`` - crea una partizione formattata secondo JFS233 234- sono disponibili altri strumenti per il file-system.235 236Reiserfsprogs237-------------238 239Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux240kernel 2.4.x). Questo è un pacchetto combinato che contiene versioni241funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e242``reiserfsck``. Questi programmi funzionano sulle piattaforme i386 e alpha.243 244Xfsprogs245--------246 247L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi248``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.249Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi250dovrebbe funzionare correttamente con la versione corrente del codice251XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via252di importanti miglioramenti).253 254PCMCIAutils255-----------256 257PCMCIAutils sostituisce ``pcmica-cs``. Serve ad impostare correttamente i258connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per259i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema260hotplug è in uso.261 262Quota-tools263-----------264 265Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del266formato quota. La versione 3.07 e successive di quota-tools supportano267questo formato. Usate la versione raccomandata nella lista qui sopra o una268successiva.269 270Micro codice per Intel IA32271---------------------------272 273Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un274apposito driver; il driver è accessibile come un normale dispositivo a275caratteri (misc). Se non state usando udev probabilmente sarà necessario276eseguire i seguenti comandi come root prima di poterlo aggiornare::277 278 mkdir /dev/cpu279 mknod /dev/cpu/microcode c 10 184280 chmod 0644 /dev/cpu/microcode281 282Probabilmente, vorrete anche il programma microcode_ctl da usare con questo283dispositivo.284 285udev286----287 288``udev`` è un programma in spazio utente il cui scopo è quello di popolare289dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.290``udev`` sostituisce le funzionalità base di devfs, consentendo comunque291nomi persistenti per i dispositivi.292 293FUSE294----295 296Serve libfuse 2.4.0 o successiva. Il requisito minimo assoluto è 2.3.0 ma297le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.298 299 300Rete301****302 303Cambiamenti generali304--------------------305 306Se per quanto riguarda la configurazione di rete avete esigenze di un certo307livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.308 309Filtro dei pacchetti / NAT310--------------------------311 312Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi313strumenti 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 316PPP317---318 319Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e320per funzionare su diversi livelli. Se usate PPP, aggiornate pppd almeno alla321versione 2.4.0.322 323Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root324col seguente comando::325 326 mknod /dev/ppp c 108 0327 328 329NFS-utils330---------331 332Nei kernel più antichi (2.4 e precedenti), il server NFS doveva essere333informato sui clienti ai quali si voleva fornire accesso via NFS. Questa334informazione veniva passata al kernel quando un cliente montava un file-system335mediante ``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 di339rmtab, che non è facile da garantire, in particolare quando si cerca di340implementare 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 quando344arriva una richiesta da una macchina sconosciuta, e mountd può dare al kernel345le informazioni corrette per l'esportazione. Questo rimuove la dipendenza con346``rmtab`` e significa che il kernel deve essere al corrente solo dei clienti347attivi.348 349Per attivare questa funzionalità, dovete eseguire il seguente comando prima di350usare exportfs o mountd::351 352 mount -t nfsd nfsd /proc/fs/nfsd353 354Dove possibile, raccomandiamo di proteggere tutti i servizi NFS dall'accesso355via internet mediante un firewall.356 357mcelog358------359 360Quando ``CONFIG_x86_MCE`` è attivo, il programma mcelog processa e registra361gli eventi *machine check*. Gli eventi *machine check* sono errori riportati362dalla CPU. Incoraggiamo l'analisi di questi errori.363 364 365Documentazione del kernel366*************************367 368Sphinx369------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 aggiornato375============================376 377Compilazione del kernel378***********************379 380gcc381---382 383- <ftp://ftp.gnu.org/gnu/gcc/>384 385Clang/LLVM386----------387 388- :ref:`Getting LLVM <getting_llvm>`.389 390Make391----392 393- <ftp://ftp.gnu.org/gnu/make/>394 395Bash396----397 398- <ftp://ftp.gnu.org/gnu/bash/>399 400Binutils401--------402 403- <https://www.kernel.org/pub/linux/devel/binutils/>404 405Flex406----407 408- <https://github.com/westes/flex/releases>409 410Bison411-----412 413- <ftp://ftp.gnu.org/gnu/bison/>414 415OpenSSL416-------417 418- <https://www.openssl.org/>419 420Strumenti di sistema421********************422 423Util-linux424----------425 426- <https://www.kernel.org/pub/linux/utils/util-linux/>427 428Kmod429----430 431- <https://www.kernel.org/pub/linux/utils/kernel/kmod/>432- <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>433 434Ksymoops435--------436 437- <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>438 439Mkinitrd440--------441 442- <https://code.launchpad.net/initrd-tools/main>443 444E2fsprogs445---------446 447- <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>448- <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>449 450JFSutils451--------452 453- <https://jfs.sourceforge.net/>454 455Reiserfsprogs456-------------457 458- <https://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/>459 460Xfsprogs461--------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 466Pcmciautils467-----------468 469- <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>470 471Quota-tools472-----------473 474- <https://sourceforge.net/projects/linuxquota/>475 476 477Microcodice Intel P6478--------------------479 480- <https://downloadcenter.intel.com/>481 482udev483----484 485- <http://www.freedesktop.org/software/systemd/man/udev.html>486 487FUSE488----489 490- <https://github.com/libfuse/libfuse/releases>491 492mcelog493------494 495- <https://www.mcelog.org/>496 497cpio498----499 500- <https://www.gnu.org/software/cpio/>501 502Rete503****504 505PPP506---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-utils514---------515 516- <https://sourceforge.net/project/showfiles.php?group_id=14>517- <https://nfs.sourceforge.net/>518 519Iptables520--------521 522- <https://netfilter.org/projects/iptables/index.html>523 524Ip-route2525---------526 527- <https://www.kernel.org/pub/linux/utils/net/iproute2/>528 529OProfile530--------531 532- <https://oprofile.sf.net/download/>533 534Documentazione del kernel535*************************536 537Sphinx538------539 540- <http://www.sphinx-doc.org/>541