Esempio configurazione kernel: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(marcata come "Da adottare")
 
(10 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
{{Debianized}}
{{Guida da adottare}}
<big>'''''Introduzione'''''</big>


== Introduzione ==
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.


Questa � una guida generica (non specifica per Debian) su '''Grub''' che
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).  
comprende argomenti quali l'installazione e la configurazione da zero
di grub, trattati in modo semplice (si spera) in modo da non spaventare
i principianti. La guida � rivolta quindi a tutti coloro i quali per
necessit� o diletto vogliano imparare ad usare questo
versatile [[boot loader]].


== Perch� Grub ==
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.


La ragione per cui consiglio anche ai newbie '''Grub''' � la
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.
caratteristica, unica, di poter scrivere da zero o modificare, in fase di boot, i comandi per fare
partire un kernel, il tutto con
l'ausilio dell'autocompletamento. Adesso provo a spiegarmi meglio.


Se '''Grub''' � installato, al boot comparir� il classico men� con le voci per ogni sistema operativo installato. A questo punto premendo "'''e'''" si entra in modalit� editing e si possono modificare le voci del menu iniziale oppure si possono inserire i comandi per
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''').
fare partire un altro kernel non presente nel menu. '''Grub'''
pu� leggere le varie
partizioni e visualizzare i nomi dei file, e grazie
all'autocompletamento si �
sicuri di non sbagliare il percorsi o i nomi dei file. In questo modo � facile fare velocemente molte prove con kernel o
parametri di boot diversi, al volo, senza dover modificare alcun file.
Per confronto, con lilo (altro [[boot loader]] diffuso), per modificare un
parametro di boot o fare partire un nuovo kernel (anche solo per prova)
� necessario avviare il sitema, modificare
<tt>lilo.conf</tt>, eseguire il comado lilo e riavviare. Con '''Grub''' basta invece scrivere le modifiche al boot: se c'� un errore ed il kernel non si
carica basta resettare il sistema e provare di nuovo. Trovati i
parametri giusti si possono salvare in '''<tt>/boot/grub/menu.lst</tt>''' in modo che non sia pi� necessario inserirli a mano.


== Installazione di Grub ==
Happy Debian!


Normalmente '''Grub''' � gi� installato in Debian. Se per� si
{{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.}}
installato, per ultimo, un S.O. (come MS-Windows) che ignora la presenza di altri
sistemi sul disco e vuole monopolizzare il nostro pc, ci si trova nella
necessit� di installare nuovamente '''Grub''' per riappropriarci della libert� di scegliere. Pu� anche succedere di aver provato un altro boot loader e di voler ritornare a '''Grub''': anche in questo caso basta seguire quanto segue.


Per usare '''Grub''' � necessario installarlo nel [[MBR]] (in realt� � anche possibile [[Guida_a_Grub#Installare_Grub_su_floppy|installarlo solo in un floppy]]) con il seguente comando:
== Descrizione PC ==


<pre>
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).
# grub-install --no-floppy /dev/hda
</pre>
 
in questo modo ogni altro [[boot loader]] verr� sovrascritto e all'avvio apparir� grub che permetter� di avviare ogni sistema presente su hard disk. Non � necessario avere tanti [[boot loader]] anche se si installano tante distribuzioni,
ne basta uno che le faccia partire tutte.
 
Se si � installato windows, gli altri S.O. non saranno pi� avviabili. Come si fa allora a eseguire il precedente comando per ripristinare grub? Basta usare un livecd per avviare il sistema, non � neanche necessario che ci sia grub in tale cd. Dopo l'avvio, monteremo la partizione di root del sistema linux installato su hard disk:
<pre>
# mkdir /mnt/root
# mount /dev/hda3 /mnt/root
</pre>
 
dove si � fatta l'ipotesi che sia <tt>/dev/hda3</tt> la partizione di root. Ora con <tt>chroot</tt> si pu� cambiare al volo la partizione di root del nostro livecd:
 
<pre>
# chroot /mnt/root
</pre>
 
Adesso abbiamo sotto di noi la root del sistema installato su disco. Montiamo anche la partizione di boot, se questa � posta in una partizione separata. A questo punto possiamo eseguire <tt>grub-install</tt> come visto prima per ripristinare grub. Se si vuole si pu� anche generare automaticamente un menu di avvio con il [[Guida_a_Grub#Usare_update-grub|comando <tt>update-grub</tt>]].
 
Vediamo ora di capire un poco meglio quali sono i vari componenti di grub.
 
Il "primo pezzo di grub" (detto stage1) risiede nel [[MBR]], il "secondo pezzo di grub" (stage2) ed i file di configurazione risiedono nella '''partizione di root di grub''': questa sar� la partizione montata in <tt>/boot</tt> se si ha una partizione separata per <tt>/boot</tt>, altrimenti sar� la '''partizione di root del sistema''' (montata in /). La ''cartella'' in cui risiede lo stage2 e tutti i file di configurazione di grub � in ogni caso <tt>/boot/grub/</tt>.
 
Il menu iniziale del '''Grub''' � configurato nel file <tt>/boot/grub/menu.lst</tt>, basta modificarlo ed all'avvio '''Grub''' legger� la nuova configurazione. Il [[Guida_a_Grub#Usare_update-grub|comando <tt>update-grub</tt>]] genera automaticamente appunto questo file, anche se con alcune limitazioni (per maggiori informazioni vedere la sezione [[Guida_a_Grub#Usare_update-grub|<tt>'''update-grub'''</tt>]]).
 
Dopo l'installazione di grub, lo stage1 rester� sempre immutato e punter� allo stage2. Lo stage2, caricher� i file di configurazione che potranno essere modificati a piacimento senza mai dover modificare il settore di avvio ([[MBR]]).
 
== Far partire il sistema principale ==
 
Chiameremo sistema principale il sistema sotto il quale avete installato '''Grub'''. Vediamo i comandi necessari per fare partire un kernel, questi possono essere inseriti interattivamente all'avvio di '''Grub'''. Successivamente vedremo come inserirli in '''/boot/grub/menu.lst''' per creare una voce nel menu di grub.
 
Innanzi tutto dobbiamo dire a '''Grub''' qual'� la '''sua''' partizione di root, che � <tt>/boot</tt> (ci siamo?). Ma in che partizione � '''/boot'''? E' la partizione montata in '''/boot''' quando avete dato '''grub-install'''. Controllate il file '''/etc/fstab''' per vedere qual'�. Se fosse '''/dev/hda3''', dovremmo scrivere al ''prompt di grub'' (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c')
<pre>
root (hd0,2)
</pre>
 
fate attenzione perch� '''Grub''' numera sia i dischi che le partizioni, e lo fa partendo da 0, quindi il disco hda corrisponde ad hd0, e il numero della partizione � di una unit� in meno rispetto al numero che ha sotto linux.
 
Se fosse '''/dev/hda1''' dovremmo dare: '''root (hd0,0)''', chiaro?
 
{{Box | Nota |Ricordate che con la tastiera italiana, all'avvio, le parentesi si fanno con <big><tt>shift+0</tt></big> e <big><tt>shift+9</tt></big> mentre lo slash (<big><tt>/</tt></big>) con il tasto <big><tt>-</tt></big> ed il segno di uguale con �.}}
 
Ora carichiamo il kernel. Poniamo che il file sia '''/boot/vmlinuz-2.6.6s26-mio-kernel'''. Supponiamo che la ''partizione di root del kernel'' (cio� proprio la root del sistema) sia '''/dev/hda4''', scriveremo nel prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c') come secondo comando:
<pre>
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
</pre>
 
vedete? Partendo dalla ''root di grub'', che � '''/boot''' sotto linux, il file del kernel � semplicemente in '''/'''. In ogni caso � qui che l'autocompletamento (premendo <tt>TAB</tt>, lo sapete no?) gioca il suo ruolo migliore, e permette di scegliere il file corretto. Gli ultimi due parametri sono:
 
* '''ro''': accede inizialmente alle partizioni in sola lettura. E' buona norma inserirlo sempre.
* '''vga=791''': fa partire il sistema in ''frame buffer'' (console ad alta risoluzione). Per maggiore informazione leggete pi� avanti il capitolo dedicato.
 
A questo punto basta dare il comando '''boot''' per fare partire (si spera) il sistema.
 
{{Box| Nota |Se non si ha una partizione separata per <tt>/boot</tt>, bisogner� indicare la partizione di root del sistema come root di grub. In questo caso per�, il kernel non si trover� in <tt>/vmlinuz</tt> ma in <tt>/boot/vmlinuz</tt>.}}
 
== Far partire un secondo sistema ==
 
Se avete il kernel di una seconda distro sempre nella partizione di boot '''/dev/hda3''', basta cambiare il nome del file del kernel e l'opzione '''root=/dev/hda4''' per indicare la corretta ''partizione di root della seconda distro''.
Se invece il file del kernel della seconda distro risiede in un'altra
partizione che non sia la boot della prima distro (potrebbe essere una
seconda partizione di boot creata dalla seconda distro o direttamente
la partizione di root della seconda distro), basta indicare il percorso
completo a grub. Supponiamo che la partizione contenete l'altro kernel
sia '''/dev/hda7''' e che questa sia la root della seconda distro, per caricare il kernel scriveremo:
<pre>
kernel (hd0,6)/boot/vmlinuz-2.6.6-altra-distro root=/dev/hda7 ro vga=791
</pre>


ovviamente avvelendoci il pi� possibile dell'autocompletamento per
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.
facilitare le cose. Notate come in questo caso abbiamo inserito '''/boot''' perch� non c'� una partizione di boot ma solo una sotto-directory di root nella medesima partizione ovvero '''(hd0,6)''' ('''/dev/hda7''' in gergo linux).


Se avete un kernel che usa l'initrd (di solito tutti i kernel
Ecco per completezza l'output di lspci:
ufficiali delle distro, ma io sconsiglio di usare l'initrd se invece vi
ricompilate il kernel) prima di dare il comando '''boot''' dovrete caricare anche l'immagine del ramdisk. Ovvero scrivere (dopo aver caricato il kernel) il seguente comando nel prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c')
<pre>
<pre>
initrd /initrd.img-2.6.6-s26-mio-kernel
0000:00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] System Controller (rev 13)
0000:00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] AGP Bridge
0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
0000:00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
0000:00:07.4 SMBus: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
0000:00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:00:0f.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03)
0000:00:0f.1 Input device controller: Creative Labs SB Audigy MIDI/Game port (rev 03)
0000:00:0f.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port
0000:01:05.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]
</pre>
</pre>


oppure
== Code maturity level options  ---> ==
  │ │      [*] Prompt for development and/or incomplete code/drivers        │ │
  │ │      [*]  Select only drivers expected to compile cleanly            │ │


<pre>
== General setup  ---> ==
initrd (hd0,6)/initrd.img-2.6.6-altra-distro
  │ ┌────────────────────────────────────────────────────────────────────────┐ │
</pre>
  │ │  () Local version - append to kernel release                        │ │
  │ │  [*] Support for paging of anonymous memory (swap)                    │ │
  │ │  [*] System V IPC                                                    │ │
  │ │  [ ] POSIX Message Queues                                            │ │
  │ │  [*] BSD Process Accounting                                          │ │
  │ │  [ ]  BSD Process Accounting version 3 file format                  │ │
  │ │  [*] Sysctl support                                                  │ │
  │ │  [ ] Auditing support                                                │ │
  │ │  [*] Support for hot-pluggable devices                                │ │
  │ │  [*] Kernel Userspace Events                                          │ │
  │ │  [ ] Kernel .config support                                          │ │
  │ │  [ ] Configure standard kernel features (for small systems)  --->    │ │
  │ └────────────────────────────────────────────────────────────────────────┘ │


a seconda di dove si trova l'immagine (si trova sempre nella stessa partizione/directory del suo kernel).
== Loadable module support  ---> ==
  │ │            [*] Enable loadable module support                          │ │
  │ │            [*]  Module unloading                                      │ │
  │ │            [ ]    Forced module unloading                            │ │
  │ │            [*]  Module versioning support (EXPERIMENTAL)              │ │
  │ │            [ ]  Source checksum for all modules                      │ │
  │ │            [*]  Automatic kernel module loading                      │ │


{{Warningbox|Un kernel partir� solo con
== Processor type and features  ---> ==
la sua immagine initrd, se provate ad usare immagini initrd di altri
Questa sezione è particolarmente importante. Qui si seleziona il tipo di processore, l'mtrr, il tipo di preemption. Notare in particolare le voci:
kernel il sistema non partir� dando un ''Kernel Panic''. Analogamente se cercate di fare partire un kernel che necessita di initrd, senza initrd il sistema andr� ancora in ''Kernel Panic''.}}


== Configurare il Men� di grub ==
* Preemption Model (Preemptible Kernel (Low-Latency Desktop))
* Preempt The Big Kernel Lock


Il menu di grub si imposta tramite il file '''/boot/grub/menu.lst'''.
per ottenere bassa latenza e
L'intestazione di questo file pu� contenere molti comandi. Noi
vedremo solo un esempio semplicissimo ma pienamente sufficiente ai
nostri scopi:
<pre>
default 0
timeout 5
color light-gray/blue yellow/blue
</pre>


Inserendo queste righe all'inizio del '''menu.lst''' diremo a grub
* Timer frequency (1000 HZ)
che all'avvio dovr� attendere 5 secondi (timeout) e dopo di che
scegliere il primo kernel dell'elenco (il numero 0, ricordate che Grub
inizia a contare da zero?). Il men� sar� presentato con i colori
indicati, secondo il seguente schema: caretteri/sfondo rispettivamente
per il testo normale e per il testo evidenziato.


Adesso, inseriamo i blocchi per i vari kernel. Come visto per fare partire un kernel servono tre comandi: ''root, kernel, boot'' (oppure nel caso ci sia l'initrd ''root, kernel, initrd, boot''). Nel '''menu.lst''' bisogna inserire in pi� soltanto un primo comando ('''title''')
per avere un timer più preciso.
che specifica il nome che apparira all'avvio per quel kernel nel men�
del grub. In pratica, usando gli esempi precedenti dei due kernel,
dovremmo avere un '''menu.lst''' del genere:
<pre>
default   0
timeout   5
color    light-gray/blue yellow/blue


title    Prima Distribuzione (puoi scrivere quello che vuoi)
  │ ┌────────────────────────────────────────────────────────────────────────┐ │
root      (hd0,2)
  │ │    Subarchitecture Type (PC-compatible) --->                          │ │
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
  │ │    Processor family (Athlon/Duron/K7)  --->                            │ │
boot
  │ │[ ] Generic x86 support                                                │ │
  │ │[*] HPET Timer Support                                                  │ │
  │ │[ ] Symmetric multi-processing support                                  │ │
  │ │    Preemption Model (Preemptible Kernel (Low-Latency Desktop))  --->  │ │
  │ │[*] Preempt The Big Kernel Lock                                        │ │
  │ │[*] Local APIC support on uniprocessors                                │ │
  │ │[*]  IO-APIC support on uniprocessors                                  │ │
  │ │[*] Machine Check Exception                                            │ │
  │ │<*>  Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4  │ │
  │ │[ ]  check for P4 thermal throttling interrupt.                        │ │
  │ │< > Toshiba Laptop support                                              │ │
  │ │< > Dell laptop support                                                │ │
  │ │[ ] Enable X86 board specific fixups for reboot                        │ │
  │ │< > /dev/cpu/microcode - Intel IA32 CPU microcode support              │ │
  │ │<M> /dev/cpu/*/msr - Model-specific register support                    │ │
  │ │<M> /dev/cpu/*/cpuid - CPU information support                          │ │
  │ │    Firmware Drivers  --->                                              │ │
  │ │    High Memory Support (off)  --->                                    │ │
  │ │    Memory model (Flat Memory)  --->                                    │ │
  │ │[ ] Math emulation                                                      │ │
  │ │[*] MTRR (Memory Type Range Register) support                          │ │
  │ │[ ] Boot from EFI support (EXPERIMENTAL)                                │ │
  │ │[ ] Use register arguments (EXPERIMENTAL)                              │ │
  │ │[*] Enable seccomp to safely compute untrusted bytecode                │ │
  │ │    Timer frequency (1000 HZ)  --->                                    │ │
  │ │[ ] kexec system call (EXPERIMENTAL)                                    │ │
  │ └────────────────────────────────────────────────────────────────────────┘ │


title    Seconda Distribuzione (puoi scrivere quello che vuoi)
== Power management options (ACPI, APM)  ---> ==
root     (hd0,2)
  │ │[*] Power Management support                                            │ │
kernel (hd0,6)/boot/vmlinuz-2.6.6-altra-distro root=/dev/hda7 ro vga=791
  │ │[ ]  Power Management Debug Support                                    │ │
boot
  │ │[ ]  Software Suspend                                                  │ │
</pre>
  │ │      ACPI (Advanced Configuration and Power Interface) Support  --->  │ │
 
  │ │     APM (Advanced Power Management) BIOS Support  --->                │ │
Seguendo questo schema portrete aggiungere quanti kernel volete, ma
  │ │    CPU Frequency scaling  --->                                        │ │
ricordate che potrete provare prima i comandi interattivamente dal prompt di grub (Linea di comando di grub - Appare al boot premendo il tasto 'e' seguito da 'c')
=== ACPI (Advanced Configuration and Power Interface) Support  ---> ===
  │ │  [*] ACPI Support                                                      │ │
  │ │  [ ]  Sleep States (EXPERIMENTAL)                                    │ │
  │ │  < >  AC Adapter                                                      │ │
  │ │  < >  Battery                                                        │ │
  │ │  < >  Button                                                          │ │
  │ │  <M>  Video                                                          │ │
  │ │  < >  Generic Hotkey                                                  │ │
  │ │  <M>  Fan                                                            │ │
  │ │  <M>  Processor                                                      │ │
  │ │  <M>    Thermal Zone                                                  │ │
  │ │  < >  ASUS/Medion Laptop Extras                                      │ │
  │ │  < >  IBM ThinkPad Laptop Extras                                      │ │
  │ │  < >   Toshiba Laptop Extras                                          │ │
  │ │  (0)  Disable ACPI for systems before Jan 1st this year              │ │
  │ │  [ ]  Debug Statements                                                │ │
  │ │  [ ]  Power Management Timer Support                                  │ │
  │ │  < >  ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)   │ │


Nel caso i kernel abbiano bisogno dell'initrd il '''menu.lst''' dovrebbe semplicemente contere un comando in pi per ogni kernel:
<pre>
default   0
timeout   5
color    light-gray/blue yellow/blue


title    Prima Distribuzione (puoi scrivere quello che vuoi)
== Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> ==
root      (hd0,2)
Non sono sicuro se la voce "PCI device name database" sia necessaria. Se qualcuno ha informazioni in proposito per favore lo segnali.
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
initrd /initrd.img-2.6.6-s26-mio-kernel
boot


title    Seconda Distribuzione (puoi scrivere quello che vuoi)
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
root      (hd0,2)
  │ │        [*] PCI support                                            │ │
kernel (hd0,6)/boot/vmlinuz-2.6.6-altra-distro root=/dev/hda7 ro vga=791
  │ │              PCI access mode (Any) --->                           │ │
initrd (hd0,6)/initrd.img-2.6.6-altra-distro
  │ │        [ ]  PCI Express support                                  │ │
boot
  │ │        [ ]  Message Signaled Interrupts (MSI and MSI-X)           │ │
</pre>
  │ │        [ ]  Legacy /proc/pci interface                            │ │
 
  │ │        [*]  PCI device name database                              │ │
Ovviamente, il blocco di un kernel potrebbe contere il comando
  │ │        [ ]  PCI Debugging                                        │ │
initrd ed il blocco di un altro no, a seconda che il kernel in oggetto
  │ │        [ ] ISA support                                            │ │
lo richieda o meno.
  │ │        [ ] MCA support                                            │ │
 
  │ │        < > NatSemi SCx200 support                                  │ │
A questo punto, se avete appreso i concetti di base dovreste essere
  │ │            PCCARD (PCMCIA/CardBus) support  ---> (niente)         │ │
in grado di configurare il menu di grub per qualsiasi esigenza. Per i
  │ │            PCI Hotplug Support  --->             (niente)         │ │
pi� intraprendenti aggiungo un ultima chicca. Se nel blocco di ogni
  │ └─────────────────────────────────────────────────────────────────────┘ │
kernel inserite, prima del comando '''boot''', il comando '''savedefault''' e modificate il comando '''default 0''' in '''default save''', all'avvio grub (dopo il timeout) sceglier� il kernel che avete scelto nel precedente avvio (vedi nota).
 
== Avviare altri sistemi operativi ==
 
=== Windows, BeOS, OpenBSD ===
 
Per alcuni sistemi operativi l'avvio tramite
bootloader � pi� delicato, perch� hanno bisogno che la partizione da cui
partono sia "resa attiva" (e in molti casi questa deve essere anche una
partizione primaria). Oltretutto, mentre con linux Grub pu� caricare direttamente il kernel e avviare il sistema, con altri sistemi operativi il kernel pu� essere avviato solo dal bootloader nativo e quindi Grub non pu� fare altro che richiamare il bootloader nativo (''chainloading'') che a sua volta caricher� il kernel e avvier� il sistema.
 
I sistemi operativi che devono essere avviati in questo
modo sono fondamentalmente tre: Windows, BeOS e OpenBSD. Il pi�
versatile, anche per quanto riguarda l'installazione in partizione non
primaria, � sicuramente BeOS. Per avviare uno di questi sistemi
operativi basta scrivere (prendiamo come esempio Windows, assumendo che
sia sulla prima partizione di un secondo disco):
<pre>
title Windows
rootnoverify (hd1,0)
makeactive
chainloader +1
boot
</pre>


Il primo comando (<tt>rootnoverify</tt>) dice sostanzialmente qual �
== Executable file formats  ---> ==
la partizione di windows (nel nostro caso la prima partizione del
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
secondo disco � hd1,0, corrispondente, in Linux, a <tt>/dev/hdb1</tt>), il
  │ │          [*] Kernel support for ELF binaries                        │ │
secondo comando, invece, rende la partizione attiva (condizione
  │ │          <*> Kernel support for a.out and ECOFF binaries            │ │
essenziale per Windows), il terzo comando istruisce, sostanzialmente,
  │ │          <M> Kernel support for MISC binaries                      │ │
sul fatto di leggere la prima traccia di tale partizione, e l'ultimo
  │ └─────────────────────────────────────────────────────────────────────┘ │
comando fa si che il sistema parta, eseguendo in ordine tutte le scelte
precedenti.


=== FreeBSD ===
== Networking  ---> ==
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │          [*] Networking support                                    │ │
  │ │                Networking options  --->                            │ │
  │ │          [ ]  Amateur Radio support  --->                        │ │
  │ │          < >  IrDA (infrared) subsystem support  --->            │ │
  │ │          < >  Bluetooth subsystem support  --->                  │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
=== Networking options  ---> ===
Sono attivate solo le opzioni minime per navigare. Nessun firewall, o capacità di routing è attivata. Se qualcuno sa cosa si può ancora togliere è ben gradito un consiglio. Con questa configurazione è possibile fare file-sharing e ricevere trasmissioni broadcast tramite internet.
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │      <*> Packet socket                                              │ │
  │ │      [*]  Packet socket: mmapped IO                                │ │
  │ │      <*> Unix domain sockets                                        │ │
  │ │      < > PF_KEY sockets                                            │ │
  │ │      [*] TCP/IP networking                                          │ │
  │ │      [*]  IP: multicasting                                        │ │
  │ │      [ ]  IP: advanced router                                      │ │
  │ │      [ ]  IP: kernel level autoconfiguration                      │ │
  │ │      < >  IP: tunneling                                            │ │
  │ │      < >  IP: GRE tunnels over IP                                  │ │
  │ │      [ ]  IP: multicast routing                                    │ │
  │ │      [ ]  IP: ARP daemon support (EXPERIMENTAL)                    │ │
  │ │      [ ]  IP: TCP syncookie support (disabled per default)        │ │
  │ │      < >  IP: AH transformation                                    │ │
  │ │      < >  IP: ESP transformation                                  │ │
  │ │      < >  IP: IPComp transformation                                │ │
  │ │      < >  IP: tunnel transformation                                │ │
  │ │      < >  IP: TCP socket monitoring interface                      │ │
  │ │      [ ]  TCP: advanced congestion control                        │ │
  │ │      < >  The IPv6 protocol                                        │ │
  │ │      [ ] Network packet filtering (replaces ipchains)  ---> (niente)│ │
  │ │          SCTP Configuration (EXPERIMENTAL)  --->            (niente)│ │
  │ │      < > Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)            │ │
  │ │      < > 802.1d Ethernet Bridging                                  │ │
  │ │      < > 802.1Q VLAN Support                                        │ │
  │ │      < > DECnet Support                                            │ │
  │ │      < > ANSI/IEEE 802.2 LLC type 2 Support                        │ │
  │ │      < > The IPX protocol                                          │ │
  │ │      < > Appletalk protocol support                                │ │
  │ │      < > CCITT X.25 Packet Layer (EXPERIMENTAL)                    │ │
  │ │      < > LAPB Data Link Driver (EXPERIMENTAL)                      │ │
  │ │      [ ] Frame Diverter (EXPERIMENTAL)                              │ │
  │ │      < > Acorn Econet/AUN protocols (EXPERIMENTAL)                  │ │
  │ │      < > WAN router                                                │ │
  │ │      [ ] QoS and/or fair queueing  --->  (niente)                  │ │
  │ │          Network testing  --->          (niente)                  │ │
  │ │                                                                    │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


Uno dei motivi per cui Grub ha una nomenclatura tutta particolare
== Device Drivers  ---> ==
dei dischi � dovuto al fatto che il programma � stato pensato per
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
avviare anche kernel non-linux, uno su tutti, quello di FreeBSD.
  │ │              Generic Driver Options  --->                          │ │
FreeBSD ha, infatti, un sistema di organizzazione delle directory
  │ │              Memory Technology Devices (MTD)  --->    (niente)    │ │
abbastanza particolare. Nell'esempio assumiamo che FreeBSD sia
  │ │              Parallel port support  --->              (niente)    │ │
installato nella seconda partizione del secondo disco:
  │ │              Plug and Play support  --->              (niente)    │ |
<pre>
  │ │              Block devices  --->                                  │ │
title FreeBSD
  │ │              ATA/ATAPI/MFM/RLL support  --->                      │ │
root (hd1,1,a)
  │ │              SCSI device support  --->                            │ │
kernel /boot/loader
  │ │              Multi-device support (RAID and LVM)  --->  (niente)  │ │
</pre>
  │ │              Fusion MPT device support  --->            (niente)  │ │
  │ │              IEEE 1394 (FireWire) support  --->        (niente)  │ │
  │ │              I2O device support  --->                              │ │
  │ │              Network device support  --->                         │ │
  │ │              ISDN subsystem  --->                      (niente)  │ │
  │ │              Telephony Support  --->                    (niente)  │ │
  │ │              Input device support  --->                            │ │
  │ │              Character devices  --->                              │ │
  │ │              I2C support  --->                                    │ │
  │ │              Dallas's 1-wire bus  --->                  (niente)   │ │
  │ │              Hardware Monitoring support  --->                    │ │
  │ │              Misc devices  --->                        (niente)  │ │
  │ │              Multimedia devices  --->                  (niente)  │ │
  │ │              Graphics support  --->                                │ │
  │ │              Sound  --->                                          │ │
  │ │              USB support  --->                                    │ │
  │ │              MMC/SD Card support  --->                  (niente)  │ │
  │ │              InfiniBand support  --->                  (niente)  │ │
  │ │              SN Devices  --->                          (niente)  │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
=== Generic Driver Options  ---> === 
  | │[*] Select only drivers that don't need compile-time external firmwar│ │
  │ │[*] Prevent firmware from being built                                │ │
  │ │< > Hotplug firmware loading support                                │ │
  │ │[ ] Driver Core verbose debug messages                              │ │


Per approfondire il sistema di partizionamento di FreeBSD consultare la BSD-FAQ-it.


== Installare Grub su floppy ==
=== Block devices  ---> ===
=== Metodo 1 ===
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
Installare Grub su un floppy vi permetter� di fare partire qualsiasi sistema anche con [[MBR]] corrotto. Per installare grub su di un floppy baster� eseguire i seguenti comandi:
  │ │ <M> Normal floppy disk support                                      │ │
<pre>
  │ │ < > Compaq SMART2 support                                          │ │
# cd /lib/grub/i386-pc
  │ │ < > Compaq Smart Array 5xxx support                                │ │
# dd if=stage1 of=/dev/fd0 bs=512 count=1
  │ │ < > Mylex DAC960/DAC1100 PCI RAID Controller support                │ │
1+0 records in
  │ │ < > Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)  │ │
1+0 records out
  │ │ <M> Loopback device support                                        │ │
# dd if=stage2 of=/dev/fd0 bs=512 seek=1
  │ │ < >  Cryptoloop Support                                            │ │
153+1 records in
  │ │ < > Network block device support                                    │ │
153+1 records out
  │ │ < > Promise SATA SX8 support                                        │ │
#
  │ │ < > Low Performance USB Block driver                                │ │
</pre>
  │ │ < > RAM disk support                                                │ │
  │ │ ()  Initramfs source file(s)                                        │ │
  │ │ [ ] Support for Large Block Devices                                │ │
  │ │ < > Packet writing on CD/DVD media                                  │ │
  │ │    IO Schedulers  --->                                            │ │
  │ │ < > ATA over Ethernet support                                      │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
==== IO Schedulers  ---> ====
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]):


Su una distro non debian i percorsi potrebbero essere leggermente differenti.
:''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.''


=== Metodo 2 ===
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.
Un metodo pi� comodo che consente di salvare sul floppy anche il menu di avvio di grub (<tt>[[Guida_a_Grub#Configurare il Men� di grub|menu.lst]]</tt>) � il seguente.


Formattiamo il floppy usando il filesystem ext2:
In ogni caso meglio compilarli tutti (questo non genera overhead). Di default viene scelto "Anticipatory" ma può essere cambiato a sistema avviato con:


  # mkfs.ext2 /dev/fd0
  # echo cfq > /sys/block/hda/queue/scheduler


montiamolo e creiamo una directory di nome <tt>grub</tt>:
''(ad esempio se vogliamo impostare il '''cfq''')''


# mount -t ext2 /dev/fd0 /media/floppy
oppure usando il parametro di boot del kernel <code>elevator</code>, es:
# mkdir /media/floppy/grub


Copiamo i file di grub ed il menu di avvio:
elevator=cfq


# cp /boot/grub/stage* /media/floppy/grub/
I valori possibili si ottengono con un cat di <code>/sys/block/hda/queue/scheduler</code> (lo scheduler in uso è indicato tra parentesi quadre).
# cp /boot/grub/menu.lst /media/floppy/grub


Installiamo lo stage1 nel [[MBR]] del floppy:
Ecco la configurazione:
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │                  <*> Anticipatory I/O scheduler                    │ │
  │ │                  <*> Deadline I/O scheduler                        │ │
  │ │                  <*> CFQ I/O scheduler                              │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


  # grub
=== ATA/ATAPI/MFM/RLL support ---> ===


e dalla shell di grub digitiamo i seguenti comandi:
Qui al posto di "VIA82CXXX chipset support" (alla fine) selezionate il supporto per il chipset del vostro hardware. Per il resto la configurazione è abbastanza generica.


> root (fd0)
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
> setup (fd0)
  │ │<*> ATA/ATAPI/MFM/RLL support                                        │ │
> quit
  │ │<*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support            │ │
  │ │---    Please see Documentation/ide.txt for help/info on IDE drives │ │
  │ │[ ]    Support for SATA (deprecated; conflicts with libata SATA driv│ │
  │ │[ ]    Use old disk-only driver on primary interface                │ │
  │ │<*>    Include IDE/ATA-2 DISK support                              │ │
  │ │[ ]    Use multi-mode by default                                    │ │
  │ │<M>    Include IDE/ATAPI CDROM support                              │ │
  │ │< >    Include IDE/ATAPI TAPE support (EXPERIMENTAL)               │ │
  │ │< >    Include IDE/ATAPI FLOPPY support                            │ │
  │ │< >     SCSI emulation support                                      │ │
  │ │[ ]    IDE Taskfile Access                                          │ │
  │ │---    IDE chipset support/bugfixes                                │ │
  │ │<*>    generic/default IDE chipset support                          │ │
  │ │[ ]    CMD640 chipset bugfix/support                                │ │
  │ │[*]    PCI IDE chipset support                                      │ │
  │ │[ ]      Sharing PCI IDE interrupts support                        │ │
  │ │[ ]      Boot off-board chipsets first support                      │ │
  │ │< >      Generic PCI IDE Chipset Support                            │ │
  │ │< >      OPTi 82C621 chipset enhanced support (EXPERIMENTAL)       │ │
  │ │< >      RZ1000 chipset bugfix/support                              │ │
  │ │[*]      Generic PCI bus-master DMA support                        │ │
  │ │[ ]        Force enable legacy 2.0.X HOSTS to use DMA              │ │
  │ │[*]        Use PCI DMA by default when available                    │ │
  │ │[ ]          Enable DMA only for disks                              │ │
  │ │< >        AEC62XX chipset support                                  │ │
  │ │< >        ALI M15x3 chipset support                                │ │
  │ │< >         AMD and nVidia IDE support                              │ │
  │ │< >        ATI IXP chipset IDE support                              │ │
  │ │< >        CMD64{3|6|8|9} chipset support                          │ │
  │ │< >        Compaq Triflex IDE support                              │ │
  │ │< >        CY82C693 chipset support                                │ │
  │ │< >        Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTA│ │
  │ │< >        Cyrix/National Semiconductor CS5530 MediaGX chipset suppo│ │
  │ │< >        HPT34X chipset support                                  │ │
  │ │< >        HPT36X/37X chipset support                              │ │
  │ │< >        National SCx200 chipset support                          │ │
  │ │< >        Intel PIIXn chipsets support                            │ │
  │ │< >        IT821X IDE support                                      │ │
  │ │< >        NS87415 chipset support                                  │ │
  │ │< >        PROMISE PDC202{46|62|65|67} support                      │ │
  │ │< >        PROMISE PDC202{68|69|70|71|75|76|77} support            │ │
  │ │< >        ServerWorks OSB4/CSB5/CSB6 chipsets support              │ │
  │ │< >        Silicon Image chipset support                            │ │
  │ │< >        SiS5513 chipset support                                  │ │
  │ │< >        SLC90E66 chipset support                                │ │
  │ │< >        Tekram TRM290 chipset support                            │ │
  │ │<*>        VIA82CXXX chipset support                                │ │
  │ │[ ]    IGNORE word93 Validation BITS                                │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


Fatto. Non ci resta che smontare il floppy
=== SCSI device support  ---> ===
Queste voci sono necessarie per avere l'emulazione scsi ed usare le chiavette usb.
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │  <M> SCSI device support                                            │ │
  │ │  [*]  legacy /proc/scsi/ support                                  │ │
  │ │  ---  SCSI support type (disk, tape, CD-ROM)                      │ │
  │ │  <M>  SCSI disk support                                            │ │
  │ │  < >  SCSI tape support                                            │ │
  │ │  < >  SCSI OnStream SC-x0 tape support                            │ │
  │ │  < >  SCSI CDROM support                                          │ │
  │ │  <M>  SCSI generic support                                        │ │
  │ │  < >  SCSI media changer support                                  │ │
  │ │  ---  Some SCSI devices (e.g. CD jukebox) support multiple LUNs    │ │
  │ │  [ ]  Probe all LUNs on each SCSI device                          │ │
  │ │  [ ]  Verbose SCSI error reporting (kernel size +=12K)            │ │
  │ │  [ ]  SCSI logging facility                                        │ │
  │ │        SCSI Transport Attributes  --->              (nessuno)      │ │
  │ │        SCSI low-level drivers  --->                  (nessuno)      │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


# umount /media/floppy


e provare il nostro dischetto di avvio.
=== I2O device support  ---> ===
Queste voci servono per attivare i sensori (temperatura, ventola, ecc...).


== Usare update-grub ==
  │ │                  <M> I2O support                                    │ │
  │ │                  [ ]  Enable Adaptec extensions                    │ │
  │ │                  < >  I2O Configuration support                    │ │
  │ │                  < >  I2O Bus Adapter OSM                          │ │
  │ │                  < >  I2O Block OSM                                │ │
  │ │                  < >  I2O SCSI OSM                                │ │
  │ │                  <M>  I2O /proc support                            │ │


Quando installate un nuovo kernel (binario o ricompilato che sia) contenuto in un pacchetto debian, verr� eseguito lo script '''update-grub''' che cercher� nuovi kernel in <tt>/boot</tt> e li inserir� in <tt>menu.lst</tt>.
=== Network device support  ---> ===
Questo script pu� anche essere eseguito a mano se si ricompila un
Tutto deselezionato tranne:
kernel senza creare un pacchetto debian o se vuole ripristinare
  Ethernet (10 or 100Mbit) --->  
velocemente il <tt>menu.lst</tt>.
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │[*] Ethernet (10 or 100Mbit)                                        │ │
  │ │<M>   Generic Media Independent Interface device support            │ │
  │ │[*] EISA, VLB, PCI and on board controllers                          │ │
  │ │<M> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support    │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


Le voci per i vari kernel inserite da '''update-grub''' sono racchiuse tra la linea:


<pre>
=== Input device support  ---> ===
### BEGIN AUTOMAGIC KERNELS LIST
Tutto delesezionato tranne:
</pre>
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │    --- Generic input layer (needed for keyboard, mouse, ...)      │ │
  │ │    ---  Userland interfaces                                      │ │
  │ │    ---  Mouse interface                                          │ │
  │ │    [*]    Provide legacy /dev/psaux device                        │ │
  │ │    (1024)  Horizontal screen resolution                            │ │
  │ │    (768)  Vertical screen resolution                              │ │
  │ │    [*]  Mouse  --->                                               │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


e la linea:
==== Mouse  ---> ====
Supporto per mouse ps2:
  <*>  PS/2 mouse


<pre>
=== Character devices  ---> ===
### END DEBIAN AUTOMAGIC KERNELS LIST
Attenzione questa sezione è particolarmente delicata. Le due voci da adattare al vostro hardware sono:
</pre>
* AMD Irongate, 761, and 762 chipset support
* ATI Radeon
Per il resto la configurazione dovrebbe essere abbastanza generica.


al di fuori di questo blocco potrete inserire tutte le vostre configurazioni che non volete siano modificate da '''update-grub''' (ad. kernel fissi, o qualsiasi altro comando grub).
Come curiosità, notare l'ultima voce tramite la quale è possibile aggiungere il supporto per il così detto '''[http://www.gnu.org/philosophy/can-you-trust.html "hardware inaffidabile"]''', qui chiamato '''TPM''' (Trusted Platform Module).


Nel blocco "automagico" non vengono inseriti solo le voci dei vari
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
kernel ma anche dei commenti che servono a personalizzare il
  │ │[ ] Non-standard serial port support                                │ │
comportamento di '''update-grub'''. Baster� modificare i commenti che cominciano con un solo '''#''' (quelli che cominciano con '''##'''
  │ │    Serial drivers  --->                                            │ │
vengono ignorati anche da update-grub). Se ad esempio vogliamo che ogni
  │ │[*] Legacy (BSD) PTY support                                        │ │
nuovo kernel sia inserito solo una volta (senza la seconda voce
  │ │(256) Maximum number of legacy PTY in use                            │ │
recovery) e che venga sempre usato il framebuffer basta modificare le
  │ │    IPMI  --->                                                      │ │
apposite righe di <tt>menu.lst</tt> nel seguente modo:
  │ │    Watchdog Cards  --->                                            │ │
  │ │<M> Intel/AMD/VIA HW Random Number Generator support                │ │
  │ │< > /dev/nvram support                                              │ │
  │ │<M> Enhanced Real Time Clock Support                                │ │
  │ │<M> Generic /dev/rtc emulation                                      │ │
  │ │[*]  Extended RTC operation                                        │ │
  │ │< > Double Talk PC internal speech card support                      │ │
  │ │< > Siemens R3964 line discipline                                    │ │
  │ │< > Applicom intelligent fieldbus card support                      │ │
  │ │< > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL) │ │
  │ │    Ftape, the floppy tape device driver  --->                      │ │
  │ │<M> /dev/agpgart (AGP Support)                                      │ │
  │ │< >  ALI chipset support                                            │ │
  │ │< >  ATI chipset support                                            │ │
  │ │<M>  AMD Irongate, 761, and 762 chipset support                    │ │
  │ │< >  AMD Opteron/Athlon64 on-CPU GART support                      │ │
  │ │< >  Intel 440LX/BX/GX, I8xx and E7x05 chipset support              │ │
  │ │< >  NVIDIA nForce/nForce2 chipset support                          │ │
  │ │< >  SiS chipset support                                            │ │
  │ │< >  Serverworks LE/HE chipset support                              │ │
  │ │< >  VIA chipset support                                            │ │
  │ │< >  Transmeta Efficeon support                                    │ │
  │ │<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) │ │
  │ │< >  3dfx Banshee/Voodoo3+                                          │ │
  │ │< >  ATI Rage 128                                                  │ │
  │ │<M>  ATI Radeon                                                    │ │
  │ │< >  Matrox g200/g400                                              │ │
  │ │< >   SiS video cards                                                │ │
  │ │< >  Via unichrome video cards                                      │ │
  │ │< > ACP Modem (Mwave) support                                        │ │
  │ │< > RAW driver (/dev/raw/rawN) (OBSOLETE)                            │ │
  │ │[ ] HPET - High Precision Event Timer                                │ │
  │ │< > Hangcheck timer                                                  │ │
  │ │    TPM devices  --->                                                │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


