Back to home page

OSCL-LXR

 
 

    


0001 .. include:: ../disclaimer-ita.rst
0002 
0003 :Original: :ref:`Documentation/process/changes.rst <changes>`
0004 :Translator: Federico Vaga <federico.vaga@vaga.pv.it>
0005 
0006 .. _it_changes:
0007 
0008 Requisiti minimi per compilare il kernel
0009 ++++++++++++++++++++++++++++++++++++++++
0010 
0011 Introduzione
0012 ============
0013 
0014 Questo documento fornisce una lista dei software necessari per eseguire questa
0015 versione del kernel.
0016 
0017 Questo documento è basato sul file "Changes" del kernel 2.0.x e quindi le
0018 persone che lo scrissero meritano credito (Jared Mauch, Axel Boldt,
0019 Alessandro Sigala, e tanti altri nella rete).
0020 
0021 Requisiti minimi correnti
0022 *************************
0023 
0024 Prima di pensare d'avere trovato un baco, aggiornate i seguenti programmi
0025 **almeno** alla versione indicata!  Se non siete certi della versione che state
0026 usando, il comando indicato dovrebbe dirvelo.
0027 
0028 Questa lista presume che abbiate già un kernel Linux funzionante.  In aggiunta,
0029 non tutti gli strumenti sono necessari ovunque; ovviamente, se non avete una
0030 PC Card, per esempio, probabilmente non dovreste preoccuparvi di pcmciautils.
0031 
0032 ====================== =================  ========================================
0033         Programma       Versione minima       Comando per verificare la versione
0034 ====================== =================  ========================================
0035 GNU C                  5.1                gcc --version
0036 Clang/LLVM (optional)  11.0.0             clang --version
0037 GNU make               3.81               make --version
0038 binutils               2.23               ld -v
0039 flex                   2.5.35             flex --version
0040 bison                  2.0                bison --version
0041 pahole                 1.16               pahole --version
0042 util-linux             2.10o              fdformat --version
0043 kmod                   13                 depmod -V
0044 e2fsprogs              1.41.4             e2fsck -V
0045 jfsutils               1.1.3              fsck.jfs -V
0046 reiserfsprogs          3.6.3              reiserfsck -V
0047 xfsprogs               2.6.0              xfs_db -V
0048 squashfs-tools         4.0                mksquashfs -version
0049 btrfs-progs            0.18               btrfsck
0050 pcmciautils            004                pccardctl -V
0051 quota-tools            3.09               quota -V
0052 PPP                    2.4.0              pppd --version
0053 nfs-utils              1.0.5              showmount --version
0054 procps                 3.2.0              ps --version
0055 udev                   081                udevd --version
0056 grub                   0.93               grub --version || grub-install --version
0057 mcelog                 0.6                mcelog --version
0058 iptables               1.4.2              iptables -V
0059 openssl & libcrypto    1.0.0              openssl version
0060 bc                     1.06.95            bc --version
0061 Sphinx\ [#f1]_         1.7                sphinx-build --version
0062 cpio                   any                cpio --version
0063 ====================== =================  ========================================
0064 
0065 .. [#f1] Sphinx è necessario solo per produrre la documentazione del Kernel
0066 
0067 Compilazione del kernel
0068 ***********************
0069 
0070 GCC
0071 ---
0072 
0073 La versione necessaria di gcc potrebbe variare a seconda del tipo di CPU nel
0074 vostro calcolatore.
0075 
0076 Clang/LLVM (opzionale)
0077 ----------------------
0078 
0079 L'ultima versione di clang e *LLVM utils* (secondo `releases.llvm.org
0080 <https://releases.llvm.org>`_) sono supportati per la generazione del
0081 kernel. Non garantiamo che anche i rilasci più vecchi funzionino, inoltre
0082 potremmo rimuovere gli espedienti che abbiamo implementato per farli
0083 funzionare. Per maggiori informazioni
0084 :ref:`Building Linux with Clang/LLVM <kbuild_llvm>`.
0085 
0086 Make
0087 ----
0088 
0089 Per compilare il kernel vi servirà GNU make 3.81 o successivo.
0090 
0091 Binutils
0092 --------
0093 
0094 Per generare il kernel è necessario avere Binutils 2.23 o superiore.
0095 
0096 pkg-config
0097 ----------
0098 
0099 Il sistema di compilazione, dalla versione 4.18, richiede pkg-config per
0100 verificare l'esistenza degli strumenti kconfig e per determinare le
0101 impostazioni da usare in 'make {g,x}config'.  Precedentemente pkg-config
0102 veniva usato ma non verificato o documentato.
0103 
0104 Flex
0105 ----
0106 
0107 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
0108 un analizzatore lessicale.  Questo richiede flex 2.5.35 o successivo.
0109 
0110 Bison
0111 -----
0112 
0113 Dalla versione 4.16, il sistema di compilazione, durante l'esecuzione, genera
0114 un parsificatore.  Questo richiede bison 2.0 o successivo.
0115 
0116 pahole
0117 ------
0118 
0119 Dalla versione 5.2, quando viene impostato CONFIG_DEBUG_INFO_BTF, il sistema di
0120 compilazione genera BTF (BPF Type Format) a partire da DWARF per vmlinux. Più
0121 tardi anche per i moduli. Questo richiede pahole v1.16 o successivo.
0122 
0123 A seconda della distribuzione, lo si può trovare nei pacchetti 'dwarves' o
0124 'pahole'. Oppure lo si può trovare qui: https://fedorapeople.org/~acme/dwarves/.
0125 
0126 Perl
0127 ----
0128 
0129 Per compilare il kernel vi servirà perl 5 e i seguenti moduli ``Getopt::Long``,
0130 ``Getopt::Std``, ``File::Basename``, e ``File::Find``.
0131 
0132 BC
0133 --
0134 
0135 Vi servirà bc per compilare i kernel dal 3.10 in poi.
0136 
0137 OpenSSL
0138 -------
0139 
0140 Il programma OpenSSL e la libreria crypto vengono usati per la firma dei moduli
0141 e la gestione dei certificati; sono usati per la creazione della chiave e
0142 la generazione della firma.
0143 
0144 Se la firma dei moduli è abilitata, allora vi servirà openssl per compilare il
0145 kernel 3.7 e successivi.  Vi serviranno anche i pacchetti di sviluppo di
0146 openssl per compilare il kernel 4.3 o successivi.
0147 
0148 
0149 Strumenti di sistema
0150 ********************
0151 
0152 Modifiche architetturali
0153 ------------------------
0154 
0155 DevFS è stato reso obsoleto da udev
0156 (http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
0157 
0158 Il supporto per UID a 32-bit è ora disponibile.  Divertitevi!
0159 
0160 La documentazione delle funzioni in Linux è una fase di transizione
0161 verso una documentazione integrata nei sorgenti stessi usando dei commenti
0162 formattati in modo speciale e posizionati vicino alle funzioni che descrivono.
0163 Al fine di arricchire la documentazione, questi commenti possono essere
0164 combinati con i file ReST presenti in Documentation/; questi potranno
0165 poi essere convertiti in formato PostScript, HTML, LaTex, ePUB o PDF.
0166 Per convertire i documenti da ReST al formato che volete, avete bisogno di
0167 Sphinx.
0168 
0169 Util-linux
0170 ----------
0171 
0172 Le versioni più recenti di util-linux: forniscono il supporto a ``fdisk`` per
0173 dischi di grandi dimensioni; supportano le nuove opzioni di mount; riconoscono
0174 più tipi di partizioni; hanno un fdformat che funziona con i kernel 2.4;
0175 e altre chicche.  Probabilmente vorrete aggiornarlo.
0176 
0177 Ksymoops
0178 --------
0179 
0180 Se l'impensabile succede e il kernel va in oops, potrebbe servirvi lo strumento
0181 ksymoops per decodificarlo, ma nella maggior parte dei casi non vi servirà.
0182 Generalmente è preferibile compilare il kernel con l'opzione ``CONFIG_KALLSYMS``
0183 cosicché venga prodotto un output più leggibile che può essere usato così com'è
0184 (produce anche un output migliore di ksymoops).  Se per qualche motivo il
0185 vostro kernel non è stato compilato con ``CONFIG_KALLSYMS`` e non avete modo di
0186 ricompilarlo e riprodurre l'oops con quell'opzione abilitata, allora potete
0187 usare ksymoops per decodificare l'oops.
0188 
0189 Mkinitrd
0190 --------
0191 
0192 I cambiamenti della struttura in ``/lib/modules`` necessita l'aggiornamento di
0193 mkinitrd.
0194 
0195 E2fsprogs
0196 ---------
0197 
0198 L'ultima versione di ``e2fsprogs`` corregge diversi bachi in fsck e debugfs.
0199 Ovviamente, aggiornarlo è una buona idea.
0200 
0201 JFSutils
0202 --------
0203 
0204 Il pacchetto ``jfsutils`` contiene programmi per il file-system JFS.
0205 Sono disponibili i seguenti strumenti:
0206 
0207 - ``fsck.jfs`` - avvia la ripetizione del log delle transizioni, e verifica e
0208   ripara una partizione formattata secondo JFS
0209 
0210 - ``mkfs.jfs`` - crea una partizione formattata secondo JFS
0211 
0212 - sono disponibili altri strumenti per il file-system.
0213 
0214 Reiserfsprogs
0215 -------------
0216 
0217 Il pacchetto reiserfsprogs dovrebbe essere usato con reiserfs-3.6.x (Linux
0218 kernel 2.4.x).  Questo è un pacchetto combinato che contiene versioni
0219 funzionanti di ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` e
0220 ``reiserfsck``.  Questi programmi funzionano sulle piattaforme i386 e alpha.
0221 
0222 Xfsprogs
0223 --------
0224 
0225 L'ultima versione di ``xfsprogs`` contiene, fra i tanti, i programmi
0226 ``mkfs.xfs``, ``xfs_db`` e ``xfs_repair`` per il file-system XFS.
0227 Dipendono dell'architettura e qualsiasi versione dalla 2.0.0 in poi
0228 dovrebbe funzionare correttamente con la versione corrente del codice
0229 XFS nel kernel (sono raccomandate le versioni 2.6.0 o successive per via
0230 di importanti miglioramenti).
0231 
0232 PCMCIAutils
0233 -----------
0234 
0235 PCMCIAutils sostituisce ``pcmica-cs``.  Serve ad impostare correttamente i
0236 connettori PCMCIA all'avvio del sistema e a caricare i moduli necessari per
0237 i dispositivi a 16-bit se il kernel è stato modularizzato e il sottosistema
0238 hotplug è in uso.
0239 
0240 Quota-tools
0241 -----------
0242 
0243 Il supporto per uid e gid a 32 bit richiedono l'uso della versione 2 del
0244 formato quota.  La versione 3.07 e successive di quota-tools supportano
0245 questo formato.  Usate la versione raccomandata nella lista qui sopra o una
0246 successiva.
0247 
0248 Micro codice per Intel IA32
0249 ---------------------------
0250 
0251 Per poter aggiornare il micro codice per Intel IA32, è stato aggiunto un
0252 apposito driver; il driver è accessibile come un normale dispositivo a
0253 caratteri (misc).  Se non state usando udev probabilmente sarà necessario
0254 eseguire i seguenti comandi come root prima di poterlo aggiornare::
0255 
0256   mkdir /dev/cpu
0257   mknod /dev/cpu/microcode c 10 184
0258   chmod 0644 /dev/cpu/microcode
0259 
0260 Probabilmente, vorrete anche il programma microcode_ctl da usare con questo
0261 dispositivo.
0262 
0263 udev
0264 ----
0265 
0266 ``udev`` è un programma in spazio utente il cui scopo è quello di popolare
0267 dinamicamente la cartella ``/dev`` coi dispositivi effettivamente presenti.
0268 ``udev`` sostituisce le funzionalità base di devfs, consentendo comunque
0269 nomi persistenti per i dispositivi.
0270 
0271 FUSE
0272 ----
0273 
0274 Serve libfuse 2.4.0 o successiva.  Il requisito minimo assoluto è 2.3.0 ma
0275 le opzioni di mount ``direct_io`` e ``kernel_cache`` non funzioneranno.
0276 
0277 
0278 Rete
0279 ****
0280 
0281 Cambiamenti generali
0282 --------------------
0283 
0284 Se per quanto riguarda la configurazione di rete avete esigenze di un certo
0285 livello dovreste prendere in considerazione l'uso degli strumenti in ip-route2.
0286 
0287 Filtro dei pacchetti / NAT
0288 --------------------------
0289 
0290 Il codice per filtraggio dei pacchetti e il NAT fanno uso degli stessi
0291 strumenti come nelle versioni del kernel antecedenti la 2.4.x (iptables).
0292 Include ancora moduli di compatibilità per 2.2.x ipchains e 2.0.x ipdwadm.
0293 
0294 PPP
0295 ---
0296 
0297 Il driver per PPP è stato ristrutturato per supportare collegamenti multipli e
0298 per funzionare su diversi livelli.  Se usate PPP, aggiornate pppd almeno alla
0299 versione 2.4.0.
0300 
0301 Se non usate udev, dovete avere un file /dev/ppp che può essere creato da root
0302 col seguente comando::
0303 
0304   mknod /dev/ppp c 108 0
0305 
0306 
0307 NFS-utils
0308 ---------
0309 
0310 Nei kernel più antichi (2.4 e precedenti), il server NFS doveva essere
0311 informato sui clienti ai quali si voleva fornire accesso via NFS.  Questa
0312 informazione veniva passata al kernel quando un cliente montava un file-system
0313 mediante ``mountd``, oppure usando ``exportfs`` all'avvio del sistema.
0314 exportfs prende le informazioni circa i clienti attivi da ``/var/lib/nfs/rmtab``.
0315 
0316 Questo approccio è piuttosto delicato perché dipende dalla correttezza di
0317 rmtab, che non è facile da garantire, in particolare quando si cerca di
0318 implementare un *failover*.  Anche quando il sistema funziona bene, ``rmtab``
0319 ha il problema di accumulare vecchie voci inutilizzate.
0320 
0321 Sui kernel più recenti il kernel ha la possibilità di informare mountd quando
0322 arriva una richiesta da una macchina sconosciuta, e mountd può dare al kernel
0323 le informazioni corrette per l'esportazione.  Questo rimuove la dipendenza con
0324 ``rmtab`` e significa che il kernel deve essere al corrente solo dei clienti
0325 attivi.
0326 
0327 Per attivare questa funzionalità, dovete eseguire il seguente comando prima di
0328 usare exportfs o mountd::
0329 
0330   mount -t nfsd nfsd /proc/fs/nfsd
0331 
0332 Dove possibile, raccomandiamo di proteggere tutti i servizi NFS dall'accesso
0333 via internet mediante un firewall.
0334 
0335 mcelog
0336 ------
0337 
0338 Quando ``CONFIG_x86_MCE`` è attivo, il programma mcelog processa e registra
0339 gli eventi *machine check*.  Gli eventi *machine check* sono errori riportati
0340 dalla CPU.  Incoraggiamo l'analisi di questi errori.
0341 
0342 
0343 Documentazione del kernel
0344 *************************
0345 
0346 Sphinx
0347 ------
0348 
0349 Per i dettaglio sui requisiti di Sphinx, fate riferimento a :ref:`it_sphinx_install`
0350 in :ref:`Documentation/translations/it_IT/doc-guide/sphinx.rst <it_sphinxdoc>`
0351 
0352 Ottenere software aggiornato
0353 ============================
0354 
0355 Compilazione del kernel
0356 ***********************
0357 
0358 gcc
0359 ---
0360 
0361 - <ftp://ftp.gnu.org/gnu/gcc/>
0362 
0363 Clang/LLVM
0364 ----------
0365 
0366 - :ref:`Getting LLVM <getting_llvm>`.
0367 
0368 Make
0369 ----
0370 
0371 - <ftp://ftp.gnu.org/gnu/make/>
0372 
0373 Binutils
0374 --------
0375 
0376 - <https://www.kernel.org/pub/linux/devel/binutils/>
0377 
0378 Flex
0379 ----
0380 
0381 - <https://github.com/westes/flex/releases>
0382 
0383 Bison
0384 -----
0385 
0386 - <ftp://ftp.gnu.org/gnu/bison/>
0387 
0388 OpenSSL
0389 -------
0390 
0391 - <https://www.openssl.org/>
0392 
0393 Strumenti di sistema
0394 ********************
0395 
0396 Util-linux
0397 ----------
0398 
0399 - <https://www.kernel.org/pub/linux/utils/util-linux/>
0400 
0401 Kmod
0402 ----
0403 
0404 - <https://www.kernel.org/pub/linux/utils/kernel/kmod/>
0405 - <https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git>
0406 
0407 Ksymoops
0408 --------
0409 
0410 - <https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/>
0411 
0412 Mkinitrd
0413 --------
0414 
0415 - <https://code.launchpad.net/initrd-tools/main>
0416 
0417 E2fsprogs
0418 ---------
0419 
0420 - <https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/>
0421 - <https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/>
0422 
0423 JFSutils
0424 --------
0425 
0426 - <http://jfs.sourceforge.net/>
0427 
0428 Reiserfsprogs
0429 -------------
0430 
0431 - <https://git.kernel.org/pub/scm/linux/kernel/git/jeffm/reiserfsprogs.git/>
0432 
0433 Xfsprogs
0434 --------
0435 
0436 - <https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git>
0437 - <https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/>
0438 
0439 Pcmciautils
0440 -----------
0441 
0442 - <https://www.kernel.org/pub/linux/utils/kernel/pcmcia/>
0443 
0444 Quota-tools
0445 -----------
0446 
0447 - <http://sourceforge.net/projects/linuxquota/>
0448 
0449 
0450 Microcodice Intel P6
0451 --------------------
0452 
0453 - <https://downloadcenter.intel.com/>
0454 
0455 udev
0456 ----
0457 
0458 - <http://www.freedesktop.org/software/systemd/man/udev.html>
0459 
0460 FUSE
0461 ----
0462 
0463 - <https://github.com/libfuse/libfuse/releases>
0464 
0465 mcelog
0466 ------
0467 
0468 - <http://www.mcelog.org/>
0469 
0470 cpio
0471 ----
0472 
0473 - <https://www.gnu.org/software/cpio/>
0474 
0475 Rete
0476 ****
0477 
0478 PPP
0479 ---
0480 
0481 - <https://download.samba.org/pub/ppp/>
0482 - <https://git.ozlabs.org/?p=ppp.git>
0483 - <https://github.com/paulusmack/ppp/>
0484 
0485 
0486 NFS-utils
0487 ---------
0488 
0489 - <http://sourceforge.net/project/showfiles.php?group_id=14>
0490 
0491 Iptables
0492 --------
0493 
0494 - <https://netfilter.org/projects/iptables/index.html>
0495 
0496 Ip-route2
0497 ---------
0498 
0499 - <https://www.kernel.org/pub/linux/utils/net/iproute2/>
0500 
0501 OProfile
0502 --------
0503 
0504 - <http://oprofile.sf.net/download/>
0505 
0506 NFS-Utils
0507 ---------
0508 
0509 - <http://nfs.sourceforge.net/>
0510 
0511 Documentazione del kernel
0512 *************************
0513 
0514 Sphinx
0515 ------
0516 
0517 - <http://www.sphinx-doc.org/>