Il kernel ha la capacità di accettare informazioni all'avvio nella forma di `riga di comando', simile ad una lista di argomenti che si darebbe ad un programma. In generale questo viene usato per fornire al kernel informazioni circa i parametri hardware che il kernel non sarebbe in grado di determinare di per se, o evitare/sovrascrivere i valori che il kernel altrimenti rileverebbe.
È il lavoro del boot loader (es. LILO, loadlin o Grub) di prendere queste informazioni dall'utente e metterle in un posto precedentemente concordato dove il kernel possa trovarle una volta che si avvia.
La presente revisione copre i kernel fino e incluso il v2.4.20. e v2.5.63
Il BootPrompt-Howto è di:
Paul Gortmaker, p_gortmaker @ yahoo.com
This document is Copyright (c) 1995-2003 by Paul Gortmaker. Please see the Disclaimer and Copying information at the end of this document ( copyright) for information about redistribution of this document and the usual `we are not responsible for what you manage to break...' type legal stuff.
La maggior parte degli utenti Linux non dovrebbero neanche guardare questo documento. Linux fa eccezionalmente un buon lavoro nella rilevazione della maggior parte dell'hardware, selezionando ragionevolmente le impostazioni di default per la maggior parte dei parameteri. L'informazione in questo documento mira agli utenti che possono desiderare modificare alcune impostazioni di default per ottimizzare il kernel per le proprie particolari macchine, o a un utente che ha `personalizzato il proprio' kernel per supportare un hardware non comune per il quale i default automatici non sono l'ottimo.
Per il bene di questo documento è meglio dividere
gli argomenti di avvio in due categorie generali; (a)una
gestita dal kernel e (b)quella gestita da un driver di dispositivo.
Gli esempi sarebbero init=
che dice al kernel quale dovrebbe essere
il primo programma da eseguire, contro aha154x=
che
dice ad un driver di dispositivo per una scheda SCSI quale risorsa hardware
dovrebbe usare. Questo documento si concentra nel dare informazioni dettagliate
su questi per i motivi descritti sotto.
NOTA IMPORTANTE: Gli argomenti di avvio relativi ai driver
si applicano soltanto ai driver hardware che sono compilati direttamente nel
kernel. Essi non hanno nessun effetto sui driver che sono caricati
come moduli. La maggior parte delle distribuzioni Linux hanno un kernel di base `nudo'
, e i driver sono piccoli moduli che sono caricati dopo l'inizializzazione
del kernel.
Se non si è sicuri che si stiano usando moduli provare lsmod
,
guardare man depmod
e man modprobe
insieme con il
contenuto del proprio /etc/modules.conf
.
Alla luce di questo, gli argomenti di avvio dei driver di dispositivo sono realmente usati solo da poche persone che compilano i propri kernel, e perciò hanno i sorgenti del kernel alla mano. Queste persone usualmente controllano i sorgenti per le opzioni e le sintassi richieste da quel driver per ottenere le informazioni più aggiornate.
Per esempio, se si stanno cercando quali argomenti dovrebbero essere
passati al driver AHA1542 SCSI, allora si dovrebbe andare nella directory
linux/drivers/scsi
, e cercare nel file
aha1542.c
__setup(... , ...)
. La prima
cosa tra parentesi è l'argomento che si fornisce all'avvio,
e la seconda cosa è il nome della funzione che processa il proprio
argomento. Di solito vicino alla cima di questa funzione o all'inizio
del file del sorgente si troverà una descrizione degli argomenti
di avvio che il driver accetta.
Per adesso, i sorgenti del kernel hanno il file
linux/Documentation/kernel-parameters.txt
. Questo
file contiene una breve lista di tutti gli argomenti di avvio
che si possono fornire, insieme a veloci link al posto dove,
tra i sorgenti, si possa trovare dove sono analizzati gli argomenti.
L'idea è che questo file dia agli sviluppatori un posto veloce
e facile per aggiungere una breve descrizione di ogni nuovo argomento
che essi aggiungono lavorando ai sorgenti. Così che esso
probabilmente sarà sempre più aggiornato di questo documento.
Attualmente sto consideranto con discontinuità questo documento alla luce
dell'esistenza del kernel-parameters.txt
. (Opinioni?)
La directory linux
si trova di solito in /usr/src/
nella maggior parte delle distribuzioni. Tutti i riferimenti in questo documento
a file che vengono forniti col kernel avranno il loro nome del path
abbreviato che inizia per linux
- si dovrà aggiungere
/usr/src/
o quant'altro appropriato per il proprio sistema.
Alcune distribuzioni possono non installare i sorgenti completi del kernel
di default, e inserire solo la directory linux/include
.
Se non si trova il file in questione allora installare i sorgenti del kernel
e/o e fare uso dei comandi find
e locate
.
Se non si trova il pacchetto dei sorgenti del kernel nella propria distribuzione
allora i sorgenti del kernel sono disponibili su:
La succesiva miglior cosa da leggere nei sorgenti C del kernel, sarà
qualsiasi altro file di documentazione che viene
distribuito con il kernel stesso. Ci sono ora alcuni
di questi, e la maggior parte di loro può essere trovata nella directory
linux/Documentation
e nelle sue sottodirectory.
A volte ci sarà il file README.foo
che può essere trovato
nella relativa directoty driver (es. linux/drivers/???/
,
dove ci dovrebbero essere esempi di ???
scsi
, char
, o net
).
La tendenza generale è di spostare questi file dentro la directory Documentation,
così se un file menzionato in questo documento non è più
lì probabilmente è stato spostato.
Se si è capito quali argomenti di avvio si intende usare, e ora si vuole sapere come passare l'informazione al kernel, allora guardare la documentazione che è fornita con il software che si usa per avviare il kernel (es.LILO o loadlin). Una breve descrizione è fornita di seguito, ma non è il sostituto della documentazione fornita con il software di avvio.
Nuove versioni di questo documento possono essere trovate via anonymous
FTP nella maggior parte dei siti FTP Linux nella directory
/pub/Linux/docs/HOWTO/
. Saranno fatti aggiornamenti quando
saranno disponibili nuove informazioni e/o driver. Se questa copia che
si sta leggendo è più vecchia di sei mesi, allora
si dovrebbe probabilmente controllare se ne esiste una più nuova.
Suggerirei di vederlo via browser WWW o nel formato
Postscript/dvi. Entrambi contengono cross-reference
che sono rimaste in una semplice versione formato testo.
Se si vuole avere la copia ufficiale, ecco l'URL.