LKN: Guida di Riferimento dei Parametri di Boot del Kernel - parte1: differenze tra le versioni
S3v (discussione | contributi) m (→earlyprintk) |
S3v (discussione | contributi) m (<code) |
||
Riga 28: | Riga 28: | ||
<code>console=Options</code> | <code>console=Options</code> | ||
; <code>tty''n''</code>:Usa il terminale virtuale alla device ''n''. | ; <code>tty''n''</code>:Usa il terminale virtuale alla device ''n''. | ||
; <code>ttyS''n''</code>[,opzioni],ttyUSBo[,opzioni] | ; <code>ttyS''n''</code>[,opzioni],ttyUSBo[,opzioni]:Usa porta seriale specificata. Le opzioni sono nella forma ''bbbbpnf'', dove ''bbbb'' è il rapporto di baud, ''p'' la parità (<code>n</code>, <code>o</code>, o <code>e</code>), ''n'' è il numero di bit e ''f'' il controllo di flusso (<code>r</code> per RTS o omesso). Predefinito è <code>9600n8</code>. Leggete il file ''Documentation/serial-console.txt'' per maggiori informazioni su come usare un terminale seriale. Se desiderate averea accesso alle informazioni del terminale del kernel e non avete una porta seriale, date uno sguardo all'opzione da riga di comando ''netconsole''. | ||
; <code>uart,io,''addr[,opzioni],uart,mmio,addr[,opzioni]''</code>: Avvia velocemente un terminale in "polled-mode" sui 8250/16550 UART alle specifiche porte I/O o indirizzi MMIO, passando alla specificata periferica ttyS in seguito. Le opzioni sono le stesse che per ttyS mostrate precedentemente. | ; <code>uart,io,''addr[,opzioni],uart,mmio,addr[,opzioni]''</code>: Avvia velocemente un terminale in "polled-mode" sui 8250/16550 UART alle specifiche porte I/O o indirizzi MMIO, passando alla specificata periferica ttyS in seguito. Le opzioni sono le stesse che per ttyS mostrate precedentemente. | ||
Versione attuale delle 15:56, 2 nov 2014
Linux Kernel in a Nutshell |
Sommario |
|
La maggior parte di questo capitolo è sulla documentazione interna al kernel per le opzioni di avvio del kernel a riga di comando, che sono scritte dagli sviluppatori del kernel e rilasciate sotto GPL.
Ci sono tre modi per passare opzioni al kernel e così controllarne il comportamento:
- nella preparazione del kernel (configurazione e compilazione). La maggior parte di questo libro discute queste opzioni;
- quando si avvia il kernel. Comunemente i parametri sono passati al kernel quando è invocato da un file di avvio come i file di configurazione di GRUB o LILO;
- quando il kernel è in esecuzione, scrivendo all'interno di file nelle cartelle /proc e /sys.
Questo capitolo descrive il secondo modo per passare delle opzioni. Il capitolo divide le opzioni di avvio in sezioni logiche differenti. Molte opzioni specifiche per determinate architetture o opzioni di driver specifici non sono elencate. Per un elenco completo per tutte le opzioni conosciute, leggete il file Documentation/kernel-parameters.txt nell'albero dei sorgenti del kernel e la documentazione per ogni specifica architettura.
Non tutte le opzioni elencate sono sempre disponibili. La maggior parte sono associate a sottosistemi e funzionano solo se il kernel è configurato con quei sottosistemi inseriti. Dipendono anche dalla presenza dell'hardware cui sono associati.
Tutti questi parametri sono sensibili ai caratteri maiuscoli e minuscoli.
Opzioni specifiche per modulo
In aggiunta alle opzioni elencate in questo capitolo, i parametri per i moduli che sono compilati nel kernel possono essere anche passati via linea di comando. (Moduli caricati dinamicamente, ovviamente, non sono in memoria quando il kernel si avvia e non possono quindi essere passati come parametri all'avvio.) La sintassi per passare parametri consiste nel nome del modulo seguito da un punto (.) e il parametro. Per esempio, il modulo usbcore accetta il parametro blinkenlights per visualizzare le luci lampeggianti in tutti gli hub 2.0 supportati (non dite mai che gli sviluppatori del kernel non hanno senso degli humor). Per impostare questo parametro quando si carica il modulo dinamicamente, inserireste:
$ modprobe usbcore blinkenlights=1
Se il modulo usbcore è compilato nel kernel, ottenete lo stesso effetto invocando il kernel con la seguente opzione:
usbcore.blinkenlights=1
La maggior parte delle opzioni per i moduli che sono compilati nel kernel possono anche essere cambiate scrivendo in file nelle sottocartelle chiamate in base al modulo, nella cartella /sys/module. Così, l'opzione blinkenlights è rappresentata del file /sys/module/usbcore/blinkenlights.
Opzioni da terminale
Queste opzioni hanno a che fare con il terminale o il log del kernel, dove sono mostrate le informazioni per fare il debug del kernel e gli errori.
terminale
Periferica di output terminale e opzioni.
console=Options
ttyn
- Usa il terminale virtuale alla device n.
ttySn
[,opzioni],ttyUSBo[,opzioni]- Usa porta seriale specificata. Le opzioni sono nella forma bbbbpnf, dove bbbb è il rapporto di baud, p la parità (
n
,o
, oe
), n è il numero di bit e f il controllo di flusso (r
per RTS o omesso). Predefinito è9600n8
. Leggete il file Documentation/serial-console.txt per maggiori informazioni su come usare un terminale seriale. Se desiderate averea accesso alle informazioni del terminale del kernel e non avete una porta seriale, date uno sguardo all'opzione da riga di comando netconsole. uart,io,addr[,opzioni],uart,mmio,addr[,opzioni]
- Avvia velocemente un terminale in "polled-mode" sui 8250/16550 UART alle specifiche porte I/O o indirizzi MMIO, passando alla specificata periferica ttyS in seguito. Le opzioni sono le stesse che per ttyS mostrate precedentemente.
netconsole
Dati di output del terminale attraverso la rete.
netconsole=[src-port]@[src-ip]/[dev],[target-port]@target-ip/[target-mac-address]
- Invia i dati del terminale attraverso la rete usando pacchetti UDP a un'altra macchina. Le opzioni sono:
src-port
- Porta sorgente dei pacchetti UDP. La predefinita è 6665.
src-ip
- Indirizzo IP sorgente per l'interfaccia in uso.
dev
- Interfaccia di rete da usare.
eth0
è un esempio. L'interfaccia di rete può anche instradare comunte traffico di rete, poiché i dati netconsole non sono intrusivi e non dovrebbero causare un rallentamento nelle altre operazioni di rete. target-port
- Porta che l'agente di log userà. La predefinita è 6666.
target-ip
- Indirizzo IP dell'agente di log.
target-mac-address
- Indirizzo MAC ethernet dell'agente di log. Per essere in ascolto di questi dati, la macchina remota può usare il programma syslogd, o far girare il programma netcat come segue:
netcat -u -l -p port
. Per ulteriori basi sull'utilizzo di questa opzione, leggete Documentation/networking/netconsole.txt.
debug
Abilita il debug del kernel.
- Rende il livello di log del kernel impostato sul livello di debug, cosicché tutti i messaggi di debug saranno stampati sul terminale all'avvio.
quiet
Disabilita tutti i messaggi di log.
- Imposta il livello di log del kernel a KERN_WARNING(4), che sopprime tutti i messaggi durante l'avvio eccetto quelli estremamente importanti. (I livelli di log sono definiti al parametro loglevel.)
earlyprintk
Mostra i primi messaggi di avvio del kernel.
earlyprintk
=[vga|serial][,ttySn[,baudrate] ][,keep]- Mostra i messaggi di log del kernel che precedono l'inizializzazione del terminale tradizionale. Questi messaggi non sono solitamente visualizzati sul terminale a meno che non si usi questa opzione. Abilitarla può essere molto importante per delineare i problemi legati all'hardware. Attualmente l'opzione può specificare o la porta seriale o l'uscita VGA, ma non entrambe contemporaneamente. Analogamente solo una delle periferiche seriali
ttyS0
ottyS1
funzionerà. L'interazione con il tradizionale driver seriale non è molto buona, e l'uscita VGA sarà alla fine sovrascritta dal terminale reale. Aggiungete,keep
per non disabilitare i messaggi mostrati da questa opzione quando il terminale reale viene inizializzato e si sovrappone al sistema.
loglevel
Imposta il livello di default di log del terminale.
loglevel=level
- Specifica il livello iniziale di log della console. Tutti i messaggi di log con livelli minori di questo (cioè, di priorità più elevata) saranno stampati a terminale, laddove tutti i messaggi con livelli uguali o più grandi non saranno mostrati.
- Il livello di log può essere anche cambiato dal programma klogd, o scrivendo il livello specificato nel file /proc/sys/kernel/printk.
- I livelli di log sono:
0 (KERN_EMERG)
Il sistema non è usabile.2 (KERN_ALERT)
Azioni che devono essere immediatamente trattate.2 (KERN_CRIT)
Condizioni critiche.3 (KERN_ERR)
Condizioni di errore non critiche.4 (KERN_WARNING)
Condizioni i cui avvertimenti dovrebbero essere considerati.5 (KERN_NOTICE)
Eventi normali ma significativi.6 (KERN_INFO)
Messaggi informativi che non richiedono azioni.7 (KERN_DEBUG)
Messaggi di debug del kernel, mostrati dal kernel se lo sviluppatore ha abilitato il debugging in fase di compilazione.
log_buf_len
Imposta la dimensione del buffer dei messaggi del kernel.
log_buf_len=n[KMG]
- Imposta la dimensione del buffer interno dei messaggi del kernel. n deve essere una potenza di 2, altrimenti sarà approssimato a una potenza di 2. Questo valore può anche essere cambiato dall'opzione di configurazione
CONFIG_LOG_BUF_SHIFT
.
initcall_debug
Corregge gli errori nelle funzioni initcall nel kernel.
- Fa sì che il kernel tracci tutte le funzioni che sono chiamate dal kernel stesso durante l'inizializzazione del sistema quando il kernel è avviato. Questa opzione è utile per determinare dove il kernel muoia durante la fase di avvio.
kstack
Quante word dello stack vanno stampate negli oops del kernel.
kstack=n
- Specifica quante word dello stack del kernel devono essere stampate nell'uscita dei kernel oops. n è un numero intero.
time
Mostra i dati temporali in ogni messaggio del kernel.
- Fa sì che il kernel inserisca prima di ogni messaggio una marcatura oraria.
Opzioni di interruzione
Le interruzioni sono un aspetto complesso del comportamento del kernel. Le opzioni di avvio riguardano principalmente l'interfaccia tra il kernel e l'hardware che gestisce le interruzioni, come l'Advanced Programmable Interrupt Controller ("Controllore avanzato e programmabile delle interruzioni", N.d.T.) di Intel (APIC).
apic
Cambia la verbosità del sottosistema APIC all'avvio.
apic=[quiet|verbose|debug]
- Controlla quante informazioni il sottosistema APIC genera all'avvio del kernel. L'impostazione predefinita è
quiet
.
noapic
Non usa alcun IOAPIC.
- Impedisce al kernel di utilizzare qualsiasi IOAPIC che può essere presente nel sistema.
lapic
Abilita l'APIC locale.
- Abilita l'APIC locale anche se il BIOS lo ha disabilitato.
nolapic
Disabilita l'APIC locale.
- Disabilita l'APIC locale.
noirqbalance
Disabilita il bilanciamento degli IRQ del kernel.
- Disabilita tutta la ligica interna al kernel di bilanciamento degli IRQ.
irqfixup
Risoluzione base di problemi legati alle interruzioni.
- Quando un'interruzione non viene gestita, cerca tutti i gestori di interruzione per essa. Questo è pensato per far funzionare sistemi con un firmware molto rovinati.
irqpoll
Risoluzione avanzata dei problemi delle interruzioni.
- Quando un'interruzione non viene gestita, cerca tutti i gestori di interruzione per essa e verifica tutti i gestori in ogni interruzione per il timer. Questo è pensato per far funzionare sistemi con un firmware molto rovinati.
noirqdebug
Disabilita la rilevazione di interruzioni non gestite.
- Il kernel, come comportamento predefinito, cerca di individuare e disabilitare le sorgenti di interruzioni non gestite perché possono generare problemi legati alla reattività del kernel se lasciati non verificati. L'opzione cambia questo comportamento.
Opzioni per la memoria
Il kernel gestisce la memoria in molti differenti pezzi e categorie per scopi diversi. Queste opzioni consentono di regolare dimensioni e impostazioni.
highmem
Specifica la dimensione della zona della memoria superiore.
, highmem=n
: Forza la memoria superiore alla dimensione di n byte. Questa opzione funziona anche in macchine che non hanno una zona per la memoria superiore predefinita. Può anche ridurre la memoria superiore per macchine con molta memoria.
hugepages
Imposta il numero delle pagine di hugetlb.
hugepages=n
- La caratteristica hugetlb vi consente di configurare Linux per usare pagine da 4 MB, mille volte la dimensione predefinita. Se Linux è configurato in questa maniera, questa opzione imposta il massimo numero di pagine hugetlb a n.
ihash_entries
Imposta il numero di inode hash bucket.
ihash_entries=n
- Sovrascrive il numero di default di hash bucket per gli inode della cache del kernel. Raccomandato solo per gli esperti del kernel.
max_addr
Ignora la memoria.
max_addr=n
- Dice al kernel di ignorare tutta la memoria fisica più grande di o uguale all'indirizzo fisico n.
mem
Forza l'uso della memoria.
mem=n[KMG]
- Imposta lo specifico ammontare della memoria usata dal kernel. Quando usata con l'opzione memmap=, le collisioni dello spazio di indirizzamento fisico possono venir evitate. Senza l'opzione memmap=, questa opzione potrebbe causare il posizionamento dei dispositivi PCI in indirizzi che fanno parte della RAM inutilizzata. n specifica l'ammontare di memoria da forzare ed è misurata in unità di kilobytes (K), megabytes (M), o gigabytes (G).
mem
Disabilita l'uso delle pagine di 4 MB per la memoria del kernel.
mem=nopentium
- Disabilita l'uso delle pagine larghe (4 MB) per la memoria del kernel.
memmap
Abilita le impostazioni di una mappa di memoria esatta E820.
memmap=exactmap
- Utilizza una specifica mappa di memoria. Le linee della mappa esatta possono essere costruite basate sull'output del BIOS o altri requisiti.
memmap
Forza la memoria specificata a venir utilizzata.
memmap=n[KMG]@start[KMG]
- Forza il kernel ad usare una regione specifica di memoria, n è la misura della locazione di memoria, e start è la locazione iniziale della memoria nell'intervallo.
Le unità possono essere kilobytes (K), megabytes (M), o gigabytes (G).
noexec
Abilita o disabilita il nonexecutable mappings.
noexec=[on|off]
- Abilita o disabilita la capacità del kernel di mappare le sezioni di memoria come nonexecutable. Di default, il mapping è attivo (on).
reserve
Riserva della memoria di I/O.
reserve=n[KMG]
- Forza il kernel ad ignorare delle aree di memoria di I/O.
vmalloc
Forza l'area di vmalloc ad avere una specifica dimensione.
vmalloc=n[KMG]
- Forza vmalloc ad avere l'esatta dimensione specificata da n. Questo può essere usato per aumentare la dimensione minima dell'area di vmalloc (che è di 128 MB nei processori x86). Può anche essere utilizzato per diminuire la misura e lasciar più spazio per la RAM direttamente mappata da kernel.
norandmaps
Non utilizzare l'address space randomization.
Di default, il kernel genera casulamente lo spazio di indirizzamento di tutti i programmi quando vengono lanciati. Questa opzione disabilita questa feature. E' l'equivalente di scrivere 0 nel file /proc/sys/kernel/randomize_va_space.
vdso
Abilita o disabilita il mapping VDSO.
vdso=[0|1]
- Disabilita (0) o abilita (1) il VDSO (Virtual Dynamic Shared Object) mapping. Di default, e' abilitata.
This is an indipendent translation of the book Linux Kernel in a Nutshell by Greg Kroah-Hartman. This translation (like the original work) is available under the terms of Creative Commons Attribution-ShareAlike 2.5.