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).
Nel capitolo
8 si è già accennato al meccanismo attraverso cui si avvia il sistema e ai vari modi di passare al kernel queste istruzioni particolari: bootprompt, istruzioni append
di LILO (/etc/lilo.conf
) e di SYSLINUX, e opzioni della riga di comando di Loadlin. 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 15 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 il montaggio del filesystem principale, e dell'utilizzo della memoria.
Nel momento dell'avvio, il kernel deve conoscere alcune informazioni essenziali sul filesystem principale. Per prima cosa deve sapere dove si trova (quale disco e quale partizione), quindi deve sapere in che modo deve essere montato inizialmente (in sola lettura o anche in scrittura). Questi dati possono essere memorizzati all'interno del kernel stesso, anche per mezzo del programma rdev
.
Selezione del filesystem principale.
Permette di specificare un dispositivo differente da quello predefinito per montare il filesystem principale. Il dispositivo può essere rappresentato nel modo consueto, Questa indicazione può essere memorizzata direttamente nel kernel attraverso
| |||
Accesso iniziale in sola lettura.
Permette di definire un accesso iniziale al filesystem principale in sola lettura. Questa è la condizione necessaria per poter eseguire un controllo dell'integrità del filesystem prima di passare alla gestione normale. Questa indicazione può essere memorizzata direttamente nel kernel attraverso
| |||
Accesso iniziale in lettura e scrittura.
Permette di definire un accesso iniziale al filesystem principale in lettura e scrittura. Questa indicazione può essere memorizzata direttamente nel kernel attraverso
|
root=/dev/hda2 |
Il filesystem principale è la seconda partizione del primo disco fisso IDE.
rw |
Il filesystem principale viene aperto inizialmente in lettura e scrittura (per qualche ragione).
Memoria RAM disponibile.
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 | ||
Caricamento del filesystem principale come disco RAM.
Permette di definire se si vuole caricare il filesystem principale come disco RAM. |
Programma
Permette di definire il nome, completo di percorso, del programma che deve svolgere le funzioni di | ||
Coprocessore matematico.
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 microprocessore e provveda da solo alla sua emulazione. Inserendo questo parametro si fa in modo che non venga utilizzato il coprocessore. | ||
Pausa del microprocessore.
I microprocessori i386 e successivi dispongono di un'istruzione denominata | ||
Riavvio automatico quando si manifesta un kernel panic.
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.
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. |
reserve=0x300,64 |
Riserva gli indirizzi di I/O da 0x300 a 0x340.
Gli elaboratori con architettura i386 e successive sono dotati generalmente di unità di controllo per i dischi di tipo IDE 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 IDE, dove n è un numero da 0
a 3
.
Geometria.
Indica esplicitamente la geometria di un disco fisso senza dover fare affidamento sulle informazioni fornite dal firmware BIOS. | ||
CD-ROM.
Dichiara in modo inequivocabile che l'unità | ||
Indirizzo di I/O dell'interfaccia.
Specifica l'indirizzo di I/O dell'interfaccia IDE specificata. |
Geometria.
Se sono installati due dischi, si devono ripetere le indicazioni in sequenza, attraverso due parametri |
Caratteristiche della scheda di controllo.
Il tipo specifica il produttore della scheda: 0=generico; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI. |
xd=2,5,0x320,3 |
Unità di controllo WD1002: indirizzo di I/O 0x320, livello di IRQ 5, 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.
Compatibili NE1000 e NE2000
I valori che si vuole siano determinati automaticamente vanno lasciati a zero. | ||
3Com 3c503
L'argomento indicato come ricetrasmettitore è un numero che rappresenta il tipo di connessione fisica scelta: 0=interno (BNC), 1=esterno (AUI). |
ether=11,0x300,eth0 |
Scheda NE2000: indirizzo I/O 0x300, livello di IRQ 11.
ether=11,0x300,eth0 ether=10,320,eth1 |
Due schede NE2000: la prima configurata con indirizzo I/O 0x300 e livello di IRQ 11, la seconda con indirizzo di I/O 0x320 e livello di IRQ 10.
ether=0,0,eth1 |
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.
ether=9,0x300,0,1,eth0 |
Scheda 3c503: indirizzo di I/O 0x300, livello di IRQ 9, ricetrasmettitore esterno.
ether=3,0,0,0,eth0 |
Scheda 3c503: si vuole che venga rilevato automaticamente l'indirizzo di I/O, mentre il livello di IRQ è 3. Si utilizza il ricetrasmettitore interno.
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 0x370.
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.
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.
Con i kernel 2.2.*, la gestione della porta parallela è cambiata. Mentre prima si poteva predisporre il kernel per la stampa, oppure per le connessioni PLIP, adesso è stato introdotto un livello intermedio, riferito direttamente alla porta parallela; poi questa viene abbinata al dispositivo di stampa o ad altre attività, anche in modo dinamico.
Definizione esplicita delle caratteristiche della porta.
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: | |||
Eliminazione della gestione e autorilevamento.
Se non 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 |
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.
Definisce che la porta parallela, specificata attraverso il numero, è collegata a una stampante. |
parport=0x3bc parport=0x378,7 parport=0x278,auto |
Definisce esplicitamente la presenza di tre porte parallele, e per tutte specifica l'indirizzo di I/O; per l'ultima viene richiesto di determinare automaticamente l'indirizzo di I/O.
lp=parport0 lp=parport2 |
Definisce l'utilizzo della prima e della terza porta parallela per le stampanti; rispettivamente: lp0
e lp1
.
Sorgenti del kernel Le informazioni più aggiornate sull'uso dei parametri di avvio si possono trovare all'interno degli stessi sorgenti del kernel, nelle directory successive a | |
Paul Gortmaker, BootPrompt HOWTO | |
bootparam(7) |
---------------------------
Appunti Linux 1999.07.12 --- Copyright © 1997-1999 Daniele Giacomini -- daniele @ evo.it
[indice generale] [precedente] [successivo] [indice analitico] [note introduttive]