[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [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 vi si è già accennato al meccanismo attraverso cui si avvia il sistema e ai vari modi di passare al kernel queste istruzioni particolari: comandi di avvio (bootprompt), istruzioni append di LILO (/etc/lilo.conf
) e di SYSLINUX, argomenti ulteriori della direttiva kernel di Grub, 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 32 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 (montaggio) 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 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 file system principale.
root=dispositivo
Permette di specificare un dispositivo differente da quello predefinito per montare 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:
rdev kernel 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:
rdev -R kernel 1
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
root=/dev/hda2
Il file system principale è contenuto nella seconda partizione del primo disco fisso ATA.
rw
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). 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.
reserve=0x300,64
Riserva 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.
xd=2,5,0x320,3
Unità di controllo WD1002: indirizzo di I/O 32016, 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
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).
ether=11,0x300,eth0
Scheda NE2000: indirizzo I/O 30016, livello di IRQ 11.
ether=11,0x300,eth0 ether=10,320,eth1
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.
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 30016, 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 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.
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.
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.
parport=0x3bc parport=0x378,7 parport=0x278,auto
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.
lp=parport0 lp=parport2
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 /usr/src/linux/drivers/
e all'interno di /usr/src/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)
daniele @ swlibero.org
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome parametri_di_avvio_del_kernel_linux.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]