settembre 24, 2015

Come fare per configurare correttamente il kernel che si vuole compilare.

| No comment

Il kernel Linux è molto dinamico e il suo sviluppo prende spesso delle strade imprevedibili. Questa vitalità è molto importante per il futuro del software libero; senza di essa non ci sarebbe modo di usare domani le nuove tecnologie proposte. In questo senso, diventa difficile dare delle indicazioni precise e durature sul modo corretto di configurare il kernel prima della compilazione.

L'unica documentazione sicura sotto questo aspetto è quella che si può consultare in modo contestuale quando si utilizza il comando make menuconfig, oppure make xconfig.

Eventualmente, può essere utile sapere che le informazioni che si leggono lì sono contenute nel file Documentation/Configure.help (nell'ambito dei sorgenti), fino alle versioni 2.4.*, mentre in quelle successive si trovano suddivise in vari file Kconfig collocati nelle directory contenenti il codice relativo al contesto a cui si riferiscono. Segue un estratto di uno di questi file Kconfig, precisamente si tratta di drivers/usb/Kconfig:

kernel (2)

#
# USB device configuration
#

menu "USB support"

# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
config USB
tristate "Support for USB"
depends on PCI || SA1111
---help---
Universal Serial Bus (USB) is a specification for a serial bus
subsystem which offers higher speeds and more features than the
traditional PC serial port. The bus supplies power to peripherals
and allows for hot swapping. Up to 127 USB peripherals can be
connected to a single USB port in a tree structure. The USB port is
the root of the tree, the peripherals are the leaves and the inner
nodes are special USB devices called hubs. Many newer PC's have USB
ports and newer peripherals such as scanners, keyboards, mice,
modems, and printers support the USB protocol and can be connected
to the PC via those ports.

Say Y here if your computer has a USB port and you want to use USB
devices. You then need to say Y to at least one of "UHCI HCD support"
or "OHCI HCD support" below (the type of interface that the USB hardware
in your computer provides to the operating system) and then choose
from amongst the drivers for USB peripherals. You may want to check
out the information provided in <file:Documentation/usb/> and
especially the links given in <file:Documentation/usb/usb-help.txt>.

If you have a new USB 2.0 High Speed system, you should also choose
"EHCI HCD (USB 2.0) support" as well as at least one of UHCI or OHCI.

It doesn't normally hurt to select them all if you are not certain.

To compile this driver as a module, choose M here: the
module will be called usbcore.


Quando si parte da zero, è sufficiente accertarsi di eliminare il file .config, che comunque viene eliminato con il comando make mrproper. In questo modo, il programma che guida alla configurazione del kernel offre già le risposte più ovvie alle domande che fa.



Attenzione - Adserver non trova uno dei banner inseriti. Controllare il pannello su clickpoint.com



Naturalmente è sempre necessario leggere le prime volte il testo delle spiegazioni disponibili, fino a che si raggiunge una dimestichezza adeguata al tipo di esigenze che si hanno. Eventualmente, si può generare una prima configurazione predefinita con l'aiuto di make defconfig, da modificare poi sulla base delle proprie esigenze.



Come la documentazione interna suggerisce spesso, nella directory Documentation/ sono contenuti tanti file di testo contenenti spiegazioni particolareggiate rispetto a problemi specifici della configurazione. A questo punto dovrebbe essere evidente che non si può configurare e compilare un kernel se non si conosce minimamente la lingua inglese.



Questo tipo di lavoro passa poi necessariamente per una lunga serie di tentativi falliti (avendo cura di conservare i file .config, per poter ripartire almeno dall'ultima configurazione tentata). Tuttavia, il principiante non deve pensare di essersi messo involontariamente nei guai, perché queste difficoltà riguardano tutti, anche gli esperti, proprio perché la dinamicità nello sviluppo del kernel Linux porta continue novità.



Filesystems.


kernel-linux


Attraverso questa sezione si definiscono i tipi di file system che si vogliono gestire. In particolare, anche i file system virtuali, come /proc/ e /dev/pty/, vengono definiti qui.

Il file system standard dei sistemi GNU/Linux è il tipo Second-extended, ovvero Ext2, Ext3 o Ext4. La gestione di questo tipo di file system deve essere inclusa nel kernel, a meno che si stia cercando di produrre del codice specifico per un'applicazione particolare.



In questo gruppo di opzioni trovano posto anche quelle necessarie alla condivisione attraverso la rete, per esempio con il protocollo NFS.

È interessante osservare che è necessario specificare anche i sistemi di partizionamento dei dischi. In generale è indispensabile la gestione delle partizioni tipiche dei sistemi Dos.


Infine, è importante anche tenere in considerazione il tipo di codifica che si vuole poter utilizzare nell'ambito del file system. La codifica in questione riguarda il modo di rappresentare i nomi dei file, che potrebbe richiedere estensioni particolari. In generale viene abilitata la codifica UTF-8.



<M> Second extended fs support                                 
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
[ ] Ext2 execute in place support
<M> Ext3 journalling file system support
[*] Ext3 extended attributes
[*] Ext3 POSIX Access Control Lists
[*] Ext3 Security Labels
<M> Ext4dev/ext4 extended fs support development (EXPERIMENTAL)
[*] Ext4dev extended attributes
[*] Ext4dev POSIX Access Control Lists
[*] Ext4dev Security Labels
[*] JBD (ext3) debugging support
[ ] JBD2 (ext4dev/ext4) debugging support
<M> Reiserfs support
[ ] Enable reiserfs debug mode
[ ] Stats in /proc/fs/reiserfs
[*] ReiserFS extended attributes
[*] ReiserFS POSIX Access Control Lists
[*] ReiserFS Security Labels
<M> JFS filesystem support
[*] JFS POSIX Access Control Lists
[*] JFS Security Labels
[ ] JFS debugging
[ ] JFS statistics
<M> XFS filesystem support
[*] XFS Quota support
[*] XFS Security Label support
[*] XFS POSIX ACL support
[*] XFS Realtime subvolume support
<M> GFS2 file system support
<M> GFS2 "nolock" locking module
<M> GFS2 DLM locking module
<M> OCFS2 file system support
[*] OCFS2 logging support
<M> Minix fs support
<M> ROM file system support
[*] Inotify file change notification support
[*] Inotify support for userspace
[*] Quota support
<M> Old quota format support
<M> Quota format v2 support
<M> Kernel automounter support
<M> Kernel automounter version 4 support (also supports v3)
<M> Filesystem in Userspace support
CD-ROM/DVD Filesystems --->
DOS/FAT/NT Filesystems --->
Pseudo filesystems --->
Miscellaneous filesystems --->
Network File Systems --->
Partition Types --->
Native Language Support --->
Distributed Lock Manager --->


kernel-icc                             


La voce {Pseudo filesystems} consente di accedere alle funzioni relative a file system virtuali:



--- /proc file system support                               
[*] /proc/kcore support
[*] Virtual memory file system support (former shm fs)
[ ] Tmpfs POSIX Access Control Lists
[ ] HugeTLB file system support
<M> Userspace-driven configuration filesystem (EXPERIMENTAL)


Attraverso questa sezione si possono attivare alcune funzionalità, utili generalmente per chi partecipa allo sviluppo del kernel Linux. C'è comunque almeno una voce che può interessare alla maggior parte degli utenti.



[ ] Show timing information on printks
[ ] Enable __must_check logic
[*] Magic SysRq key
[ ] Enable unused/obsolete exported symbols
[ ] Debug Filesystem
[ ] Run 'make headers_check' when building vmlinux
[ ] Kernel debugging


La voce {Magic SysRq key}, se attivata, consente di disporre sempre di un accesso privilegiato ad alcune funzioni attraverso una console, indipendentemente dal fatto che su questa sia attiva o meno una sessione di lavoro. Queste funzioni si ottengono con delle combinazioni di tasti, costituite da [R_Sist AltGr x], dove x è una lettera che cambia in funzione dell'operazione che si vuole compiere. Il tasto [R_Sist] corrisponde a [SysRq] nelle tastiere per la lingua inglese, da cui viene il nome della voce di menù. Si osservi anche che il tasto [R_Sist] o [SysRq], coincide con il tasto [Stampa] o [Print_Screen].



Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog





Ubuntu-Logo-apple-style400x400

Trovato questo articolo interessante? Condividilo sulla tua rete di contatti Twitter, sulla tua bacheca su Facebook o semplicemente premi "+1" per suggerire questo risultato nelle ricerche in Google, Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie! CONDIVIDI SU!

stampa la pagina
, , , ,

Nessun commento:

Posta un commento

Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.

Ultimi post pubblicati

Archivio

Etichette

Ubuntulandia in Pinterest

Post Più Popolari