LKN: Guida di Riferimento dei Parametri di Boot del Kernel - parte1

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Linux Kernel in a Nutshell

Sommario

Parte I
Compilare il kernel
  1. Introduzione
  2. Requisiti
  3. Procurarsi i sorgenti
  4. Configurazione e compilazione
  5. Installazione e avvio
  6. Aggiornare il kernel
Parte II
Personalizzazioni principali
  1. Personalizzare un kernel
  2. Ricette per configurare un kernel
Parte III
Guide di riferimento per il kernel
  1. Guida di riferimento dei parametri di boot del kernel - parte1
  2. Guida di riferimento dei parametri di boot del kernel - parte2
  3. Guida di riferimento dei parametri di compilazione del kernel
  4. Guida di riferimento delle opzioni di configurazione del kernel - parte1
  5. Guida di riferimento delle opzioni di configurazione del kernel - parte2
Parte IV
Informazioni aggiuntive
  1. Programmi utili
  2. Bibliografia

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, o e), 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 o ttyS1 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.

Opzioni per la sospensione

Queste opzioni cambiano il modo con cui il kernel gestisce la sospensione per scopi di power-saving.

resume

Specifica la partizione di dispositivo per l'immagine di sospensione.

resume=suspend_device
Dice al kernel quale dispositivo di disco contiene l'immagine del kernel sospesa. Se i dati nell'immagine sono una immagine di kernel valida creata dal software suspend subsystem, verrà caricata nella memoria e il kernel la eseguirà invece di continuare il normale processo di boot. suspend_device è il nome del dispositivo del kernel, che potrebbe essere differente da ciò che lo userspace pensa che il nome del dispositivo sia, per cui state attenti con questa opzione.

noresume

Disabilita il resume. Disabilita la funzione di resume del kernel. Qualsiasi partizione di swap che era utilizzata per mantenere le immagini di sistema con il quale il kernel poteva venir ricaricato ritornerà ad essere spazio di swap disponibile.

Opzioni per la CPU

Queste opzioni controllano un largo intervallo di comportamento che riguardano i timing, l'uso del processore in sistemi multi processore, e altre caratteristiche del processore.

cachesize

Non tiene conto del rilevamento della dimensione della cache di livello 2.

cachesize=n
A volte i bug hardware della CPU fanno si che riportino una dimensione errata della cache. Il kernel tenterà di raggirare e di sistemare i problemi più noti con molte delle CPU, ma per alcune CPU non è possibile determinare quale dovrebbe essere la dimensione corretta. Questa opzione prevede di non tenerne conto per queste situazioni. n è misurato in bytes.

lpj

Imposta i loops per jiffy.

lpg=n
Specifica i loops per jiffy che dovrebbero essere usati dal kernel, e così da far evitare al kernel il time-consuming di autorilevamento a boot-time di questo valore. Se n è 0, il valore verrà rilevato come al solito.

Su sistemi SMP, questo valore verrà impostato su tutte le CPU, il che potrebbe causare dei problemi se le differenti CPU necessitano di diverse impostazioni. Un valore incorretto causerà delay incorretti nel kernel, il che può portare a inpredicabili errori di I/O e altri problemi. Sebbene sfortunatamente, in casi estremi questo potrebbe danneggiare il vostro hardware.

nmi_watchdog

Imposta il valore di NMI watchdog

nmi_watchdog=[0|1|2|3]
Questa è una caratteristica di debug che permette all'utente di non tener conto del valore di "default nonmaskable interrupt" (NMI) watchdog. 0 specifica che nessun NMI watchdog dovrebbe essere usato. 1 specifica che l'APIC dovrebbe essere usato se presente. 2 specifica che il local APIC dovrebbe essere usato se presente. 3 significa che il watchdog di NMI è invalido, per cui non usarlo.

no387

Usa sempre la libreria di emulazione del 387. Usa sempre la libreria di emulazione del 387, anche se un coprocessore matematico 387 è presente nel sistema.