<pre>
=== I2C support  ---> ===
# kopt=root=/dev/hda9 ro vga=791
Selezionati solo:
... ... ...
  <*>   I2C device interface
# alternative=false
</pre>  


ovviamente quella partizione (<tt>/dev/hda9</tt>) deve essere la root dei kernel che si vuole inserire automagicamente. Notare che '''non''' si deve decommentare la linea altrimenti update-grub lo ignorer� e verr� considerato un comando grub.
e le sottovoci degli algoritmi:


== Impostare una password ==
  I2C Algorithms  --->
  <M> I2C PCF 8584 interfaces
  <M> I2C PCA 9564 interfaces


Impostare una password in Grub non � operazione semplicissima,
e del chip che governa i sensori (questo è da adattare al proprio hardware):
tuttavia una volta imparato il metodo risulter� abbastanza semplice.
Prima di procedere con la spiegazione di come si utilizza la password
all'interno del file <tt>menu.lst</tt> (che, lo ricordiamo, si trova in <tt>/boot/grub</tt>), conviene spiegare in dettaglio il codice da utilizzare.
Per impostare una password, infatti, � sufficiente scrivere:


<pre>
  <*> VIA 82C586B
password vostrapassword
</pre>


Tuttavia una password di questo tipo ha il difetto di essere
=== Hardware Monitoring support  ---> ===
visibile in chiaro (anche all'avvio stesso di Grub), ed � quindi poco
Solo le voci (da adattare al proprio hardware):
utile; fortunatamente Grub pensa a voi e vi permette di impostare una
  <M> Hardware Monitoring support
password criptata con l'algoritmo MD5. Per fare ci� dovete, prima di
  <M>   VIA686A
tutto ottenere la password codificata in tale modo; niente di pi�
semplice, avviate dalla shell il comando <tt>grub-md5-crypt</tt>,
inserite due volte la password (una � di conferma) e copiate il
risultato ottenuto. Per utilizzare la password dovrete utilizzare il
seguente codice, leggermente differente dal precedente:


<pre>
=== Graphics support  ---> ===
password --md5 vostrapasswordmd5
Qui si configura il supporto per il frame buffer. In genere è consigliabile usare il driver generico vesa:
</pre>


Adesso bisogna spiegare come utilizzare la parola chiave password;
* VESA VGA graphics support
esistono due modi, uno � quello di metterla dopo i codici iniziali,
prima della lista dei vari sistemi operativi, l'altro � di mettere
l'attributo anche per ogni sistema operativo avviato, dopo la riga
title. Mentre la seconda password ha effetto solamente sul sistemi
operativo in cui � inserito, la prima ha un effetto pi� generale, e
blocca l'accesso solo per quei sistemi operativi che contengono la
parola chiave lock dopo la riga title. Un esempio riassuntivo chiarir�
l'uso delle password e di tutte le opzioni viste finora:


<pre>
tuttavia nel mio caso uso il modulo radeon che mi permette di avere un frame buffer accelerato, con una risoluzione di 1280x1024 e un'alta frequenza di refresh (~ 74 Hz). Nella mia esperienza il modulo vesa ha la precedenza sul radeon, quindi per usare quest'ultimo bisogna disabilitare il vesa.
default 0
timeout 5
splashimage=(hd0,2)/grub/splash.xpm.gz
password --md5 vostrapasswordmd5#1
title Prima Distribuzione (puoi scrivere quello che vuoi)
lock
root (hd0,2)
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
initrd /initrd.img-2.6.6-s26-mio-kernel
savedefault
password --md5 vostrapasswordmd5#2
boot


title Seconda Distribuzione (puoi scrivere quello che vuoi)
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
lock
  │ │  <*> Support for frame buffer devices                              │ │
root (hd0,2)
  │ │  ---  Enable Video Mode Handling Helpers                          │ │
kernel (hd0,6)/boot/vmlinuz-2.6.6-altra-distro root=/dev/hda7 ro vga=791
  │ │  [ ]  Enable Tile Blitting Support                                │ │
initrd (hd0,6)/initrd.img-2.6.6-altra-distro
  │ │  < >  Cirrus Logic support                                        │ │
savedefault
  │ │  < >  Permedia2 support                                          │ │
password --md5 vostrapasswordmd5#3
  │ │  < >  CyberPro 2000/2010/5000 support                            │ │
boot
  │ │  < >  Arc Monochrome LCD board support                            │ │
  │ │  [ ]  Chips 69000 display support                                │ │
  │ │  [ ]  IMS Twin Turbo display support                              │ │
  │ │  < >  VGA 16-color graphics support                              │ │
  │ │  [ ]  VESA VGA graphics support                                  │ │
  │ │  < >  Hercules mono graphics support                              │ │
  │ │  < >  nVidia Framebuffer Support                                  │ │
  │ │  < >  nVidia Riva support                                        │ │
  │ │  < >  Intel 810/815 support (EXPERIMENTAL)                       │ │
  │ │  < >  Intel 830M/845G/852GM/855GM/865G support (EXPERIMENTAL)     │ │
  │ │  < >  Matrox acceleration                                        │ │
  │ │  < >  ATI Radeon display support (Old driver)                     │ │
  │ │  <*>  ATI Radeon display support                                  │ │
  │ │  [*]    DDC/I2C for ATI Radeon support                            │ │
  │ │  [ ]    Lots of debug output from Radeon driver                  │ │
  │ │  < >  ATI Rage128 display support                                │ │
  │ │  < >  ATI Mach64 display support                                  │ │
  │ │  < >  S3 Savage support                                          │ │
  │ │  < >  SiS acceleration                                            │ │
  │ │  < >  NeoMagic display support                                    │ │
  │ │  < >  IMG Kyro support                                            │ │
  │ │  < >  3Dfx Banshee/Voodoo3 display support                        │ │
  │ │  < >  3Dfx Voodoo Graphics (sst1) support                        │ │
  │ │  < >  Trident support                                            │ │
  │ │  [ ]  AMD Geode family framebuffer support (EXPERIMENTAL)        │ │
  │ │  < > Epson S1D13XXX framebuffer support                            │ │
  │ │  < > Virtual Frame Buffer support (ONLY FOR TESTING!)              │ │
  │ │      Console display driver support  --->                          │ │
  │ │      Logo configuration  --->                                      │ │
  │ │  [ ] Backlight & LCD device support  --->                          │ │
  │ │                                                                    │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


title Windows
==== Console display driver support  ---> ====
lock
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
rootnoverify (hd1,0)
  │ │                --- VGA text console                                │ │
makeactive
  │ │                [*]  Video mode selection support                  │ │
chainloader +1
  │ │                <*> Framebuffer Console support                      │ │
savedefault
  │ │                [ ] Select compiled-in fonts                        │ │
password --md5 vostrapasswordmd5#4
  │ └─────────────────────────────────────────────────────────────────────┘ │
boot


title FreeBSD
=== Sound  ---> ===
lock
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
root (hd1,2,a)
  │ │            <*> Sound card support                                  │ │
kernel /boot/loader
  │ │                Advanced Linux Sound Architecture  --->              │ │
savedefault
  │ │                Open Sound System  --->                    (niente) │ │
password --md5 vostrapasswordmd5#5
  │ └─────────────────────────────────────────────────────────────────────┘ │
boot
</pre>


== Riconoscimento modalit� video ==
==== Advanced Linux Sound Architecture ====
Supporti generici ed emulazione oss:
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │              <*> Advanced Linux Sound Architecture                │ │
  │ │              <*>  Sequencer support                              │ │
  │ │              <M>    Sequencer dummy client                        │ │
  │ │              <M>  OSS Mixer API                                  │ │
  │ │              <M>  OSS PCM (digital audio) API                    │ │
  │ │              [*]  OSS Sequencer API                              │ │
  │ │              <M>  RTC Timer support                              │ │
  │ │              [ ]  Verbose printk                                  │ │
  │ │              [ ]  Debug                                          │ │
  │ │                    Generic devices  --->                          │ │
  │ │                    PCI devices  --->                              │ │
  │ │                    USB devices  --->                              │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


Una funzionalit� forse poco nota, ma utile in certi casi � la capacit� di grub di riconoscere al volo le modalit� supportate in ''frame buffer'' dalla scheda video tramite il comando '''vbeprobe'''. E' anche possibile testare una modalit� video tramite il comando '''testvbe''':
===== Generic devices  ---> =====
Grub mostrer� delle sfumature orizzontali multicolori che scorrono,
Qui seleziono solo il virtualmidi che talvolta può tornare utile:
alla risoluzione del modo scelto. Scelto un modo (ad esempio 0x103), si
  <M> Virtual MIDI soundcard 
potr� fare partire il sistema in quella modalit� aggiungendo il
parametro '''vga=''numero''''' alla linea del kernel, dove ''numero''
� il numero del modo pi� 200 esadecimale (indicato con 0x200). Questa
operazione � molto semplice: basta aggiungere 2 alla prima cifra del
modo, ad esempio se vogliamo il modo '''0x103''' dovremo passare al kernel '''vga=0x303'''.
Si pu� anche inserire la modalit� video in decimale convertendo con una
calcolatrice scientifica il numero passato al kernel: nell'esempio �
equivalente scrivere '''vga=0x303''' o '''vga=771'''.


Ricordo che per usare il ''frame buffer'' deve essere abilitato
===== PCI devices  ---> =====
il supporto nel kernel. Tutti i kernel binari delle distribuzioni hanno
Scegliere il driver delle propria scheda audio PCI, nel mio caso:
questo supporto attivato, ma se vi ricompilate un vostro kernel dovrete
  <M> Emu10k1 (SB Live!, Audigy, E-mu APS)
ricordarvi di attivare il supporto ''frame buffer''.


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


Con Grub � possibile utilizzare un'immagine di sfondo per l'avvio
=== USB support  ---> ===
del PC. Questa immagine deve essere a 640x480 pixel, con una profondit�
In questa sezione si attiva il supporto per l'usb. Se avete porte USB1 dovrete scegliere tra:
di soli 14 colori, in formato [http://www.w3.org/People/danield/xpm_story.html XPM] (un formato immagine che � possibile modificare come un semplice testo) e deve essere compressa in formato gzip.


I modi con cui, partendo da un'immagine in png o jpeg, � possibile
* OHCI HCD support
ottenere un'immagine con tali requisiti, sono fondamentalmente due. Si
* UHCI HCD (most Intel and VIA) support
pu� decidere di utilizzare GIMP; aprendo l'immagine di partenza, questa
deve essere ridimensionata a 640x480 ed i colori devono essere
impostati (premendo <tt>ALT+I</tt>) a 14, quindi si deve provvedere a salvarla direttamente in <tt>/boot/grub</tt> con l'estensione .xpm.gz (generalmente <tt>splash.xpm.gz</tt>).
Oppure si pu� decidere di utilizzare i seguenti comandi dalla shell:


<pre>$ su
a seconda del vostro controller usb. Se invece avete un controller USB2 dovrete scegliere:
- inserire la password di root -
# convert - geometry 640x480 -colors 14 wall.jpg splash.xpm
# gzip splash.xpm
# cp splash.xpm.gz /boot/grub
#</pre>


Volendo � possibile cercare su internet splashimage gi� pronti. Segnalo gli indirizzi degli archivi pi� noti:
* EHCI HCD (USB 2.0) support


* [http://ruslug.rutgers.edu/~mcgrof/grub-images/images/?page=1 ruslug.rutgers.edu/~mcgrof/grub-images/images/?page=1]
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.
* [http://fabrizio.ciacchi.it/guide.php?pagina=grub  fabrizio.ciacchi.it/guide.php?pagina=grub].  


Per utilizzare lo splashimage appena creato � necessario aprire il file <tt>menu.lst</tt> ed inserire, dopo timeout:
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │<M> Support for Host-side USB                                        │ │
  │ │[ ]  USB verbose debug messages                                    │ │
  │ │---  Miscellaneous USB options                                      │ │
  │ │[*]  USB device filesystem                                          │ │
  │ │[*]  Enforce USB bandwidth allocation (EXPERIMENTAL)                │ │
  │ │[ ]  Dynamic USB minor allocation (EXPERIMENTAL)                    │ │
  │ │[ ]  USB suspend/resume (EXPERIMENTAL)                              │ │
  │ │---  USB Host Controller Drivers                                    │ │
  │ │< >  EHCI HCD (USB 2.0) support                                    │ │
  │ │< >  ISP116X HCD support                                            │ │
  │ │< >  OHCI HCD support                                              │ │
  │ │<M>  UHCI HCD (most Intel and VIA) support                          │ │
  │ │< >  SL811HS HCD support                                            │ │
  │ │---  USB Device Class drivers                                      │ │
  │ │< >  USB Audio support                                              │ │
  │ │< >  USB Bluetooth TTY support                                      │ │
  │ │< >  USB MIDI support                                              │ │
  │ │< >  USB Modem (CDC ACM) support                                    │ │
  │ │<M>  USB Printer support                                            │ │
  │ │---  NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may als│ │
  │ │<M>  USB Mass Storage support                                      │ │
  │ │[ ]    USB Mass Storage verbose debug                              │ │
  │ │[ ]    Datafab Compact Flash Reader support (EXPERIMENTAL)          │ │
  │ │[ ]    Freecom USB/ATAPI Bridge support                            │ │
  │ │[ ]    ISD-200 USB/ATA Bridge support                              │ │
  │ │[ ]    Microtech/ZiO! CompactFlash/SmartMedia support              │ │
  │ │[ ]    USBAT/USBAT02-based storage support (EXPERIMENTAL)          │ │
  │ │[ ]    SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL)│ │
  │ │[ ]    SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL)            │ │
  │ │[ ]    Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL)          │ │
  │ │---  USB Input Devices                                              │ │
  │ │< >  USB Human Interface Device (full HID) support                  │ │
  │ │        USB HID Boot Protocol drivers  --->          (nessuno)      │ │
  │ │< >  Aiptek 6000U/8000U tablet support                              │ │
  │ │< >   Wacom Intuos/Graphire tablet support                          │ │
  │ │< >  Acecad Flair tablet support                                    │ │
  │ │< >  KB Gear JamStudio tablet support                              │ │
  │ │< >  Griffin PowerMate and Contour Jog support                      │ │
  │ │< >  MicroTouch USB Touchscreen Driver                              │ │
  │ │< >  ITM Touch USB Touchscreen Driver                              │ │
  │ │< >  eGalax TouchKit USB Touchscreen Driver                        │ │
  │ │< >  X-Box gamepad support                                          │ │
  │ │< >  ATI / X10 USB RF remote control                                │ │
  │ │< >  Keyspan DMR USB remote control (EXPERIMENTAL)                  │ │
  │ │---  USB Imaging devices                                            │ │
  │ │< >  USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)        │ │
  │ │< >  Microtek X6USB scanner support                                │ │
  │ │---  USB Multimedia devices                                        │ │
  │ │< >  DABUSB driver                                                  │ │
  │ │---  Video4Linux support is needed for USB Multimedia device support│ │
  │ │      USB Network Adapters  --->                    (nessuno)      │ │
  │ │[ ]  USB Monitor                                                    │ │
  │ │---  USB port drivers                                              │ │
  │ │      USB Serial Converter support  --->            (nessuno)      │ │
  │ │---  USB Miscellaneous drivers                                      │ │
  │ │< >  EMI 6|2m USB Audio interface support                          │ │
  │ │< >  EMI 2|6 USB Audio interface support                            │ │
  │ │< >  USB Auerswald ISDN support (EXPERIMENTAL)                      │ │
  │ │< >  USB Diamond Rio500 support (EXPERIMENTAL)                      │ │
  │ │< >  USB Lego Infrared Tower support (EXPERIMENTAL)                │ │
  │ │< >  USB LCD driver support                                        │ │
  │ │< >  USB LED driver support                                        │ │
  │ │< >  Cypress USB thermometer driver support                        │ │
  │ │< >  USB PhidgetKit support                                        │ │
  │ │< >  USB PhidgetServo support                                      │ │
  │ │< >  Siemens ID USB Mouse Fingerprint sensor support                │ │
  │ │< >  USB LD driver                                                  │ │
  │ │< >  USB testing driver (DEVELOPMENT)                              │ │
  │ │      USB DSL modem support  --->                        (nessuno)  │ │
  │ │    USB Gadget Support  --->                            (nessuno)  │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


<pre>
== File systems  ---> ==
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
Qui sceglieremo i filesystem che il nostro sistema dovrà supportare. Notare la presenza del nuovo inotify, usato ad esempio da beagle.
</pre>
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │    <*> Second extended fs support                                  │ │
  │ │    [ ]  Ext2 extended attributes                                  │ │
  │ │    [ ]  Ext2 execute in place support                              │ │
  │ │    <*> Ext3 journalling file system support                        │ │
  │ │    [*]  Ext3 extended attributes                                  │ │
  │ │    [ ]    Ext3 POSIX Access Control Lists                          │ │
  │ │    [ ]    Ext3 Security Labels                                    │ │
  │ │    [ ] JBD (ext3) debugging support                                │ │
  │ │    <*> Reiserfs support                                            │ │
  │ │    [ ]  Enable reiserfs debug mode                                │ │
  │ │    [ ]  Stats in /proc/fs/reiserfs                                │ │
  │ │    [ ]  ReiserFS extended attributes                              │ │
  │ │    < > JFS filesystem support                                      │ │
  │ │        XFS support  --->                                            │ │
  │ │    < > Minix fs support                                            │ │
  │ │    < > ROM file system support                                      │ │
  │ │    [*] Inotify file change notification support                    │ │
  │ │    [ ] Quota support                                                │ │
  │ │    < > Kernel automounter support                                  │ │
  │ │    <M> Kernel automounter version 4 support (also supports v3)      │ │
  │ │        CD-ROM/DVD Filesystems  --->                                │ │
  │ │        DOS/FAT/NT Filesystems  --->                                 │ │
  │ │        Pseudo filesystems  --->                                    │ │
  │ │        Miscellaneous filesystems  --->  (niente)                  │ │
  │ │        Network File Systems  --->                                  │ │
  │ │        Partition Types  --->            (niente)                  │ │
  │ │        Native Language Support  --->                                │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


== Approfondimenti ==
Ecco ora le sottovoci non vuote:
=== Grub su CD-ROM o su chiavetta USB ===


Segnalo un interessante articolo (in inglese) di [http://www.freesoftwaremagazine.com/ Free Software Magazine] che spiega molti trucchi per l'utilizzo di Grub. Interessante, tra le altre cose, � la spiegazione dettagliata di come installare Grub su chiavetta USB oppure su CD-ROM. Ecco il link all'articolo:
=== CD-ROM/DVD Filesystems  ---> ===
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │            <M> ISO 9660 CDROM file system support                  │ │
  │ │            [*]  Microsoft Joliet CDROM extensions                │ │
  │ │            [*]  Transparent decompression extension              │ │
  │ │            < > UDF file system support                            │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


* [http://www.freesoftwaremagazine.com/free_issues/issue_10/grub_intro GRUB tips and tricks]
=== DOS/FAT/NT Filesystems  ---> ===
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │              <M> MSDOS fs support                                  │ │
  │ │              <M> VFAT (Windows-95) fs support                      │ │
  │ │              (850) Default codepage for FAT                        │ │
  │ │              (iso8859-1) Default iocharset for FAT                │ │
  │ │              <M> NTFS file system support                          │ │
  │ │              [*]  NTFS debugging support                          │ │
  │ │              [*]   NTFS write support                              │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


== Note finali ==
=== Pseudo filesystems  ---> ===
Molto importante questa sezione. Il server audio a bassa latenza '''jack''' necessita della voce
* Virtual memory file system support
per poter funzionare correttamente.


Per ulteriori approfondimenti rimando alla documentazione ufficiale di '''Grub'''. Nei sistemi Debian si trova nel pacchetto '''grub-doc''' e si consulta con il comando '''info grub''' (ricordate che in queste pagine basta premere 'u' per salire di un livello).


=== Nota #1 ===
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │      [*] /proc file system support                                  │ │
  │ │      [*]  /proc/kcore support                                      │ │
  │ │      [ ] /dev/pts Extended Attributes                              │ │
  │ │      [*] Virtual memory file system support (former shm fs)        │ │
  │ │      [ ]  tmpfs Extended Attributes                                │ │
  │ │      [ ] HugeTLB file system support                                │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
=== Network File Systems  ---> ===
Attivo il supporto per il NFS (Network File System), bastano le voci:
  <M> NFS file system support
  <M> NFS server support


L'opzione '''savedefault''' all'interno della configurazione di un
=== Native Language Support  ---> ===
sistema operativo, fa in modo che, se selezionato, quello sia il
Non sono sicuro che questa sia la configurazione ottimale, la riporto solo per completezza. Sono elencate le sole voci selezionate:
prossimo sistema operativo di default all'avvio. Ci� viene ignorato se
  │ ┌──────────────────────────────────────────────────────────────────────────┐ │
all'inizio del file <tt>menu.lst</tt> � stata messa la voce '''default=''x''''', dove '''''x''''' identifica il numero del sistema operativo di default (partendo da 0 anzich� da 1).
  │ │ <*> Base native language support                                        │ │
  │ │ (UTF8) Default NLS Option                                                │ │
  │ │ <M>   Codepage 850 (Europe)                                              │ │
  │ │ <M>  Codepage 852 (Central/Eastern Europe)                              │ │
  │ │ <M>   NLS ISO 8859-1  (Latin 1; Western European Languages)              │ │
  │ │ <M>  NLS ISO 8859-2  (Latin 2; Slavic/Central European Languages)       │ │
  │ │ <M>  NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)    │ │
  │ │ <M>  NLS UTF8                                                          │ │
  │ └──────────────────────────────────────────────────────────────────────────┘ │


=== Nota #2 ===
== Profiling support  ---> ==
Niente, non siamo sviluppatori del kernel (almeno io :-P).


In alcuni sistemi, ad esempio Redhat o Fedora, il file <tt>'''menu.lst'''</tt> potrebbe chiamarsi <tt>'''grub.conf'''</tt>.
== Kernel hacking  ---> ==
Quindi, prima di operare sulle impostazioni di Grub, verificare il nome
Con queste opzioni si attivano i tasti magici che permettono di uscire da configurazione di stallo del sistema. Molto utile se si provano molti sofware audio (e non solo) sperimentali che rischiano di destabilizzare il sistema.
esatto del file utilizzato. Se anche il sistema utilizzasse tale file,
Per maggiori informazioni vedere la documentazione del kernel.
la guida rimane valida, basta tenerne presente il diverso nome.
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │      [ ] Show timing information on printks                        │ │
  │ │      [*] Kernel debugging                                          │ │
  │ │      [*]  Magic SysRq key                                          │ │
  │ │      (14)  Kernel log buffer size (16 => 64KB, 17 => 128KB)        │ │
  │ │      [ ]  Collect scheduler statistics                            │ │
  │ │      [ ]  Debug memory allocations                                │ │
  │ │      [ ]  Debug preemptible kernel                                │ │
  │ │      [ ]  Spinlock debugging                                      │ │
  │ │      [ ]  Sleep-inside-spinlock checking                          │ │
  │ │      [ ]  kobject debugging                                        │ │
  │ │      [ ]  Compile the kernel with debug info                      │ │
  │ │      [ ]  Debug Filesystem                                        │ │
  │ │      [ ]  Compile the kernel with frame pointers                  │ │
  │ │      [*]  Check for stack overflows                                │ │
  │ │      [ ]  Kprobes                                                  │ │
  │ │      [ ]  Stack utilization instrumentation                        │ │
  │ │      [ ]  Page alloc debugging                                    │ │
  │ │      [ ]  Use 4Kb for kernel stacks instead of 8Kb                │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │


==Ringraziamenti==
== Security options  ---> ==
Queste voci sono necessarie per poter compilare successivamente il modulo realtime-lsm che permette di eseguire applicazioni in realtime anche ad utenti non-root.
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │          [ ] Enable access key retention support                    │ │
  │ │          [*] Enable different security models                      │ │
  │ │          [ ]  Socket and Networking Security Hooks                │ │
  │ │          <M>  Default Linux Capabilities                          │ │
  │ │          < >  Root Plug Support                                    │ │
  │ │          < >  BSD Secure Levels                                    │ │
  │ │          [*]  NSA SELinux Support                                  │ │
  │ │          [ ]    NSA SELinux boot parameter                        │ │
  │ │          [ ]    NSA SELinux runtime disable                        │ │
  │ │          [*]    NSA SELinux Development Support                    │ │
  │ │          [ ]    NSA SELinux AVC Statistics                        │ │
  │ │          (1)    NSA SELinux checkreqprot default value            │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
== Cryptographic options  ---> ==
Normalmente vengono attivate queste opzioni nelle reti wireless o comunque nelle configurazioni in cui i dati vengono criptati (vpn, etc.)


Si ringraziano le seguenti persone:
Un esempio potrebbe essere quello della configurazione di rete wireless (mi viene in mente wpasupplicant) in cui si imposta la connessione criptata.


* [http://fabrizio.ciacchi.it Fabrizio Ciacchi] per aver scritto i paragrafi su come bootare sistemi non Linux, sull'inserimento delle splashimage e sull'uso della password.
== Library routines  ---> ==
Neanche qui niente, qualcuno sa se va bene?


* Mattew East (del [http://www.ubuntulinux.org/wiki/ItalianDocumentation wiki italiano di Ubuntu]) per avere wikizzato la guida.
{{Autori
|Autore=[[User:TheNoise|TheNoise]]
}}


----
[[Categoria:Linux]]
Autore: [[Utente:TheNoise|~ The_Noise]]

Versione attuale delle 15:45, 2 nov 2014

Guida da adottare! Bannermv.png


Introduzione

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).

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.

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 sto ricompilando il kernel o installando Openoffice (queste prestazioni le raggiungo soltanto usando l'I/O Scheduler cfq).

Happy Debian!

Warning.png ATTENZIONE
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

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.

Ecco per completezza l'output di lspci:

0000:00:00.0 Host bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] System Controller (rev 13)
0000:00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-760 [IGD4-1P] AGP Bridge
0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
0000:00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
0000:00:07.4 SMBus: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
0000:00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
0000:00:0f.0 Multimedia audio controller: Creative Labs SB Audigy (rev 03)
0000:00:0f.1 Input device controller: Creative Labs SB Audigy MIDI/Game port (rev 03)
0000:00:0f.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port
0000:01:05.0 VGA compatible controller: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]

Code maturity level options --->

 │ │      [*] Prompt for development and/or incomplete code/drivers         │ │
 │ │      [*]   Select only drivers expected to compile cleanly             │ │

General setup --->

 │ ┌────────────────────────────────────────────────────────────────────────┐ │
 │ │   ()  Local version - append to kernel release                         │ │
 │ │   [*] Support for paging of anonymous memory (swap)                    │ │
 │ │   [*] System V IPC                                                     │ │
 │ │   [ ] POSIX Message Queues                                             │ │
 │ │   [*] BSD Process Accounting                                           │ │
 │ │   [ ]   BSD Process Accounting version 3 file format                   │ │
 │ │   [*] Sysctl support                                                   │ │
 │ │   [ ] Auditing support                                                 │ │
 │ │   [*] Support for hot-pluggable devices                                │ │
 │ │   [*] Kernel Userspace Events                                          │ │
 │ │   [ ] Kernel .config support                                           │ │
 │ │   [ ] Configure standard kernel features (for small systems)  --->     │ │
 │ └────────────────────────────────────────────────────────────────────────┘ │

Loadable module support --->

 │ │            [*] Enable loadable module support                          │ │
 │ │            [*]   Module unloading                                      │ │
 │ │            [ ]     Forced module unloading                             │ │
 │ │            [*]   Module versioning support (EXPERIMENTAL)              │ │
 │ │            [ ]   Source checksum for all modules                       │ │
 │ │            [*]   Automatic kernel module loading                       │ │

Processor type and features --->

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))
  • Preempt The Big Kernel Lock

per ottenere bassa latenza e

  • Timer frequency (1000 HZ)

per avere un timer più preciso.

 │ ┌────────────────────────────────────────────────────────────────────────┐ │
 │ │    Subarchitecture Type (PC-compatible)  --->                          │ │
 │ │    Processor family (Athlon/Duron/K7)  --->                            │ │
 │ │[ ] Generic x86 support                                                 │ │
 │ │[*] HPET Timer Support                                                  │ │
 │ │[ ] Symmetric multi-processing support                                  │ │
 │ │    Preemption Model (Preemptible Kernel (Low-Latency Desktop))  --->   │ │
 │ │[*] Preempt The Big Kernel Lock                                         │ │
 │ │[*] Local APIC support on uniprocessors                                 │ │
 │ │[*]   IO-APIC support on uniprocessors                                  │ │
 │ │[*] Machine Check Exception                                             │ │
 │ │<*>   Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4  │ │
 │ │[ ]   check for P4 thermal throttling interrupt.                        │ │
 │ │< > Toshiba Laptop support                                              │ │
 │ │< > Dell laptop support                                                 │ │
 │ │[ ] Enable X86 board specific fixups for reboot                         │ │
 │ │< > /dev/cpu/microcode - Intel IA32 CPU microcode support               │ │
 │ │<M> /dev/cpu/*/msr - Model-specific register support                    │ │
 │ │<M> /dev/cpu/*/cpuid - CPU information support                          │ │
 │ │    Firmware Drivers  --->                                              │ │
 │ │    High Memory Support (off)  --->                                     │ │
 │ │    Memory model (Flat Memory)  --->                                    │ │
 │ │[ ] Math emulation                                                      │ │
 │ │[*] MTRR (Memory Type Range Register) support                           │ │
 │ │[ ] Boot from EFI support (EXPERIMENTAL)                                │ │
 │ │[ ] Use register arguments (EXPERIMENTAL)                               │ │
 │ │[*] Enable seccomp to safely compute untrusted bytecode                 │ │
 │ │    Timer frequency (1000 HZ)  --->                                     │ │
 │ │[ ] kexec system call (EXPERIMENTAL)                                    │ │
 │ └────────────────────────────────────────────────────────────────────────┘ │

Power management options (ACPI, APM) --->

 │ │[*] Power Management support                                            │ │
 │ │[ ]   Power Management Debug Support                                    │ │
 │ │[ ]   Software Suspend                                                  │ │
 │ │      ACPI (Advanced Configuration and Power Interface) Support  --->   │ │
 │ │      APM (Advanced Power Management) BIOS Support  --->                │ │
 │ │    CPU Frequency scaling  --->                                         │ │

ACPI (Advanced Configuration and Power Interface) Support --->

 │ │  [*] ACPI Support                                                      │ │
 │ │  [ ]   Sleep States (EXPERIMENTAL)                                     │ │
 │ │  < >   AC Adapter                                                      │ │
 │ │  < >   Battery                                                         │ │
 │ │  < >   Button                                                          │ │
 │ │  <M>   Video                                                           │ │
 │ │  < >   Generic Hotkey                                                  │ │
 │ │  <M>   Fan                                                             │ │
 │ │  <M>   Processor                                                       │ │
 │ │  <M>     Thermal Zone                                                  │ │
 │ │  < >   ASUS/Medion Laptop Extras                                       │ │
 │ │  < >   IBM ThinkPad Laptop Extras                                      │ │
 │ │  < >   Toshiba Laptop Extras                                           │ │
 │ │  (0)   Disable ACPI for systems before Jan 1st this year               │ │
 │ │  [ ]   Debug Statements                                                │ │
 │ │  [ ]   Power Management Timer Support                                  │ │
 │ │  < >   ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)    │ │


Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->

Non sono sicuro se la voce "PCI device name database" sia necessaria. Se qualcuno ha informazioni in proposito per favore lo segnali.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │         [*] PCI support                                             │ │
 │ │               PCI access mode (Any)  --->                           │ │
 │ │         [ ]   PCI Express support                                   │ │
 │ │         [ ]   Message Signaled Interrupts (MSI and MSI-X)           │ │
 │ │         [ ]   Legacy /proc/pci interface                            │ │
 │ │         [*]   PCI device name database                              │ │
 │ │         [ ]   PCI Debugging                                         │ │
 │ │         [ ] ISA support                                             │ │
 │ │         [ ] MCA support                                             │ │
 │ │         < > NatSemi SCx200 support                                  │ │
 │ │             PCCARD (PCMCIA/CardBus) support  ---> (niente)          │ │
 │ │             PCI Hotplug Support  --->             (niente)          │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Executable file formats --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │          [*] Kernel support for ELF binaries                        │ │
 │ │          <*> Kernel support for a.out and ECOFF binaries            │ │
 │ │          <M> Kernel support for MISC binaries                       │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Networking --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │           [*] Networking support                                    │ │
 │ │                 Networking options  --->                            │ │
 │ │           [ ]   Amateur Radio support  --->                         │ │
 │ │           < >   IrDA (infrared) subsystem support  --->             │ │
 │ │           < >   Bluetooth subsystem support  --->                   │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Networking options --->

Sono attivate solo le opzioni minime per navigare. Nessun firewall, o capacità di routing è attivata. Se qualcuno sa cosa si può ancora togliere è ben gradito un consiglio. Con questa configurazione è possibile fare file-sharing e ricevere trasmissioni broadcast tramite internet.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │      <*> Packet socket                                              │ │
 │ │      [*]   Packet socket: mmapped IO                                │ │
 │ │      <*> Unix domain sockets                                        │ │
 │ │      < > PF_KEY sockets                                             │ │
 │ │      [*] TCP/IP networking                                          │ │
 │ │      [*]   IP: multicasting                                         │ │
 │ │      [ ]   IP: advanced router                                      │ │
 │ │      [ ]   IP: kernel level autoconfiguration                       │ │
 │ │      < >   IP: tunneling                                            │ │
 │ │      < >   IP: GRE tunnels over IP                                  │ │
 │ │      [ ]   IP: multicast routing                                    │ │
 │ │      [ ]   IP: ARP daemon support (EXPERIMENTAL)                    │ │
 │ │      [ ]   IP: TCP syncookie support (disabled per default)         │ │
 │ │      < >   IP: AH transformation                                    │ │
 │ │      < >   IP: ESP transformation                                   │ │
 │ │      < >   IP: IPComp transformation                                │ │
 │ │      < >   IP: tunnel transformation                                │ │
 │ │      < >   IP: TCP socket monitoring interface                      │ │
 │ │      [ ]   TCP: advanced congestion control                         │ │
 │ │      < >   The IPv6 protocol                                        │ │
 │ │      [ ] Network packet filtering (replaces ipchains)  ---> (niente)│ │
 │ │          SCTP Configuration (EXPERIMENTAL)  --->            (niente)│ │
 │ │      < > Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)            │ │
 │ │      < > 802.1d Ethernet Bridging                                   │ │
 │ │      < > 802.1Q VLAN Support                                        │ │
 │ │      < > DECnet Support                                             │ │
 │ │      < > ANSI/IEEE 802.2 LLC type 2 Support                         │ │
 │ │      < > The IPX protocol                                           │ │
 │ │      < > Appletalk protocol support                                 │ │
 │ │      < > CCITT X.25 Packet Layer (EXPERIMENTAL)                     │ │
 │ │      < > LAPB Data Link Driver (EXPERIMENTAL)                       │ │
 │ │      [ ] Frame Diverter (EXPERIMENTAL)                              │ │
 │ │      < > Acorn Econet/AUN protocols (EXPERIMENTAL)                  │ │
 │ │      < > WAN router                                                 │ │
 │ │      [ ] QoS and/or fair queueing  --->  (niente)                   │ │
 │ │          Network testing  --->           (niente)                   │ │
 │ │                                                                     │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Device Drivers --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │               Generic Driver Options  --->                          │ │
 │ │               Memory Technology Devices (MTD)  --->     (niente)    │ │
 │ │               Parallel port support  --->               (niente)    │ │
 │ │               Plug and Play support  --->               (niente)    │ |
 │ │               Block devices  --->                                   │ │
 │ │               ATA/ATAPI/MFM/RLL support  --->                       │ │
 │ │               SCSI device support  --->                             │ │
 │ │               Multi-device support (RAID and LVM)  --->  (niente)   │ │
 │ │               Fusion MPT device support  --->            (niente)   │ │
 │ │               IEEE 1394 (FireWire) support  --->         (niente)   │ │
 │ │               I2O device support  --->                              │ │
 │ │               Network device support  --->                          │ │
 │ │               ISDN subsystem  --->                       (niente)   │ │
 │ │               Telephony Support  --->                    (niente)   │ │
 │ │               Input device support  --->                            │ │
 │ │               Character devices  --->                               │ │
 │ │               I2C support  --->                                     │ │
 │ │               Dallas's 1-wire bus  --->                  (niente)   │ │
 │ │               Hardware Monitoring support  --->                     │ │
 │ │               Misc devices  --->                         (niente)   │ │
 │ │               Multimedia devices  --->                   (niente)   │ │
 │ │               Graphics support  --->                                │ │
 │ │               Sound  --->                                           │ │
 │ │               USB support  --->                                     │ │
 │ │               MMC/SD Card support  --->                  (niente)   │ │
 │ │               InfiniBand support  --->                   (niente)   │ │
 │ │               SN Devices  --->                           (niente)   │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Generic Driver Options --->

 | │[*] Select only drivers that don't need compile-time external firmwar│ │
 │ │[*] Prevent firmware from being built                                │ │
 │ │< > Hotplug firmware loading support                                 │ │
 │ │[ ] Driver Core verbose debug messages                               │ │


Block devices --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │ <M> Normal floppy disk support                                      │ │
 │ │ < > Compaq SMART2 support                                           │ │
 │ │ < > Compaq Smart Array 5xxx support                                 │ │
 │ │ < > Mylex DAC960/DAC1100 PCI RAID Controller support                │ │
 │ │ < > Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)   │ │
 │ │ <M> Loopback device support                                         │ │
 │ │ < >   Cryptoloop Support                                            │ │
 │ │ < > Network block device support                                    │ │
 │ │ < > Promise SATA SX8 support                                        │ │
 │ │ < > Low Performance USB Block driver                                │ │
 │ │ < > RAM disk support                                                │ │
 │ │ ()  Initramfs source file(s)                                        │ │
 │ │ [ ] Support for Large Block Devices                                 │ │
 │ │ < > Packet writing on CD/DVD media                                  │ │
 │ │     IO Schedulers  --->                                             │ │
 │ │ < > ATA over Ethernet support                                       │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

IO Schedulers --->

Questi sono gli scheduler per da usare per l'I/O su disco. Ecco come li descrive il kernel hacker Jen Axboe (link):

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.

Generalmente il cfq 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 elevator, es:

elevator=cfq

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

Ecco la configurazione:

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │                  <*> Anticipatory I/O scheduler                     │ │
 │ │                  <*> Deadline I/O scheduler                         │ │
 │ │                  <*> CFQ I/O scheduler                              │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

ATA/ATAPI/MFM/RLL support --->

Qui al posto di "VIA82CXXX chipset support" (alla fine) selezionate il supporto per il chipset del vostro hardware. Per il resto la configurazione è abbastanza generica.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │<*> ATA/ATAPI/MFM/RLL support                                        │ │
 │ │<*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support            │ │
 │ │---     Please see Documentation/ide.txt for help/info on IDE drives │ │
 │ │[ ]     Support for SATA (deprecated; conflicts with libata SATA driv│ │
 │ │[ ]     Use old disk-only driver on primary interface                │ │
 │ │<*>     Include IDE/ATA-2 DISK support                               │ │
 │ │[ ]     Use multi-mode by default                                    │ │
 │ │<M>     Include IDE/ATAPI CDROM support                              │ │
 │ │< >     Include IDE/ATAPI TAPE support (EXPERIMENTAL)                │ │
 │ │< >     Include IDE/ATAPI FLOPPY support                             │ │
 │ │< >     SCSI emulation support                                       │ │
 │ │[ ]     IDE Taskfile Access                                          │ │
 │ │---     IDE chipset support/bugfixes                                 │ │
 │ │<*>     generic/default IDE chipset support                          │ │
 │ │[ ]     CMD640 chipset bugfix/support                                │ │
 │ │[*]     PCI IDE chipset support                                      │ │
 │ │[ ]       Sharing PCI IDE interrupts support                         │ │
 │ │[ ]       Boot off-board chipsets first support                      │ │
 │ │< >       Generic PCI IDE Chipset Support                            │ │
 │ │< >       OPTi 82C621 chipset enhanced support (EXPERIMENTAL)        │ │
 │ │< >       RZ1000 chipset bugfix/support                              │ │
 │ │[*]       Generic PCI bus-master DMA support                         │ │
 │ │[ ]         Force enable legacy 2.0.X HOSTS to use DMA               │ │
 │ │[*]         Use PCI DMA by default when available                    │ │
 │ │[ ]           Enable DMA only for disks                              │ │
 │ │< >         AEC62XX chipset support                                  │ │
 │ │< >         ALI M15x3 chipset support                                │ │
 │ │< >         AMD and nVidia IDE support                               │ │
 │ │< >         ATI IXP chipset IDE support                              │ │
 │ │< >         CMD64{3|6|8|9} chipset support                           │ │
 │ │< >         Compaq Triflex IDE support                               │ │
 │ │< >         CY82C693 chipset support                                 │ │
 │ │< >         Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTA│ │
 │ │< >         Cyrix/National Semiconductor CS5530 MediaGX chipset suppo│ │
 │ │< >         HPT34X chipset support                                   │ │
 │ │< >         HPT36X/37X chipset support                               │ │
 │ │< >         National SCx200 chipset support                          │ │
 │ │< >         Intel PIIXn chipsets support                             │ │
 │ │< >         IT821X IDE support                                       │ │
 │ │< >         NS87415 chipset support                                  │ │
 │ │< >         PROMISE PDC202{46|62|65|67} support                      │ │
 │ │< >         PROMISE PDC202{68|69|70|71|75|76|77} support             │ │
 │ │< >         ServerWorks OSB4/CSB5/CSB6 chipsets support              │ │
 │ │< >         Silicon Image chipset support                            │ │
 │ │< >         SiS5513 chipset support                                  │ │
 │ │< >         SLC90E66 chipset support                                 │ │
 │ │< >         Tekram TRM290 chipset support                            │ │
 │ │<*>         VIA82CXXX chipset support                                │ │
 │ │[ ]     IGNORE word93 Validation BITS                                │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

SCSI device support --->

Queste voci sono necessarie per avere l'emulazione scsi ed usare le chiavette usb.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │  <M> SCSI device support                                            │ │
 │ │  [*]   legacy /proc/scsi/ support                                   │ │
 │ │  ---   SCSI support type (disk, tape, CD-ROM)                       │ │
 │ │  <M>   SCSI disk support                                            │ │
 │ │  < >   SCSI tape support                                            │ │
 │ │  < >   SCSI OnStream SC-x0 tape support                             │ │
 │ │  < >   SCSI CDROM support                                           │ │
 │ │  <M>   SCSI generic support                                         │ │
 │ │  < >   SCSI media changer support                                   │ │
 │ │  ---   Some SCSI devices (e.g. CD jukebox) support multiple LUNs    │ │
 │ │  [ ]   Probe all LUNs on each SCSI device                           │ │
 │ │  [ ]   Verbose SCSI error reporting (kernel size +=12K)             │ │
 │ │  [ ]   SCSI logging facility                                        │ │
 │ │        SCSI Transport Attributes  --->               (nessuno)      │ │
 │ │        SCSI low-level drivers  --->                  (nessuno)      │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │


I2O device support --->

Queste voci servono per attivare i sensori (temperatura, ventola, ecc...).

 │ │                  <M> I2O support                                    │ │
 │ │                  [ ]   Enable Adaptec extensions                    │ │
 │ │                  < >   I2O Configuration support                    │ │
 │ │                  < >   I2O Bus Adapter OSM                          │ │
 │ │                  < >   I2O Block OSM                                │ │
 │ │                  < >   I2O SCSI OSM                                 │ │
 │ │                  <M>   I2O /proc support                            │ │

Network device support --->

Tutto deselezionato tranne:

 Ethernet (10 or 100Mbit)  ---> 
 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │[*] Ethernet (10 or 100Mbit)                                         │ │
 │ │<M>   Generic Media Independent Interface device support             │ │
 │ │[*] EISA, VLB, PCI and on board controllers                          │ │
 │ │<M> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support     │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │


Input device support --->

Tutto delesezionato tranne:

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │     --- Generic input layer (needed for keyboard, mouse, ...)       │ │
 │ │     ---   Userland interfaces                                       │ │
 │ │     ---   Mouse interface                                           │ │
 │ │     [*]     Provide legacy /dev/psaux device                        │ │
 │ │     (1024)  Horizontal screen resolution                            │ │
 │ │     (768)   Vertical screen resolution                              │ │
 │ │     [*]   Mouse  --->                                               │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Mouse --->

Supporto per mouse ps2:

 <*>   PS/2 mouse 

Character devices --->

Attenzione questa sezione è particolarmente delicata. Le due voci da adattare al vostro hardware sono:

* AMD Irongate, 761, and 762 chipset support
* ATI Radeon 

Per il resto la configurazione dovrebbe essere abbastanza generica.

Come curiosità, notare l'ultima voce tramite la quale è possibile aggiungere il supporto per il così detto "hardware inaffidabile", qui chiamato TPM (Trusted Platform Module).

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │[ ] Non-standard serial port support                                 │ │
 │ │    Serial drivers  --->                                             │ │
 │ │[*] Legacy (BSD) PTY support                                         │ │
 │ │(256) Maximum number of legacy PTY in use                            │ │
 │ │    IPMI  --->                                                       │ │
 │ │    Watchdog Cards  --->                                             │ │
 │ │<M> Intel/AMD/VIA HW Random Number Generator support                 │ │
 │ │< > /dev/nvram support                                               │ │
 │ │<M> Enhanced Real Time Clock Support                                 │ │
 │ │<M> Generic /dev/rtc emulation                                       │ │
 │ │[*]   Extended RTC operation                                         │ │
 │ │< > Double Talk PC internal speech card support                      │ │
 │ │< > Siemens R3964 line discipline                                    │ │
 │ │< > Applicom intelligent fieldbus card support                       │ │
 │ │< > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL) │ │
 │ │    Ftape, the floppy tape device driver  --->                       │ │
 │ │<M> /dev/agpgart (AGP Support)                                       │ │
 │ │< >   ALI chipset support                                            │ │
 │ │< >   ATI chipset support                                            │ │
 │ │<M>   AMD Irongate, 761, and 762 chipset support                     │ │
 │ │< >   AMD Opteron/Athlon64 on-CPU GART support                       │ │
 │ │< >   Intel 440LX/BX/GX, I8xx and E7x05 chipset support              │ │
 │ │< >   NVIDIA nForce/nForce2 chipset support                          │ │
 │ │< >   SiS chipset support                                            │ │
 │ │< >   Serverworks LE/HE chipset support                              │ │
 │ │< >   VIA chipset support                                            │ │
 │ │< >   Transmeta Efficeon support                                     │ │
 │ │<M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  │ │
 │ │< >   3dfx Banshee/Voodoo3+                                          │ │
 │ │< >   ATI Rage 128                                                   │ │
 │ │<M>   ATI Radeon                                                     │ │
 │ │< >   Matrox g200/g400                                               │ │
 │ │< >   SiS video cards                                                │ │
 │ │< >   Via unichrome video cards                                      │ │
 │ │< > ACP Modem (Mwave) support                                        │ │
 │ │< > RAW driver (/dev/raw/rawN) (OBSOLETE)                            │ │
 │ │[ ] HPET - High Precision Event Timer                                │ │
 │ │< > Hangcheck timer                                                  │ │
 │ │    TPM devices  --->                                                │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

I2C support --->

Selezionati solo:

 <*>   I2C device interface

e le sottovoci degli algoritmi:

 I2C Algorithms  --->
 <M> I2C PCF 8584 interfaces 
 <M> I2C PCA 9564 interfaces 

e del chip che governa i sensori (questo è da adattare al proprio hardware):

 <*> VIA 82C586B 

Hardware Monitoring support --->

Solo le voci (da adattare al proprio hardware):

 <M> Hardware Monitoring support
 <M>   VIA686A 

Graphics support --->

Qui si configura il supporto per il frame buffer. In genere è consigliabile usare il driver generico vesa:

  • VESA VGA graphics support

tuttavia nel mio caso uso il modulo radeon che mi permette di avere un frame buffer accelerato, con una risoluzione di 1280x1024 e un'alta frequenza di refresh (~ 74 Hz). Nella mia esperienza il modulo vesa ha la precedenza sul radeon, quindi per usare quest'ultimo bisogna disabilitare il vesa.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │   <*> Support for frame buffer devices                              │ │
 │ │   ---   Enable Video Mode Handling Helpers                          │ │
 │ │   [ ]   Enable Tile Blitting Support                                │ │
 │ │   < >   Cirrus Logic support                                        │ │
 │ │   < >   Permedia2 support                                           │ │
 │ │   < >   CyberPro 2000/2010/5000 support                             │ │
 │ │   < >   Arc Monochrome LCD board support                            │ │
 │ │   [ ]   Chips 69000 display support                                 │ │
 │ │   [ ]   IMS Twin Turbo display support                              │ │
 │ │   < >   VGA 16-color graphics support                               │ │
 │ │   [ ]   VESA VGA graphics support                                   │ │
 │ │   < >   Hercules mono graphics support                              │ │
 │ │   < >   nVidia Framebuffer Support                                  │ │
 │ │   < >   nVidia Riva support                                         │ │
 │ │   < >   Intel 810/815 support (EXPERIMENTAL)                        │ │
 │ │   < >   Intel 830M/845G/852GM/855GM/865G support (EXPERIMENTAL)     │ │
 │ │   < >   Matrox acceleration                                         │ │
 │ │   < >   ATI Radeon display support (Old driver)                     │ │
 │ │   <*>   ATI Radeon display support                                  │ │
 │ │   [*]     DDC/I2C for ATI Radeon support                            │ │
 │ │   [ ]     Lots of debug output from Radeon driver                   │ │
 │ │   < >   ATI Rage128 display support                                 │ │
 │ │   < >   ATI Mach64 display support                                  │ │
 │ │   < >   S3 Savage support                                           │ │
 │ │   < >   SiS acceleration                                            │ │
 │ │   < >   NeoMagic display support                                    │ │
 │ │   < >   IMG Kyro support                                            │ │
 │ │   < >   3Dfx Banshee/Voodoo3 display support                        │ │
 │ │   < >   3Dfx Voodoo Graphics (sst1) support                         │ │
 │ │   < >   Trident support                                             │ │
 │ │   [ ]   AMD Geode family framebuffer support (EXPERIMENTAL)         │ │
 │ │   < > Epson S1D13XXX framebuffer support                            │ │
 │ │   < > Virtual Frame Buffer support (ONLY FOR TESTING!)              │ │
 │ │       Console display driver support  --->                          │ │
 │ │       Logo configuration  --->                                      │ │
 │ │   [ ] Backlight & LCD device support  --->                          │ │
 │ │                                                                     │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Console display driver support --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │                --- VGA text console                                 │ │
 │ │                [*]   Video mode selection support                   │ │
 │ │                <*> Framebuffer Console support                      │ │
 │ │                [ ] Select compiled-in fonts                         │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Sound --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │            <*> Sound card support                                   │ │
 │ │                Advanced Linux Sound Architecture  --->              │ │
 │ │                Open Sound System  --->                     (niente) │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Advanced Linux Sound Architecture

Supporti generici ed emulazione oss:

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │               <*> Advanced Linux Sound Architecture                 │ │
 │ │               <*>   Sequencer support                               │ │
 │ │               <M>     Sequencer dummy client                        │ │
 │ │               <M>   OSS Mixer API                                   │ │
 │ │               <M>   OSS PCM (digital audio) API                     │ │
 │ │               [*]   OSS Sequencer API                               │ │
 │ │               <M>   RTC Timer support                               │ │
 │ │               [ ]   Verbose printk                                  │ │
 │ │               [ ]   Debug                                           │ │
 │ │                     Generic devices  --->                           │ │
 │ │                     PCI devices  --->                               │ │
 │ │                     USB devices  --->                               │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │
Generic devices --->

Qui seleziono solo il virtualmidi che talvolta può tornare utile:

 <M> Virtual MIDI soundcard  
PCI devices --->

Scegliere il driver delle propria scheda audio PCI, nel mio caso:

 <M> Emu10k1 (SB Live!, Audigy, E-mu APS) 
USB devices --->

Da selezionare solo se si possiedono periferiche audio USB, io non ne possiedo e non seleziono niente.

USB support --->

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                                        │ │
 │ │[ ]   USB verbose debug messages                                     │ │
 │ │---   Miscellaneous USB options                                      │ │
 │ │[*]   USB device filesystem                                          │ │
 │ │[*]   Enforce USB bandwidth allocation (EXPERIMENTAL)                │ │
 │ │[ ]   Dynamic USB minor allocation (EXPERIMENTAL)                    │ │
 │ │[ ]   USB suspend/resume (EXPERIMENTAL)                              │ │
 │ │---   USB Host Controller Drivers                                    │ │
 │ │< >   EHCI HCD (USB 2.0) support                                     │ │
 │ │< >   ISP116X HCD support                                            │ │
 │ │< >   OHCI HCD support                                               │ │
 │ │<M>   UHCI HCD (most Intel and VIA) support                          │ │
 │ │< >   SL811HS HCD support                                            │ │
 │ │---   USB Device Class drivers                                       │ │
 │ │< >   USB Audio support                                              │ │
 │ │< >   USB Bluetooth TTY support                                      │ │
 │ │< >   USB MIDI support                                               │ │
 │ │< >   USB Modem (CDC ACM) support                                    │ │
 │ │<M>   USB Printer support                                            │ │
 │ │---   NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may als│ │
 │ │<M>   USB Mass Storage support                                       │ │
 │ │[ ]     USB Mass Storage verbose debug                               │ │
 │ │[ ]     Datafab Compact Flash Reader support (EXPERIMENTAL)          │ │
 │ │[ ]     Freecom USB/ATAPI Bridge support                             │ │
 │ │[ ]     ISD-200 USB/ATA Bridge support                               │ │
 │ │[ ]     Microtech/ZiO! CompactFlash/SmartMedia support               │ │
 │ │[ ]     USBAT/USBAT02-based storage support (EXPERIMENTAL)           │ │
 │ │[ ]     SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL)│ │
 │ │[ ]     SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL)            │ │
 │ │[ ]     Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL)           │ │
 │ │---   USB Input Devices                                              │ │
 │ │< >   USB Human Interface Device (full HID) support                  │ │
 │ │        USB HID Boot Protocol drivers  --->          (nessuno)       │ │
 │ │< >   Aiptek 6000U/8000U tablet support                              │ │
 │ │< >   Wacom Intuos/Graphire tablet support                           │ │
 │ │< >   Acecad Flair tablet support                                    │ │
 │ │< >   KB Gear JamStudio tablet support                               │ │
 │ │< >   Griffin PowerMate and Contour Jog support                      │ │
 │ │< >   MicroTouch USB Touchscreen Driver                              │ │
 │ │< >   ITM Touch USB Touchscreen Driver                               │ │
 │ │< >   eGalax TouchKit USB Touchscreen Driver                         │ │
 │ │< >   X-Box gamepad support                                          │ │
 │ │< >   ATI / X10 USB RF remote control                                │ │
 │ │< >   Keyspan DMR USB remote control (EXPERIMENTAL)                  │ │
 │ │---   USB Imaging devices                                            │ │
 │ │< >   USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)        │ │
 │ │< >   Microtek X6USB scanner support                                 │ │
 │ │---   USB Multimedia devices                                         │ │
 │ │< >   DABUSB driver                                                  │ │
 │ │---   Video4Linux support is needed for USB Multimedia device support│ │
 │ │      USB Network Adapters  --->                     (nessuno)       │ │
 │ │[ ]   USB Monitor                                                    │ │
 │ │---   USB port drivers                                               │ │
 │ │      USB Serial Converter support  --->             (nessuno)       │ │
 │ │---   USB Miscellaneous drivers                                      │ │
 │ │< >   EMI 6|2m USB Audio interface support                           │ │
 │ │< >   EMI 2|6 USB Audio interface support                            │ │
 │ │< >   USB Auerswald ISDN support (EXPERIMENTAL)                      │ │
 │ │< >   USB Diamond Rio500 support (EXPERIMENTAL)                      │ │
 │ │< >   USB Lego Infrared Tower support (EXPERIMENTAL)                 │ │
 │ │< >   USB LCD driver support                                         │ │
 │ │< >   USB LED driver support                                         │ │
 │ │< >   Cypress USB thermometer driver support                         │ │
 │ │< >   USB PhidgetKit support                                         │ │
 │ │< >   USB PhidgetServo support                                       │ │
 │ │< >   Siemens ID USB Mouse Fingerprint sensor support                │ │
 │ │< >   USB LD driver                                                  │ │
 │ │< >   USB testing driver (DEVELOPMENT)                               │ │
 │ │      USB DSL modem support  --->                        (nessuno)   │ │
 │ │    USB Gadget Support  --->                             (nessuno)   │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

File systems --->

Qui sceglieremo i filesystem che il nostro sistema dovrà supportare. Notare la presenza del nuovo inotify, usato ad esempio da beagle.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │    <*> Second extended fs support                                   │ │
 │ │    [ ]   Ext2 extended attributes                                   │ │
 │ │    [ ]   Ext2 execute in place support                              │ │
 │ │    <*> Ext3 journalling file system support                         │ │
 │ │    [*]   Ext3 extended attributes                                   │ │
 │ │    [ ]     Ext3 POSIX Access Control Lists                          │ │
 │ │    [ ]     Ext3 Security Labels                                     │ │
 │ │    [ ] JBD (ext3) debugging support                                 │ │
 │ │    <*> Reiserfs support                                             │ │
 │ │    [ ]   Enable reiserfs debug mode                                 │ │
 │ │    [ ]   Stats in /proc/fs/reiserfs                                 │ │
 │ │    [ ]   ReiserFS extended attributes                               │ │
 │ │    < > JFS filesystem support                                       │ │
 │ │        XFS support  --->                                            │ │
 │ │    < > Minix fs support                                             │ │
 │ │    < > ROM file system support                                      │ │
 │ │    [*] Inotify file change notification support                     │ │
 │ │    [ ] Quota support                                                │ │
 │ │    < > Kernel automounter support                                   │ │
 │ │    <M> Kernel automounter version 4 support (also supports v3)      │ │
 │ │        CD-ROM/DVD Filesystems  --->                                 │ │
 │ │        DOS/FAT/NT Filesystems  --->                                 │ │
 │ │        Pseudo filesystems  --->                                     │ │
 │ │        Miscellaneous filesystems  --->   (niente)                   │ │
 │ │        Network File Systems  --->                                   │ │
 │ │        Partition Types  --->             (niente)                   │ │
 │ │        Native Language Support  --->                                │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Ecco ora le sottovoci non vuote:

CD-ROM/DVD Filesystems --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │             <M> ISO 9660 CDROM file system support                  │ │
 │ │             [*]   Microsoft Joliet CDROM extensions                 │ │
 │ │             [*]   Transparent decompression extension               │ │
 │ │             < > UDF file system support                             │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

DOS/FAT/NT Filesystems --->

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │               <M> MSDOS fs support                                  │ │
 │ │               <M> VFAT (Windows-95) fs support                      │ │
 │ │               (850) Default codepage for FAT                        │ │
 │ │               (iso8859-1) Default iocharset for FAT                 │ │
 │ │               <M> NTFS file system support                          │ │
 │ │               [*]   NTFS debugging support                          │ │
 │ │               [*]   NTFS write support                              │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Pseudo filesystems --->

Molto importante questa sezione. Il server audio a bassa latenza jack necessita della voce

* Virtual memory file system support

per poter funzionare correttamente.


 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │      [*] /proc file system support                                  │ │
 │ │      [*]   /proc/kcore support                                      │ │
 │ │      [ ] /dev/pts Extended Attributes                               │ │
 │ │      [*] Virtual memory file system support (former shm fs)         │ │
 │ │      [ ]   tmpfs Extended Attributes                                │ │
 │ │      [ ] HugeTLB file system support                                │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Network File Systems --->

Attivo il supporto per il NFS (Network File System), bastano le voci:

 <M> NFS file system support
 <M> NFS server support 

Native Language Support --->

Non sono sicuro che questa sia la configurazione ottimale, la riporto solo per completezza. Sono elencate le sole voci selezionate:

 │ ┌──────────────────────────────────────────────────────────────────────────┐ │
 │ │ <*> Base native language support                                         │ │
 │ │ (UTF8) Default NLS Option                                                │ │
 │ │ <M>   Codepage 850 (Europe)                                              │ │
 │ │ <M>   Codepage 852 (Central/Eastern Europe)                              │ │
 │ │ <M>   NLS ISO 8859-1  (Latin 1; Western European Languages)              │ │
 │ │ <M>   NLS ISO 8859-2  (Latin 2; Slavic/Central European Languages)       │ │
 │ │ <M>   NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)    │ │
 │ │ <M>   NLS UTF8                                                           │ │
 │ └──────────────────────────────────────────────────────────────────────────┘ │

Profiling support --->

Niente, non siamo sviluppatori del kernel (almeno io :-P).

Kernel hacking --->

Con queste opzioni si attivano i tasti magici che permettono di uscire da configurazione di stallo del sistema. Molto utile se si provano molti sofware audio (e non solo) sperimentali che rischiano di destabilizzare il sistema. Per maggiori informazioni vedere la documentazione del kernel.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │      [ ] Show timing information on printks                         │ │
 │ │      [*] Kernel debugging                                           │ │
 │ │      [*]   Magic SysRq key                                          │ │
 │ │      (14)  Kernel log buffer size (16 => 64KB, 17 => 128KB)         │ │
 │ │      [ ]   Collect scheduler statistics                             │ │
 │ │      [ ]   Debug memory allocations                                 │ │
 │ │      [ ]   Debug preemptible kernel                                 │ │
 │ │      [ ]   Spinlock debugging                                       │ │
 │ │      [ ]   Sleep-inside-spinlock checking                           │ │
 │ │      [ ]   kobject debugging                                        │ │
 │ │      [ ]   Compile the kernel with debug info                       │ │
 │ │      [ ]   Debug Filesystem                                         │ │
 │ │      [ ]   Compile the kernel with frame pointers                   │ │
 │ │      [*]   Check for stack overflows                                │ │
 │ │      [ ]   Kprobes                                                  │ │
 │ │      [ ]   Stack utilization instrumentation                        │ │
 │ │      [ ]   Page alloc debugging                                     │ │
 │ │      [ ]   Use 4Kb for kernel stacks instead of 8Kb                 │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Security options --->

Queste voci sono necessarie per poter compilare successivamente il modulo realtime-lsm che permette di eseguire applicazioni in realtime anche ad utenti non-root.

 │ ┌─────────────────────────────────────────────────────────────────────┐ │
 │ │          [ ] Enable access key retention support                    │ │
 │ │          [*] Enable different security models                       │ │
 │ │          [ ]   Socket and Networking Security Hooks                 │ │
 │ │          <M>   Default Linux Capabilities                           │ │
 │ │          < >   Root Plug Support                                    │ │
 │ │          < >   BSD Secure Levels                                    │ │
 │ │          [*]   NSA SELinux Support                                  │ │
 │ │          [ ]     NSA SELinux boot parameter                         │ │
 │ │          [ ]     NSA SELinux runtime disable                        │ │
 │ │          [*]     NSA SELinux Development Support                    │ │
 │ │          [ ]     NSA SELinux AVC Statistics                         │ │
 │ │          (1)     NSA SELinux checkreqprot default value             │ │
 │ └─────────────────────────────────────────────────────────────────────┘ │

Cryptographic options --->

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 --->

Neanche qui niente, qualcuno sa se va bene?




Guida scritta da: TheNoise Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized