Esempio configurazione kernel: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
marcata come "Da adottare"
m (typos)
(marcata come "Da adottare")
 
(15 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{Guida da adottare}}
<big>'''''Introduzione'''''</big>
<big>'''''Introduzione'''''</big>


In questa pagina troverete la configurazione del kernel 2.6.13 usata sul mio pc desktop, condita con varie considerazioni sparse che possano aiutare a comprendere le varie voci. Alcune parti della configurazioni sono generiche; altre, sebbene specifiche del mio hardware, possono servire da spunto per altri che stiano cercando di configurare il proprio kernel.
In questa pagina troverete la configurazione del kernel 2.6.13 usata sul mio PC desktop, condita con varie considerazioni sparse che possano aiutare a comprendere le varie voci. Alcune parti della configurazioni sono generiche; altre, sebbene specifiche del mio hardware, possono servire da spunto per altri che stiano cercando di configurare il proprio kernel.


La presente configurazione è orientata ad ottenere la più bassa latenza possibile da un kernel vanilla, tipicamente per applicazioni audio realtime. Forse in futuro aggiungerò una sezione riguardo l'applicazioni delle patch realtime al kernel (necessarie per ottenere latenze ancora più basse).  
La presente configurazione è orientata ad ottenere la più bassa latenza possibile da un kernel "Vanilla", tipicamente per applicazioni audio realtime. Forse in futuro aggiungerò una sezione riguardo l'applicazioni delle patch realtime al kernel (necessarie per ottenere latenze ancora più basse).  


Il secondo scopo di questa configurazione è quello di ottenere il kernel minimo (compilando meno cose possibili) per ottenere la funzionalità richiesta. Per questo motivo invito chiunque abbia consigli per ridurre ulteriormente questa configurazione, o che sappia anche solo chiarire certe voci più oscure della configurazione, a scrivere qui ampliando e integrando il testo.
Il secondo scopo di questa configurazione è quello di ottenere il kernel minimo (compilando meno cose possibili) per ottenere la funzionalità richiesta. Per questo motivo invito chiunque abbia consigli per ridurre ulteriormente questa configurazione, o che sappia anche solo chiarire certe voci più oscure della configurazione, a scrivere qui ampliando e integrando il testo.
Riga 9: Riga 10:
Attraverso l'indice è possibile accedere direttamente alle varie sezioni della configurazione del kernel. Per cui questa guida può essere anche usata come veloce riferimento o confronto.
Attraverso l'indice è possibile accedere direttamente alle varie sezioni della configurazione del kernel. Per cui questa guida può essere anche usata come veloce riferimento o confronto.


