Parámetros para la línea de comandos del kernel

Los siguientes, son una lista consolidada de parámetros del núcleo implementados por las funciones(macros) __setup(), core_param() y module_param(). Han sido ordenadas alfabéticamente siguiendo el orden del alfabeto Inglés.

El núcleo analiza los parámetros desde la línea de comandos hasta encontrar --; si no reconoce el parámetro y no contiene un ., el parámetro es pasado a init: parámetros con = van al entorno de init, otros son pasados como argumentos de la línea de comandos a init.

Los parámetros de módulos, pueden ser especificados de dos formas: via línea de comandos con un prefijo de nombre de módulo, o via modprobe, ejem.

(línea de comandos kernel) usbcore.blinkenlights=1
(líne de comandos modprobe)modprobe usbcore blinkenlights=1

Los parámetros para módulos, los cuales están construidos dentro del núcleo, necesitan ser especificados en la línea de comandos kernel. modprobe busca a través de la línea de comandos kernel (/proc/cmdline) y recoge los parámetros de los módulos cuando lee uno, así que la línea de comandos kernel, puede usarse para cargar módulos también.

Los guiones - y guión bajo _ son equivalentes en los nombres de parámetros, así:

log_buf_len=1M print-fatal-signals=1

puede intrerpretarse igual que:

log-buf-len=1M print_fatal_signals=1

Las dobles comillas ", son usadas para proteger espacios en valores:

param="spaces in here"

parser: analizador de sentencias.

Listas de CPU

Algunos parámetros del kernel toman una lista de CPUs como valor ejem. isolcpu, nohz_full, irqaffinity, rcu_nocbs. El formato de estas listas es:

<cpu number>,....,<cpu number>

ó

<cpu number>-<cpu number>
(debe ser un rango positivo en orden ascendente)

ó una mezcla

<cpu number>,...,<cpu number>-<cpu number>

Nótese, que para el caso especial de un rango, podría separarse el rango en dos grupos de igual tamaño y, para cada grupo, usar cierta cantidad desde el comienzo de ese grupo:

<cpu number>-cpu number>:<used size>/<group size>

Por ejemplo, uno podría añadir el siguiente parámetro a la línea de comandos:

isolcpus=1,2,10-20,100-2000:2/25

Donde el objeto final, representa CPUs 100,101,125,126,150,151,…

El comando modinfo $(modulName) muestra una lista actualizada de todos los parámetros de un módulo cargable. Los módulos cargables, después de ser cargados dentro del kernel en carrera, también revelarán sus parámetros desde /sys/module/$(modulname)/parameters/$(parm).

Los parámetros listados más abajo, sólo son válidos si ciertas opciones de núcleo, fueron activadas y, si cierto hardware está presente. El texto entre corchetes [] al principio de cada descripción, establece las restricciones en el que es aplicable un parámetro:

ACPI    activado soporte para ACPI
AGP AGP (Accelerated Graphics Port) is enabled.
ALSA    ALSA sound support is enabled.
APIC    APIC support is enabled.
APM Advanced Power Management support is enabled.
ARM ARM architecture is enabled.
AX25    Appropriate AX.25 support is enabled.
BLACKFIN Blackfin architecture is enabled.
CLK Common clock infrastructure is enabled.
CMA Contiguous Memory Area support is enabled.
DRM Direct Rendering Management support is enabled.
DYNAMIC_DEBUG Build in debug messages and enable them at runtime
EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
EFI EFI Partitioning (GPT) is enabled
EIDE    EIDE/ATAPI support is enabled.
EVM Extended Verification Module
FB  The frame buffer device is enabled.
FTRACE  Function tracing enabled.
GCOV    GCOV profiling is enabled.
HW  Appropriate hardware is enabled.
IA-64   IA-64 architecture is enabled.
IMA Integrity measurement architecture is enabled.
IOSCHED More than one I/O scheduler is enabled.
IP_PNP  IP DHCP, BOOTP, or RARP is enabled.
IPV6    IPv6 support is enabled.
ISAPNP  ISA PnP code is enabled.
ISDN    Appropriate ISDN support is enabled.
JOY Appropriate joystick support is enabled.
KGDB    Kernel debugger support is enabled.
KVM Kernel Virtual Machine support is enabled.
LIBATALibata driver is enabled
LP  Printer support is enabled.
LOOP    Loopback device support is enabled.
M68k    M68k architecture is enabled.
        These options have more detailed description inside of
        Documentation/m68k/kernel-options.txt.