nofxsr

Disabilita l'x86 floating-point save e restore. Disabilita il save e restore registro extended dell'x86 floating-point. Il kernel salverà solo i registri di legacy floating-point su un task switch.

no-hlt

Non usare l'istruzione HLT. Questa opzione è disponibile perché l'istruzione HLT non funziona correttamente su alcuni processori x86. Questa istruzione dice al kernel di non usare questa istruzione.

mce

Attiva la carattersitica di controllo delle eccezioni della macchina. Alcuni processori possono controllare gli errori di macchina (di solito errori nell'hardware). Questa opzione attiva questo subsystem, se è stato compilato all'interno della configurazione del kernel.

nomce

Disabilita la carattersitica di controllo delle eccezioni della macchina. Questa opzione disabilita il subsystem.

nosep

Disabilita il supporto x86 SYSENTER/SYSEXIT Disabilita il supporto x86 SYSENTER/SYSEXIT nel kernel. Questo può causare per alcune system call un allungamento dei tempi.

nosmp

Si avvia come una macchina a processore singolo. Dice a un kernel SMP di comportarsi come un kernel uniprocessore, anche se su una macchina multiprocessore.

Opzioni dello scheduler

Queste opzioni apportono piccole modifiche ai parametri usati per fare le decisioni di scheduling. Molti dipendono da una comprensione interiore di come lo scheduler funziona in Linux.

isolcpus

Isola le CPU dallo scheduler del kernel.

isolcpus=cpu_number[,cpu_number,...]
Rimuove le CPU, come definito dal valore di cpu_number, dal bilanciatore SMP generale del kernel e dagli algoritmi di scheduler.

L'unico modo per muovere un processo dentro o fuori una CPU "isolata" è via la chimata di sistema CPU affinity. cpu_number comincia da 0, per cui il valore massimo è il numero di CPU presenti nel sistema meno uno. Questa opzione è la via preferita per isolare le CPU. L'alternativa, impostare manualmente le CPU mask di tutte le task del sistema, può causare problemi e sottoottimali performance nel load-balancer.

migration_cost

Non tiene conto dei costi di migration dello scheduler di default.

migration_cost=level-1-useconds[level-2-useconds...]

Questa è una opzione di debug che non tiene conto della matrice del costo di migration dello scheduler di default. I numeri specificati da level-N-useconds sono indicizzati dal "CPU domain distance" e sono misurati in microsecondi. Un esempio di questa opzione è migration_cost=1000,2000,3000 per una macchina SMT NUMA. Imposta un costo di migration intra-core di 1ms, un altro costo inter-core di migration di 2ms e un altro costo inter-node di 3ms. Valori incorretti possono severamente degradare le performance dello scheduler, per cui questa opzione dovrebbe venir usata solo per lo sviluppo dello scheduler, mai per ambienti di produzione.

migration_debug

Verbosita' del costo di autorilevamento della migration.

igration_debug=[0|1|2]

Imposta il livello di debug del costo di migration. Se 0 viene specificato, nessun messaggio extra viene stampato nel log del kernel. Questo è il valore di default. 1 stampa alcune informazioni su come la matrice è determinata. 2 è molto prolisso ed è utile solo se utilizzate una console seriale, dato che l'ammontare delle informzioni sovrascriverà il buffer del log del kernel.

migration_factor

Moltiplica o divide i costi di migration.

migration_factor=percent

Modifica i costi di default di migration alla percentuale specificata. Questa è una opzione di debugging per aumentare o decrementare proporzionalmente i costi di autorilevamento per tutte le entries della migration matrix. Per esempio, migration_factor=150 incrementa i costi di migration del 50 per cento, per cui lo scheduler sarà meno desideroso di migrare le task di cache-hot. migration_factor=80 decrementa i costi di migration del 20 per cento, così rendendo lo scheduler più desideroso di migrare le task. Valori incorretti possono severamente degradare le performance dello scheduler, per cui questa opzione dovrebbe venir usata solo per lo sviluppo dello scheduler, mai per ambienti di produzione.

Opzioni Ramdisk

Queste opzioni controllano come chi immagazzina le informazioni in memoria, che viene usato per simulare i dischi (ramdisk), è fatto, incluso il ramdisk di init che contiene informazioni necessarie ad alcuni stage di booting.

initrd

Locazione del ramdisk iniziale.

initrd=filename

Specifica dove il ramdisk iniziale per il boot del kernel è locato.

load_ramdisk

Carica un kernel ramdisk da floppy

load_ramdisk=n

Se n è impostato a 1, un ramdisk viene caricato dal kernel a boot time dal floppy drive.

noinitrd

Non usare qualsiasi initrd. Non caricare nessun ramdisk iniziale, anche se è configurato in altre opzioni passate al kernel.

prompt_ramdisk

prompt_ramdisk=1

Chiede all'utente quale ramdisk iniziale prima di provare a leggerlo da floppy drive.

ramdisk_blocksize

ramdisk_blocksize=n

Dice al driver di ramdisk quanti byte usare per blocco. La dimensione di default è 1024.

ramdisk_size

Dimensione del ramdisk.

ramdisk_size=n

Specifica la dimensione del ramdisk iniziale in kilobyte. La dimensione di default è 4096 (4 MB). Questa opzione dovrebbe venir usata invece della vecchia opzione da linea di comando ramdisk.

Opzioni del disco di Root

Queste opzioni controllano come il kernel trova e gestisce il filesystem che contiene quello di root.

ro

Esegue il mount del dispositivo di root in "read-only" a boot. Il default del kernel è quello di fare il mount del dispositivo di root come read-only a boot time. Questa opzione assicura che questo sia il modo che il kernel usi. Non tiene conto della opzione da linea di comando di rw, se è stata specificata in precedenza a linea di comando di boot.

root

Specifica da quale filesystem di root fare il boot.

root=device

Dice al kernel su quale dispositivo di disco l'immagine del root filesystem si trova. Il dispositivo può essere specificato in una delle seguenti maniere:

nnnn

Un device number in esadecimale rappresenta il major e minor number del dispositivo nel formato interno che il kernel aspetta. Questo metodo non è raccomandato a meno che abbiate accesso all'inetrno del kernel.

/dev/nfs

Usa il disco NFS specificato da opzione di boot nfsroot come disco di root.

/dev/<diskname>

Usa il nome kernel del disco specificato da <diskname> come disco di root.

/dev/<diskname><decimal>

Usa il nome kernel del disco specificato da <diskname> e la partizione specificata da <decimal> come disco di root. Questo è uguale come sopra, ma è necessario quando <diskname> termina con una cifra.

rootdelay

Tempo di ritardo prima di provare a fare il mount del filesystem di root.

rootdelay=n
Attende n secondi prima di provare a fare il mount del filesystem di root. Questo può essere utile se il filesystem di root è su un dispositivo USB o Firewire, dato che questi dispositivi richiedono un po' di tempo per essere scoperti dal kernel.

rootflags

Le opzioni di mount del filesystem di root.

rootflags=options
Le opzioni di mount che il kernel dovrebbe usare nel fare il mount del filesystem di root. Il valore delle opzioni dipende dal tipo di filesystem; vedere la documentazione per i tipi individuali per i dettagli su cosa sia valido.

rootfstype

Il tipo di filesystem di root.

rootfstype=type
Prova a fare il mount del filesystem di root con questo tipo di filesystem. Per esempio, rootfstype=ext3.

rw

Fa il mount del dispositivo di root in lettura-scrittura al boot. Il default per il kernel è fare il mount del dispositivo di root in sola lettura al boot time. Questa opzione fa il mount del dispositivo di root in lettura-scrittura invece.

Opzioni di Init

Il processo di Init è il primo che viene eseguito dal kernel ed è il progenitore di tutti gli altri processi. Queste opzioni controllano quale programma è eseguito e come viene eseguito.

init

Programma da eseguire a init time.

init=filename
Esegue il binario specificato come processo di init invece del programma di default /sbin/init.

rdinit

Esegue il processo di init dal ramdisk.

rdinit=full_path_name
Esegue il programma specificato da full_path_name come processo di init.

Questo file deve essere sul ramdisk del kernel invece che sul filesystem di root.

S

Esegue init in modalità single-user. Il default per il kernel è di eseguire init in multi-user mode. Questa opzione esegue init invece in modalità single-user.

Opzioni di kexec

Il sotto sistema kexec è una caraterristica specializzata nel reboot che permette un reboot veloce ed è usualmente combinata con la kdump facility che abilita la memoria del kernel precedente per essere scaricata in un posto sicuro per una analisi a posteriori. Queste opzioni modificano i parametri del sottosistema di kexec.

crashkernel

Riserva una porzione di memoria fisica per l'uso di kexec.

crashkernel=n[KMG]@start[KMG]
Il sottosistema di kexec ama avere una porzione di memoria fisica riservata per esso. Questa opzione riserva la memoria dal resto del kernel ed inizierà a usarla se il kernel va in panic. n specifica l'ammontare della memoria da riservare, e start specifica la locazione per per questa parte di memoria. Entrambe sono misurate in unita' di kilobyte (K), megabyte (M), o gigabyte (G).

elfcorehdr

Inizio dell'ELF header dell'immagine di core del kernel.

elfcorhdr=n
Il kernel, come ogni eseguibile Linux, è salvato in formato ELF.

Questa opzione specifica l'indirizzo fisico dove l'ELF header del core dell'immagine del kernel inizia. Questo è usato da kexec per trovare il kernel quando fa il boot l'immagine del kernel secondario.

Opzioni RCU

Read Copy Update (RCU) è una porzione del kernel che gestisce l'esclusione mutuale per una varietà di sottosistemi in maniera "lockless". Ci sono un numero di opzioni che possono essere usate per regolare RCU in modi differenti:

rcu.blimit

RCU batch limit.

rcu.blimit=n
Imposta il numero massimo di callback RCU finite a un processo in un unico batch.

rcu.qhimark

RCU queue high level.

rcu.qhimark=n
Il "Batch limiting" è disabilitato quando il numero di callback accodate si incremnte oltre n.

rcu.qlowmark

RCU queue low level.

rcu.qlowmark=n
Il "Batch limiting" è ri-abilitato quando il numero di callback RCU accodate si decrementa sotto n.

rcu.rsinterva

RCU callback queue length.

rcu.rsinterval=n
Imposta il numero di callback RCU addizionali che dovrebbero essere accodate prima di forzare un "rescheduling" su tutte le CPU.

Opzioni ACPI

Queste opzioni controllano i parametri che il sottosistema Advanced Configuration and Power Interface (ACPI) può usare.

acpi

Opzioni del sottosistema ACPI. acpi=[force|off|noirq|ht|strict] : Questa è l'opzione principale per l'Advanced Configuration and Power Interface (ACPI).

I valori sono: force : Forza l'attivazione dell'ACPI. Può essere usato per non tenere conto della opzione di configurazione del kernel che la disabilita.

off : Disabilita ACPI. Può essere usato per non tenere conto della opzione di configurazione del kernel che lo abilita.

noirq : Impedisce che l'ACPI venga utilizzato per il routing IRQ.

ht : Esegue solo i layer sufficienti di ACPI per attivare l'HyperThreading sui processori che ne hanno la capacità.

strict : Fa si che il layer ACPI sia meno tollerante delle piattaforme che non sono pienamente rispettose delle specifiche ACPI.

acpi_sleep

Opzioni di sleep di ACPI.

acpi_sleep=[s3_bios],[s3_mode]
Durante il resume S3 (che succede dopo che la macchina è stata sospesa nella RAM), l'hardware ha bisogno di venir reinizializzato propriamente.

Per molti dipsositivi ciò è semplice, eccetto per le schede video, che sono normalmente inizializzate dal BIOS. Il kernel non ha sufficienti informazioni per riconfigurare i dispositivi video, perché quell'informazione è nel BIOS e non è accessibile. Questa opzione lascia provare al kernel l'uso del sottosistema ACPI per riconfigurare la scheda video in due modid differenti. Vedere il file Documentation/power/video.txt per maggiori informazioni su questa opzione e come trovare il valore appropriato per il vostro tipo di hardware.

acpi_sci

ACPI System Control Interrupt trigger mode.

acpi_sci=[level|edge|high|low]
Imposta l' ACPI System Control Interrupt trigger mode.

acpi_irq_balance

Abilita il bilanciamento ACPI IRQ. Fa in modo che ACPI bilanci gli IRQ attivi. Questa è la opzione di default quando si lavora in modalita' APIC.

acpi_irq_nobalance

Disabilita il bilanciamento ACPI IRQ. Fa in modo che ACPI non muova gli IRQ attivi. Questa è l'opzione di default quando si opera in modalita' PIC.

acpi_irq_isa

Segna gli IRQ elencati come usati da ISA. acpi_irq_isa=irq[,irq...] : Se l'opzione di bilanciamento degli IRQ è attiva, segna gli IRQ elencati come usati dal sottosistema ISA.

acpi_irq_pci

Segna gli IRQ elencati come usati da PCI.

acpi_irq_pci=irq[,[irq...]
Se l'opzione di bilanciamento degli IRQ è attiva, segna gli IRQ elencati come usati dal sottosistema PCI.

acpi_os_name

Falsica il nome del sistema operativo ad ACPI.

acpi_os_name=name
Dice al BIOS ACPI che il nome del sistema operativo in esecuzione è name. Questo può essere utile per ingannare il BIOS e fargli credere Windows è in esecuzione invece di Linux, il che potrebbe risolvere alcuni problemi ACPI per i BIOS più vecchi. Un esempio, usate la dicitura "Microsoft 2001" p

er ingannare il BIOS e fargli pensare che "Windows 2001" è in esecuzione sulla macchina.

acpi_osi

Disabilita il metodo _OSI ACPI.

acpi_osi=[n]
Attualmente questa è una opzione binaria a dispetto del valore di integer. Se n è assente, ACPI disabiliterà il metodo _OSI. Se n è presente, _OSI non sarà disabilitato.

acpi_serialize

Forza la serializzazione dei metodi ASL. Forza la serializzazione dei metodi ACPI Machine Language.

acpi_skip_timer_override

Salta l'interrupt che non tiene conto dei problemi. Permette al layer ACPI di riconoscere ed ignorare l'interrupt IRQ0/pin2 che non tiene conto dei malfunzionamenti dei BIOS nForce2 che risultano comportarsi male nel timer XT-PIC.

acpi_dbg_layer

ACPI debug layer.

acpi_dbg_layer=n
Imposta i layers di debug. n è un integer nel quale ogni bit indica un differente layer ACPI di debug. Dopo che il sistema è partito, i layer di debug possono venir impostati via file /proc/acpi/debug_layer.

acpi_fake_ecdt

ECDT workaround. Se presente, permette ad ACPI di raggirare i BIOS failure quando gli manca un Embedded Controller Description Table.

acpi_generic_hotkey

Usa il driver generico ACPI hotkey. Autorizza il driver "ACPI consolidated generic hotkey" a non tener conto del driver specifico di piattaforma se uno è presente.

acpi_pm_good

Non tiene conto del controllo del bug di pmtimer. Forza il kernel ad assumere che il valore del pmtimer di macchina sia bloccato e che ritorni sempre dei valori corretti.

ec_intr

Modalità ACPI Embedded Controller interrupt.

ec_intr=n
Specifica la modalità ACPI embedded controller interrupt. Se n è 0, la modalità di "polling" verrà usata, altrimenti la modalità interrupt sarà usata. La modalità interrupt è il default.

memmap

Marca della memoria specifica come dati ACPI.

memmap=n[KMG]#start[KMG]
Marca una locazione specifica e un intervallo di memoria come dati ACPI. n è la misura della locazione di memoria e start è l'inizio della locazione nella memoria dell'intervallo. Entrambe sono misurate in unità di kilobyte (K), megabyte (M), o gigabyte (G).

pnpacpi

Spegne il Plug and Play ACPI.

pnpacpi=off
Disabilita la funzionalità ACPI di Plug and Play.

processor.max_cstate

Limita il processore a un massimo C-state.

processor.max_cstate=n
Limita il processore a un massimo C-state, non importa cosa le tabelle di ACPI dicono che possa supportare. n è un valore valido di C-state. Il valore di 9 non tiene conto di qualsiasi limite di DMI blacklist che potrebbe essere presente per questo processore.

processor.nocst

Ignora il metodo _CST per i C-state. Fa si che il core ACPI ignori il metodo _CST nel determinare i C-state del processore e usi invece il metodo legacy FADT.

Opzioni del Network File System

Queste opzioni controllano lo startup dell'NFS.

lockd.nlm_grace_period

Assegna un grace period al lock manager.

lockd.nlm_grace_period=n
Imposta il grace period per il lock manager. n è misurato in secondi.

lockd.nlm_tcpport

Assegna una porta TCP al lock manager.

lockd.nlm_tcpport=port
Imposta la porta TCP che l'NFS lock manager dovrebbe usare. La porta deve avere un valore di porta TCP valido.

lockd.nlm_timeout

Assegna un nuovo valore di timeout al lock manager.

lockd.nlm_timeout=n
Non considera il valore di default di time per l'NFS lock manager. n è misurato in secondi. Se questa opzione non è specificata, il default di 10 secondi verrà usato.

lockd.nlm_udpport

Assegna una porta UDP al lock manager.

lockd.nlm_udpport=port
Imposta la porta UDP che l'NFS lock manager dovrebbe usare. La porta deve avere un valore di porta UDP valido.

nfsroot

Specifica l'NFS root filesystem.

nfsroot=[server-ip:]root-dir[,nfs-options]
Imposta l'NFS filesystem di root per i sistemi senza disco, per abilitarli a fare il boot correttamente con NFS. Se questo parametro non è impostato, il valore di /tftp-boot/client_ip_address verrà utilizzato come filesystem di root con le opzioni di default di NFS.

server-ip : ndirizzo ip del server NFS a cui connettersi.

root-dir : Directory sul server NFS dove fare il mount del root. Se c'è un gettone %s in questa string, verrà rimpiazzato con la rappresentazione ASCII dell'indirizzo IP del client.

nfs-options : Le opzioni standard di NFS, quali ro, separate da virgola.

nfs.callback_tcpport

Imposta la porta TCP di NFSv4 per il canale di callback.

nfs.callback_tcpport=port
Specifica la porta TCP di NFSv4 su cui il canale di callback dovrebbe ascoltare. La porta deve essere un valore valido di porta TCP.

nfs.idmap_cache_timeout

Imposta il massimo tempo di vita per le voci di cache idmapper.

nfs.idmap_cache_timeout=n
Specifica il massimo tempo di vita per le voci di cache idmapper. n è misurato in secondi.

Opzioni specifiche per l'hardware

Queste opzioni specificano differenti parametri, che dipendono dall'hardware presenti nel sistema.

è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.


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.


Capitolo originale