Come ultima cosa aggiungo che con questa configurazione riesco a non avere mai interruzioni nella musica che ascolto anche se stò ricompilando il kernel o installando openoffice (queste prestazioni le raggiungo soltanto usando l'[[Esempio_configurazione_kernel#IO_Schedulers__---.3E|I/O Scheduler]] '''cfq''').
Come ultima cosa aggiungo che con questa configurazione riesco a non avere mai interruzioni nella musica che ascolto anche se sto ricompilando il kernel o installando Openoffice (queste prestazioni le raggiungo soltanto usando l'[[Esempio_configurazione_kernel#IO_Schedulers__---.3E|I/O Scheduler]] '''cfq''').


Happy Debian!
Happy Debian!


{{Warningbox|Ottimizzare un kernel per la bassa latenza implica la diminuzione del throughput complessivo del processore, e quindi una diminuzione delle prestazioni assolute. La bassa latenza si ottiene a scapito delle prestazioni, questa è una limitazione intrinseca dei sistemi realtime (non specifica di linux).  Quindi questa configurazione è sconsigliata per applicazioni server. Per macchine poco potenti (indicativamente sotto il GHz) si consiglia comunque di usare un kernel 2.4 patchato per la bassa latenza, in tal modo è possibile ottenere delle ottime prestazioni realtime anche su pc relativamente vetusti.}}
{{Warningbox|Ottimizzare un kernel per la bassa latenza implica la diminuzione del throughput complessivo del processore, e quindi una diminuzione delle prestazioni assolute. La bassa latenza si ottiene a scapito delle prestazioni, questa è una limitazione intrinseca dei sistemi realtime (non specifica di linux).  Quindi questa configurazione è sconsigliata per applicazioni server. Per macchine poco potenti (indicativamente sotto il GHz) si consiglia comunque di usare un kernel 2.4 patchato per la bassa latenza, in tal modo è possibile ottenere delle ottime prestazioni realtime anche su PC relativamente vetusti.}}


== Descrizione PC ==
== Descrizione PC ==


Il pc è un desktop abbastanza standard, nessuna periferica scsi, hard disk EIDE ata 100, cdrom e masterizzare EIDE, scheda audio Audigy 1, scheda video ati radeon 7000ve, floppy, porte usb (sono abilitati nella configurazione l'uso di chiavette usb).
Il PC è un desktop abbastanza standard, nessuna periferica SCSI, hard disk EIDE ata 100, CD-ROM e masterizzare EIDE, scheda audio Audigy 1, scheda video ati radeon 7000ve, floppy, porte usb (sono abilitati nella configurazione l'uso di chiavette USB).


La connessione avviene tramite scheda di rete ethernet 10/100, quindi non è necessario nessun particolare supporto per modem. Inoltre '''non viene usata l'immagine initrd''' e quindi i relativi supporti (file system, chipset, ecc...) vengono compilati staticamente.
La connessione avviene tramite scheda di rete ethernet 10/100, quindi non è necessario nessun particolare supporto per modem. Inoltre '''non viene usata l'immagine initrd''' e quindi i relativi supporti (file system, chipset, ecc...) vengono compilati staticamente.
Riga 66: Riga 67:


== Processor type and features  ---> ==
== Processor type and features  ---> ==
Questa sezione è particolarmente importate. Qui si seleziona il tipo di processore, l'mtrr, il tipo di preemption. Notare in particolare le voci:
Questa sezione è particolarmente importante. Qui si seleziona il tipo di processore, l'mtrr, il tipo di preemption. Notare in particolare le voci:


* Preemption Model (Preemptible Kernel (Low-Latency Desktop))
* Preemption Model (Preemptible Kernel (Low-Latency Desktop))
Riga 107: Riga 108:
   │ │[ ] kexec system call (EXPERIMENTAL)                                    │ │
   │ │[ ] kexec system call (EXPERIMENTAL)                                    │ │
   │ └────────────────────────────────────────────────────────────────────────┘ │
   │ └────────────────────────────────────────────────────────────────────────┘ │
 


== Power management options (ACPI, APM)  ---> ==
== Power management options (ACPI, APM)  ---> ==
Riga 268: Riga 268:
   │ └─────────────────────────────────────────────────────────────────────┘ │
   │ └─────────────────────────────────────────────────────────────────────┘ │
==== IO Schedulers  ---> ====
==== IO Schedulers  ---> ====
Questi sono gli scheduer per l'I/O. Non è chiaro quale sia il migliore in assoluto per la bassa latenza, io li compilo tutti e tre. Di default viene scelto "Anticipatory" ma può essere cambiato (ad esempio se vogliamo impostare il cfq) in tempo reale con:
Questi sono gli scheduler per da usare per l'I/O su disco. Ecco come li descrive il kernel hacker ''Jen Axboe'' ([http://bhhdoa.org.au/pipermail/ck/2006-April/005817.html link]):


# echo cfq | /sys/block/hda/queue/scheduer
:''On Thursday 06 April 2006 20:31, Jens Axboe wrote:
:> Low latency isn't always the primary goal. If you want that, you'd just
:> use noop - that will always get you the lowest latency. deadline is a
:> little worse than noop, but latency is still very good. cfq has higher
:> latency, which is a design goal as you simply need to for good
:> throughput. So while deadline does 100ms read latencies for 8 threads
:> reading 8 files, cfq will get you average 700ms latency per thread
:> there. cfq will also maintain 50MiB/sec throughput (or whatever your
:> disk does sequentially) distributed evenly between threads, while
:> deadline will probably do 2MiB/sec there.''


oppure usando il parametro di boot del kernel elevator, es:
Generalmente il <code>cfq</code> dà i migliori risultati grazie al suo elevato throughput, infatti per applicazioni audio di solito non è importante la latenza di accesso al disco ma throughput complessivo.
 
In ogni caso meglio compilarli tutti (questo non genera overhead). Di default viene scelto "Anticipatory" ma può essere cambiato a sistema avviato con:
 
# echo cfq > /sys/block/hda/queue/scheduler
 
''(ad esempio se vogliamo impostare il '''cfq''')''
 
oppure usando il parametro di boot del kernel <code>elevator</code>, es:


  elevator=cfq
  elevator=cfq


I valori possibili si ottengono con un cat di <tt>/sys/block/hda/queue/scheduer</tt>
I valori possibili si ottengono con un cat di <code>/sys/block/hda/queue/scheduler</code> (lo scheduler in uso è indicato tra parentesi quadre).
(lo schduler in uso è indicato tra parentesi quadre).


Ecco la configurazione:
Ecco la configurazione:
Riga 455: Riga 471:
   <*>  I2C device interface
   <*>  I2C device interface


e le sottovoci degli algoritmi
e le sottovoci degli algoritmi:


   I2C Algorithms  --->
   I2C Algorithms  --->
Riga 558: Riga 574:


===== USB devices  ---> =====
===== USB devices  ---> =====
Da selezionare solo se si possiedono periferiche audio usb, io non ne possiedo e non seleziono niente.
Da selezionare solo se si possiedono periferiche audio USB, io non ne possiedo e non seleziono niente.


=== USB support  ---> ===
=== USB support  ---> ===
Non metto il supporto HID non possedendo nessuna periferica che lo richiede. Inoltre la mia connessione è tramite scheda di rete, quindi non seleziono nessuna voce relativa a periferiche di networking usb.
In questa sezione si attiva il supporto per l'usb. Se avete porte USB1 dovrete scegliere tra:
 
* OHCI HCD support
* UHCI HCD (most Intel and VIA) support
 
a seconda del vostro controller usb. Se invece avete un controller USB2 dovrete scegliere:
 
* EHCI HCD (USB 2.0) support
 
Non metto il supporto HID non possedendo nessuna periferica che lo richiede. Inoltre la mia connessione è tramite scheda di rete, quindi non seleziono nessuna voce relativa a periferiche di networking USB.
 
   │ ┌─────────────────────────────────────────────────────────────────────┐ │
   │ ┌─────────────────────────────────────────────────────────────────────┐ │
   │ │<M> Support for Host-side USB                                        │ │
   │ │<M> Support for Host-side USB                                        │ │
Riga 634: Riga 660:
   │ │    USB Gadget Support  --->                            (nessuno)  │ │
   │ │    USB Gadget Support  --->                            (nessuno)  │ │
   │ └─────────────────────────────────────────────────────────────────────┘ │
   │ └─────────────────────────────────────────────────────────────────────┘ │


== File systems  ---> ==
== File systems  ---> ==
Riga 766: Riga 791:
   │ └─────────────────────────────────────────────────────────────────────┘ │
   │ └─────────────────────────────────────────────────────────────────────┘ │
== Cryptographic options  ---> ==
== Cryptographic options  ---> ==
Non seleziono niente, dovrei?
Normalmente vengono attivate queste opzioni nelle reti wireless o comunque nelle configurazioni in cui i dati vengono criptati (vpn, etc.)
 
Un esempio potrebbe essere quello della configurazione di rete wireless (mi viene in mente wpasupplicant) in cui si imposta la connessione criptata.


== Library routines  ---> ==
== Library routines  ---> ==
Neanche qui niente, qualcuno sa se va bene?
Neanche qui niente, qualcuno sa se va bene?
{{Autori
|Autore=[[User:TheNoise|TheNoise]]
}}
[[Categoria:Linux]]
6 999

contributi

Menu di navigazione