MDA MDA console support is enabled.
MIPS    MIPS architecture is enabled.
MOUSE   Appropriate mouse support is enabled.
MSI Message Signaled Interrupts (PCI).
MTD MTD (Memory Technology Device) support is enabled.
NET Appropriate network support is enabled.
NUMA    NUMA support is enabled.
NFS Appropriate NFS support is enabled.
OSS OSS sound support is enabled.
PV_OPS  A paravirtualized kernel is enabled.
PARIDE  The ParIDE (parallel port IDE) subsystem is enabled.
PARISC  The PA-RISC architecture is enabled.
PCI PCI bus support is enabled.
PCIE    PCI Express support is enabled.
PCMCIA  The PCMCIA subsystem is enabled.
PNP Plug & Play support is enabled.
PPC PowerPC architecture is enabled.
PPT Parallel port support is enabled.
PS2 Appropriate PS/2 support is enabled.
RAM RAM disk support is enabled.
RDT Intel Resource Director Technology.
S390    S390 architecture is enabled.
SCSI    Appropriate SCSI support is enabled.
        A lot of drivers have their options described inside
        the Documentation/scsi/ sub-directory.
SECURITY Different security models are enabled.
SELINUX SELinux support is enabled.
APPARMOR AppArmor support is enabled.
SERIAL  Serial support is enabled.
SH  SuperH architecture is enabled.
SMP The kernel is an SMP kernel.
SPARC   Sparc architecture is enabled.
SWSUSP  Software suspend (hibernation) is enabled.
SUSPEND System suspend states are enabled.
TPM TPM drivers are enabled.
TS  Appropriate touchscreen support is enabled.
UMS USB Mass Storage support is enabled.
USB USB support is enabled.
USBHID  USB Human Interface Device support is enabled.
V4L Video For Linux support is enabled.
VMMIO Driver for memory mapped virtio devices is enabled.
VGA The VGA console has been enabled.
VT  Virtual terminal support is enabled.
WDT Watchdog support is enabled.
XT  IBM PC/XT MFM hard disk support is enabled.
X86-32  X86-32, aka i386 architecture is enabled.
X86-64  X86-64 architecture is enabled.
        More X86-64 boot options can be found in
        Documentation/x86/x86_64/boot-options.txt .
X86 Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
X86_UV  SGI UV support is enabled.
XEN Xen support is enabled

El siguiente texto explica otras opciones:

BUGS=   Relacionado con posibles errores(bugs) del procesador, en dicho procesador.

KNL es un parámetro de arranque del kernel
BOOT    es un parámetro del gestor de arranque

Los parámetros marcados con BOOT son de hecho, interpretados por el gestor de arranque, y no tienen un significado directo para el kernel.

Warning

No modificar la sintaxis de los parámetros del gestor de arranque, sin una necesidad extrema o sin ser coordinados con la documentación aportada en:

<Documentacion>$plataforma/boot.txt

Nótese que todos los parámetros del kernel listados más abajoDoc, hacen distinción entre mayúsculas o no. El símbolo = en el nombre de stado de un parámetro, será entrado como variable de entorno, donde su ausencia indica que aparecerá como argumente del kernel leíble via /proc/cmdline por los programas en carrera, una vez el sistema este en marcha.

El número de parámetros del núcleo, no es límitado, pero su longitud lo está, a un número fijo de carácteres. Éste límite depende de la arquitectura y, está comprendida entre 256 y 4096 carácteres. Definido en el archivo ./include/asm/setup.h como COMMAND_LINE_SIZE.

Finalmente, el sufijo [KMG] es comunmente descrito después de un número de valores de parámetro. Éstas letras ‘K’, ‘M’ y ‘G’, representan el multiplicador Kilo, Mega, Giga, iguales a 2^10, 2^20, and 2^30, bytes respectivamente. Estos sufjos de letras, podrán ser omitidos completamente.

Éste documento podría no estar completamente actualizado. Efestivamente, no hay corchetes. La lista de parámetros está copiada, tal y como el traductor la encontró al descargar la fuente.

Referencias y agradecimientos

Documentación extraida de la fuente del núcleo de linux. documentación: kernel-parameters.txt