[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Il kernel è in grado di ricevere opzioni in fase di avvio che possono servire per scopi differenti. In particolare, per gestire alcuni dispositivi è necessario informare il kernel sulle loro caratteristiche (tipicamente l'indirizzo di I/O e il livello di IRQ).
Nella parte viii è descritto il meccanismo attraverso cui si avvia il sistema e i vari modi di passare al kernel queste istruzioni particolari. In questo capitolo vengono mostrati solo alcuni dei parametri di avvio che possono essere utilizzati.
È importante tenere presente che gli indirizzi di I/O vanno espressi in esadecimale, nella forma 0xnnn, il livello di IRQ viene indicato in modo decimale e l'indirizzo di memoria condivisa viene espresso in esadecimale. Se non viene indicato diversamente, gli indirizzi di I/O e di memoria condivisa sono quelli di partenza.
Nel capitolo 52 sono riepilogati altri parametri affiancati ai moduli relativi, quando questi sono disponibili.
Alcuni parametri di avvio non riguardano dispositivi specifici, ma il sistema in generale. Si tratta in special modo delle informazioni sul dispositivo da utilizzare per l'innesto del file system principale e dell'utilizzo della memoria.
Nel momento dell'avvio, il kernel deve conoscere alcune informazioni essenziali sul file system principale. Per prima cosa deve sapere dove si trova (quale disco e quale partizione), quindi deve sapere in che modo deve essere innestato inizialmente (in sola lettura o anche in scrittura). Questi dati possono essere memorizzati all'interno del kernel stesso, anche per mezzo del programma rdev o di knl.
Selezione del file system principale.
root=dispositivo |
Permette di specificare un dispositivo differente da quello predefinito per innestare il file system principale. Il dispositivo può essere rappresentato nel modo consueto, /dev/...
, anche se in effetti, in questa fase di avvio, non esiste ancora un file system all'interno del quale cercare un tale file di dispositivo.
Questa indicazione può essere memorizzata direttamente nel kernel attraverso rdev o knl:
rdev kernel dispositivo |
knl kernel --root=dispositivo |
Accesso iniziale in sola lettura.
ro |
Permette di definire un accesso iniziale al file system principale in sola lettura. Questa è la condizione necessaria per poter eseguire un controllo dell'integrità del file system prima di passare alla gestione normale.
Questa indicazione può essere memorizzata direttamente nel kernel attraverso rdev o knl:
rdev -R kernel 1 |
knl kernel --flags=ro |
Accesso iniziale in lettura e scrittura.
rw |
Permette di definire un accesso iniziale al file system principale in lettura e scrittura.
Questa indicazione può essere memorizzata direttamente nel kernel attraverso rdev:
rdev -R kernel 0 |
Segue la descrizione di alcuni esempi.
|
Il file system principale è contenuto nella seconda partizione del primo disco fisso ATA.
|
Il file system principale viene aperto inizialmente in lettura e scrittura (per qualche ragione).
Memoria RAM disponibile.
mem=dimensione |
In caso di necessità, permette di definire la dimensione di memoria RAM disponibile effettivamente. Si può indicare un numero esadecimale nella forma 0x..., oppure un numero decimale normale, seguito eventualmente dalla lettera k, che sta a indicare kibibyte (simbolo: «Kibyte»), oppure dalla lettera M, che sta a indicare mebibyte (simbolo: «Mibyte»). Quando ci si trova nella necessità di indicare la memoria esistente occorre fare attenzione a non esagerare, soprattutto occorre controllare se una parte di questa, verso la fine, viene utilizzata dal firmware BIOS, perché in tal caso occorre specificare una dimensione inferiore.
Caricamento del file system principale come disco RAM.
load_ramdisk={0|1} |
Permette di definire se si vuole caricare il file system principale come disco RAM. load_ramdisk=1 significa che si intende attivare un disco RAM, mentre assegnando il valore zero ciò non accade. Il valore predefinito è load_ramdisk=0.
init=programma_iniziale |
Permette di definire il nome, completo di percorso, del programma che deve svolgere la funzione di «processo iniziale» (Init). Normalmente, il kernel provvede da solo a cercare /sbin/init
e in alternativa /etc/init
. Come ultima risorsa tenta di avviare /bin/sh
. Se per qualunque motivo non funziona il programma Init standard, si può tentare di avviare il sistema facendo partire la shell al suo posto.
Coprocessore matematico.
no387 |
Alcuni coprocessori matematici i387 hanno dei problemi che possono pregiudicare il funzionamento del sistema. In tali situazioni è necessario fare in modo che il kernel ignori la presenza di questo coprocessore e provveda da solo alla sua emulazione. Inserendo questo parametro si fa in modo che non venga utilizzato il coprocessore.
Pausa del microprocessore.
no-hlt |
I microprocessori i386 e successivi dispongono di un'istruzione denominata hlt che permette loro di entrare in uno stato di riposo in attesa di un'interruzione esterna. Ciò permette a un sistema inutilizzato di risparmiare energia. Alcuni microprocessori i486 hanno un difetto per cui il meccanismo di risveglio dopo la pausa non funziona. In questi casi conviene utilizzare l'opzione no-hlt, con la quale il kernel non lascia mai andare il microprocessore in pausa.
Riavvio automatico quando si manifesta un kernel panic.
panic=secondi |
Quando il kernel incontra un problema grave, si dice scherzosamente che si è verificato un kernel panic. In situazioni normali, il sistema si blocca in attesa di un intervento umano. Attraverso questa istruzione è possibile indicare al kernel di riavviare il sistema dopo un intervallo di tempo espresso in secondi. Il valore predefinito è zero, che corrisponde a una durata infinita.
Esclusione degli indirizzi di I/O.
reserve=indirizzo_i/o,estensione[,indirizzo_i/o,estensione]... |
Permette di isolare una o più zone di indirizzi di I/O, all'interno delle quali il kernel non deve eseguire alcun tentativo di identificazione di componenti. Di solito, dopo un'istruzione del genere, si inseriscono le dichiarazioni esplicite dei dispositivi che ci sono effettivamente. Il primo valore, quello che esprime l'indirizzo, viene espresso attraverso una notazione esadecimale del tipo consueto (0x...), mentre il secondo è un numero decimale.
Disabilitazione del supporto APM.
apm=off |
Quando il supporto per l'APM (Advanced power management) è inserito nel kernel e la sua gestione è incompatibile con l'hardware disponibile, per evitare il blocco del sistema è meglio disabilitare questa gestione.
L'esempio seguente mostra come riservare gli indirizzi di I/O da 30016 a 34016:
|
Gli elaboratori con architettura i386 e successive sono dotati generalmente di unità di controllo per i dischi di tipo ATA e derivati. In questo senso, raramente si incontrano problemi e con essi la necessità di fornire istruzioni particolari al kernel.
Nelle sintassi seguenti, hdx rappresenta un dispositivo corrispondente a un disco fisso, dove x è una lettera da a a h. La sigla iden rappresenta un dispositivo corrispondente a un'unità di controllo ATA, dove n è un numero da zero a tre.
Geometria.
hdx=cilindri,testine,settori |
Indica esplicitamente la geometria di un disco fisso senza dover fare affidamento sulle informazioni fornite dal firmware BIOS.
CD-ROM.
hdx=cdrom |
Dichiara in modo inequivocabile che l'unità hdx è un lettore CD-ROM.
Indirizzo di I/O dell'interfaccia.
iden=indirizzo_i/o |
Specifica l'indirizzo di I/O dell'interfaccia ATA specificata.
Geometria.
hd=cilindri,testine,settori |
Se sono installati due dischi, si devono ripetere le indicazioni in sequenza, attraverso due parametri hd=.
Caratteristiche della scheda di controllo.
xd=tipo,livello_irq,indirizzo_i/o,canale_dma |
Il tipo specifica il produttore della scheda: 0=generico; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI.
L'esempio seguente serve a dichiarare la presenza di un'unità di controllo WD1002, con indirizzo di I/O 32016, livello di IRQ 5 e canale DMA 3:
|
Le istruzioni di avvio riferite alle interfacce di rete Ethernet sono un po' strane e iniziano sempre con il parametro ether=. La sintassi generale è la seguente:
ether=livello_irq,indirizzo_i/o[extra1,[extra2...]],nome |
In pratica, gli argomenti che identificano il livello di IRQ, l'indirizzo di I/O e il nome simbolico dell'interfaccia di rete sono sempre parte della sintassi, mentre altri argomenti nella parte centrale possono essere presenti in funzione del tipo di scheda.
Adattatori compatibili con NE1000 e NE2000.
ether=livello_irq,indirizzo_i/o,nome |
I valori che si vuole siano determinati automaticamente vanno lasciati a zero.
ether=livello_irq,indirizzo_i/o,0,ricetrasmettitore,nome |
L'argomento indicato come ricetrasmettitore è un numero che rappresenta il tipo di connessione fisica scelta: 0=interno (BNC), 1=esterno (AUI).
Segue la descrizione di alcuni esempi.
|
Scheda NE2000: indirizzo I/O 30016, livello di IRQ 11.
|
Due schede NE2000: la prima configurata con indirizzo I/O 30016 e livello di IRQ 11, la seconda con indirizzo di I/O 32016 e livello di IRQ 10.
|
Due schede NE2000 configurate in modo differente e non conflittuale, in grado di essere riconosciute se installate singolarmente. Si vuole ottenere l'autorilevamento della seconda scheda.
|
Scheda 3c503: indirizzo di I/O 30016, livello di IRQ 9, ricetrasmettitore esterno.
|
Scheda 3c503: si vuole che venga rilevato automaticamente l'indirizzo di I/O, mentre il livello di IRQ è 3. Si utilizza il ricetrasmettitore interno.
Normalmente non c'è alcuna necessità di specificare qualcosa riguardo alle unità a dischetti. Le situazioni che vengono descritte qui sono eccezionali.
floppy=two_fdc |
Specifica la presenza di due unità di controllo per i dischetti. Con questa istruzione si ritiene implicitamente che la seconda unità di controllo utilizzi l'indirizzo di I/O 37016.
floppy=indirizzo_i/o,two_fdc |
Viene specificata la presenza di una seconda unità di controllo con un indirizzo di I/O iniziale particolare.
floppy=thinkpad |
Questa istruzione serve a gestire l'unità a dischetti degli elaboratori ThinkPad.
floppy=L40SX |
Questa istruzione serve a gestire l'unità a dischetti degli elaboratori portatili IBM L40SX.
floppy=nodma |
Disabilita l'uso del canale DMA. Può essere utile, in particolare, per la gestione di un'unità di controllo esterna.
Per i mouse di tipo seriale e di tipo PS/2, normalmente non è necessario specificare alcunché.
bmouse=livello_irq |
Permette di definire il livello di IRQ di un'interfaccia bus-mouse.
msmouse=livello_irq |
Permette di definire il livello di IRQ di un'interfaccia MS bus-mouse.
Le informazioni di questa sezione riguardano kernel dalle versioni 2.2.* in poi.
Definizione esplicita delle caratteristiche della porta.
parport=indirizzo_i/o[,livello_irq] |
In condizioni normali, le porte parallele vengono individuate correttamente; se così non fosse si può utilizzare questo parametro, ripetuto per tutte le porte che si vogliono gestire, indicando l'indirizzo di I/O ed eventualmente anche il livello di IRQ. Le porte parallele individuate, automaticamente o con l'aiuto dei parametri, ottengono una denominazione sequenziale: parport0, parport1, ecc.
Eliminazione della gestione e autorilevamento.
parport=0 |
parport=auto |
Se si assegna il valore zero nel parametro di dichiarazione della porta parallela, viene esclusa completamente la sua gestione da parte del kernel; se si assegna la parola chiave auto, si richiede espressamente al kernel di scandire automaticamente le porte e di assegnare indirizzi di I/O e IRQ in modo automatico.
I dispositivi o le interfacce di rete che fanno uso della porta parallela, se devono essere indicati espressamente attraverso i parametri del kernel, devono fare riferimento alle porte parallele attraverso i nomi convenzionali parport0,...
Definizione esplicita dell'abbinamento di una porta a una stampante.
lp=parportn |
Definisce che la porta parallela, specificata attraverso il numero, è collegata a una stampante.
Segue la descrizione di alcuni esempi.
|
Definisce esplicitamente la presenza di tre porte parallele: per tutte specifica l'indirizzo di I/O; per la seconda viene indicato il livello di IRQ 7, mentre per l'ultima viene richiesto di determinare automaticamente il livello di IRQ.
|
Definisce l'utilizzo della prima e della terza porta parallela per le stampanti; rispettivamente: lp0 e lp1.
Le informazioni più aggiornate sull'uso dei parametri di avvio si possono trovare all'interno degli stessi sorgenti del kernel, nelle directory successive a sorgenti_linux/drivers/
e all'interno di sorgenti_linux/Documentation/
(può trattarsi dei commenti iniziali ai file dei sorgenti, o file di testo separati).
Paul Gortmaker, BootPrompt HOWTO
<http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html>
bootparam(7)
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome parametri_di_avvio_del_kernel_linux.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]