19b9355a2SAndrew Clayton.. _kernelparameters:
29b9355a2SAndrew Clayton
37358bb2fSJonathan CorbetThe kernel's command-line parameters
47358bb2fSJonathan Corbet====================================
59d85025bSMauro Carvalho Chehab
69d85025bSMauro Carvalho ChehabThe following is a consolidated list of the kernel parameters as
79d85025bSMauro Carvalho Chehabimplemented by the __setup(), core_param() and module_param() macros
89d85025bSMauro Carvalho Chehaband sorted into English Dictionary order (defined as ignoring all
99d85025bSMauro Carvalho Chehabpunctuation and sorting digits before letters in a case insensitive
109d85025bSMauro Carvalho Chehabmanner), and with descriptions where known.
119d85025bSMauro Carvalho Chehab
1262ee81b5SStephen KittThe kernel parses parameters from the kernel command line up to "``--``";
139d85025bSMauro Carvalho Chehabif it doesn't recognize a parameter and it doesn't contain a '.', the
149d85025bSMauro Carvalho Chehabparameter gets passed to init: parameters with '=' go into init's
159d85025bSMauro Carvalho Chehabenvironment, others are passed as command line arguments to init.
1662ee81b5SStephen KittEverything after "``--``" is passed as an argument to init.
179d85025bSMauro Carvalho Chehab
189d85025bSMauro Carvalho ChehabModule parameters can be specified in two ways: via the kernel command
199d85025bSMauro Carvalho Chehabline with a module name prefix, or via modprobe, e.g.::
209d85025bSMauro Carvalho Chehab
219d85025bSMauro Carvalho Chehab	(kernel command line) usbcore.blinkenlights=1
229d85025bSMauro Carvalho Chehab	(modprobe command line) modprobe usbcore blinkenlights=1
239d85025bSMauro Carvalho Chehab
249d85025bSMauro Carvalho ChehabParameters for modules which are built into the kernel need to be
259d85025bSMauro Carvalho Chehabspecified on the kernel command line.  modprobe looks through the
269d85025bSMauro Carvalho Chehabkernel command line (/proc/cmdline) and collects module parameters
279d85025bSMauro Carvalho Chehabwhen it loads a module, so the kernel command line can be used for
289d85025bSMauro Carvalho Chehabloadable modules too.
299d85025bSMauro Carvalho Chehab
309d85025bSMauro Carvalho ChehabHyphens (dashes) and underscores are equivalent in parameter names, so::
319d85025bSMauro Carvalho Chehab
329d85025bSMauro Carvalho Chehab	log_buf_len=1M print-fatal-signals=1
339d85025bSMauro Carvalho Chehab
349d85025bSMauro Carvalho Chehabcan also be entered as::
359d85025bSMauro Carvalho Chehab
369d85025bSMauro Carvalho Chehab	log-buf-len=1M print_fatal_signals=1
379d85025bSMauro Carvalho Chehab
389d85025bSMauro Carvalho ChehabDouble-quotes can be used to protect spaces in values, e.g.::
399d85025bSMauro Carvalho Chehab
409d85025bSMauro Carvalho Chehab	param="spaces in here"
419d85025bSMauro Carvalho Chehab
429d85025bSMauro Carvalho Chehabcpu lists:
439d85025bSMauro Carvalho Chehab----------
449d85025bSMauro Carvalho Chehab
459d85025bSMauro Carvalho ChehabSome kernel parameters take a list of CPUs as a value, e.g.  isolcpus,
469d85025bSMauro Carvalho Chehabnohz_full, irqaffinity, rcu_nocbs.  The format of this list is:
479d85025bSMauro Carvalho Chehab
489d85025bSMauro Carvalho Chehab	<cpu number>,...,<cpu number>
499d85025bSMauro Carvalho Chehab
509d85025bSMauro Carvalho Chehabor
519d85025bSMauro Carvalho Chehab
529d85025bSMauro Carvalho Chehab	<cpu number>-<cpu number>
539d85025bSMauro Carvalho Chehab	(must be a positive range in ascending order)
549d85025bSMauro Carvalho Chehab
559d85025bSMauro Carvalho Chehabor a mixture
569d85025bSMauro Carvalho Chehab
579d85025bSMauro Carvalho Chehab<cpu number>,...,<cpu number>-<cpu number>
589d85025bSMauro Carvalho Chehab
599d85025bSMauro Carvalho ChehabNote that for the special case of a range one can split the range into equal
609d85025bSMauro Carvalho Chehabsized groups and for each group use some amount from the beginning of that
619d85025bSMauro Carvalho Chehabgroup:
629d85025bSMauro Carvalho Chehab
639d85025bSMauro Carvalho Chehab	<cpu number>-cpu number>:<used size>/<group size>
649d85025bSMauro Carvalho Chehab
659d85025bSMauro Carvalho ChehabFor example one can add to the command line following parameter:
669d85025bSMauro Carvalho Chehab
679d85025bSMauro Carvalho Chehab	isolcpus=1,2,10-20,100-2000:2/25
689d85025bSMauro Carvalho Chehab
699d85025bSMauro Carvalho Chehabwhere the final item represents CPUs 100,101,125,126,150,151,...
709d85025bSMauro Carvalho Chehab
719d85025bSMauro Carvalho Chehab
729d85025bSMauro Carvalho Chehab
739d85025bSMauro Carvalho ChehabThis document may not be entirely up to date and comprehensive. The command
749d85025bSMauro Carvalho Chehab"modinfo -p ${modulename}" shows a current list of all parameters of a loadable
759d85025bSMauro Carvalho Chehabmodule. Loadable modules, after being loaded into the running kernel, also
769d85025bSMauro Carvalho Chehabreveal their parameters in /sys/module/${modulename}/parameters/. Some of these
779d85025bSMauro Carvalho Chehabparameters may be changed at runtime by the command
789d85025bSMauro Carvalho Chehab``echo -n ${value} > /sys/module/${modulename}/parameters/${parm}``.
799d85025bSMauro Carvalho Chehab
809d85025bSMauro Carvalho ChehabThe parameters listed below are only valid if certain kernel build options were
819d85025bSMauro Carvalho Chehabenabled and if respective hardware is present. The text in square brackets at
829d85025bSMauro Carvalho Chehabthe beginning of each description states the restrictions within which a
839d85025bSMauro Carvalho Chehabparameter is applicable::
849d85025bSMauro Carvalho Chehab
859d85025bSMauro Carvalho Chehab	ACPI	ACPI support is enabled.
869d85025bSMauro Carvalho Chehab	AGP	AGP (Accelerated Graphics Port) is enabled.
879d85025bSMauro Carvalho Chehab	ALSA	ALSA sound support is enabled.
889d85025bSMauro Carvalho Chehab	APIC	APIC support is enabled.
899d85025bSMauro Carvalho Chehab	APM	Advanced Power Management support is enabled.
909d85025bSMauro Carvalho Chehab	ARM	ARM architecture is enabled.
914ad499c9SJosh Poimboeuf	ARM64	ARM64 architecture is enabled.
929d85025bSMauro Carvalho Chehab	AX25	Appropriate AX.25 support is enabled.
939d85025bSMauro Carvalho Chehab	CLK	Common clock infrastructure is enabled.
949d85025bSMauro Carvalho Chehab	CMA	Contiguous Memory Area support is enabled.
959d85025bSMauro Carvalho Chehab	DRM	Direct Rendering Management support is enabled.
969d85025bSMauro Carvalho Chehab	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
979d85025bSMauro Carvalho Chehab	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
989d85025bSMauro Carvalho Chehab	EFI	EFI Partitioning (GPT) is enabled
999d85025bSMauro Carvalho Chehab	EIDE	EIDE/ATAPI support is enabled.
1009d85025bSMauro Carvalho Chehab	EVM	Extended Verification Module
1019d85025bSMauro Carvalho Chehab	FB	The frame buffer device is enabled.
1029d85025bSMauro Carvalho Chehab	FTRACE	Function tracing enabled.
1039d85025bSMauro Carvalho Chehab	GCOV	GCOV profiling is enabled.
1049d85025bSMauro Carvalho Chehab	HW	Appropriate hardware is enabled.
1059d85025bSMauro Carvalho Chehab	IA-64	IA-64 architecture is enabled.
1069d85025bSMauro Carvalho Chehab	IMA     Integrity measurement architecture is enabled.
1079d85025bSMauro Carvalho Chehab	IOSCHED	More than one I/O scheduler is enabled.
1089d85025bSMauro Carvalho Chehab	IP_PNP	IP DHCP, BOOTP, or RARP is enabled.
1099d85025bSMauro Carvalho Chehab	IPV6	IPv6 support is enabled.
1109d85025bSMauro Carvalho Chehab	ISAPNP	ISA PnP code is enabled.
1119d85025bSMauro Carvalho Chehab	ISDN	Appropriate ISDN support is enabled.
112d94d1053SFrederic Weisbecker	ISOL	CPU Isolation is enabled.
1139d85025bSMauro Carvalho Chehab	JOY	Appropriate joystick support is enabled.
1149d85025bSMauro Carvalho Chehab	KGDB	Kernel debugger support is enabled.
1159d85025bSMauro Carvalho Chehab	KVM	Kernel Virtual Machine support is enabled.
1169d85025bSMauro Carvalho Chehab	LIBATA  Libata driver is enabled
1179d85025bSMauro Carvalho Chehab	LP	Printer support is enabled.
1189d85025bSMauro Carvalho Chehab	LOOP	Loopback device support is enabled.
1199d85025bSMauro Carvalho Chehab	M68k	M68k architecture is enabled.
1209d85025bSMauro Carvalho Chehab			These options have more detailed description inside of
1219d85025bSMauro Carvalho Chehab			Documentation/m68k/kernel-options.txt.
1229d85025bSMauro Carvalho Chehab	MDA	MDA console support is enabled.
1239d85025bSMauro Carvalho Chehab	MIPS	MIPS architecture is enabled.
1249d85025bSMauro Carvalho Chehab	MOUSE	Appropriate mouse support is enabled.
1259d85025bSMauro Carvalho Chehab	MSI	Message Signaled Interrupts (PCI).
1269d85025bSMauro Carvalho Chehab	MTD	MTD (Memory Technology Device) support is enabled.
1279d85025bSMauro Carvalho Chehab	NET	Appropriate network support is enabled.
1289d85025bSMauro Carvalho Chehab	NUMA	NUMA support is enabled.
1299d85025bSMauro Carvalho Chehab	NFS	Appropriate NFS support is enabled.
1309d85025bSMauro Carvalho Chehab	OSS	OSS sound support is enabled.
1319d85025bSMauro Carvalho Chehab	PV_OPS	A paravirtualized kernel is enabled.
1329d85025bSMauro Carvalho Chehab	PARIDE	The ParIDE (parallel port IDE) subsystem is enabled.
1339d85025bSMauro Carvalho Chehab	PARISC	The PA-RISC architecture is enabled.
1349d85025bSMauro Carvalho Chehab	PCI	PCI bus support is enabled.
1359d85025bSMauro Carvalho Chehab	PCIE	PCI Express support is enabled.
1369d85025bSMauro Carvalho Chehab	PCMCIA	The PCMCIA subsystem is enabled.
1379d85025bSMauro Carvalho Chehab	PNP	Plug & Play support is enabled.
1389d85025bSMauro Carvalho Chehab	PPC	PowerPC architecture is enabled.
1399d85025bSMauro Carvalho Chehab	PPT	Parallel port support is enabled.
1409d85025bSMauro Carvalho Chehab	PS2	Appropriate PS/2 support is enabled.
1419d85025bSMauro Carvalho Chehab	RAM	RAM disk support is enabled.
1421d9807fcSTony Luck	RDT	Intel Resource Director Technology.
1439d85025bSMauro Carvalho Chehab	S390	S390 architecture is enabled.
1449d85025bSMauro Carvalho Chehab	SCSI	Appropriate SCSI support is enabled.
1459d85025bSMauro Carvalho Chehab			A lot of drivers have their options described inside
1469d85025bSMauro Carvalho Chehab			the Documentation/scsi/ sub-directory.
1479d85025bSMauro Carvalho Chehab	SECURITY Different security models are enabled.
1489d85025bSMauro Carvalho Chehab	SELINUX SELinux support is enabled.
1499d85025bSMauro Carvalho Chehab	APPARMOR AppArmor support is enabled.
1509d85025bSMauro Carvalho Chehab	SERIAL	Serial support is enabled.
1519d85025bSMauro Carvalho Chehab	SH	SuperH architecture is enabled.
1529d85025bSMauro Carvalho Chehab	SMP	The kernel is an SMP kernel.
1539d85025bSMauro Carvalho Chehab	SPARC	Sparc architecture is enabled.
1549d85025bSMauro Carvalho Chehab	SWSUSP	Software suspend (hibernation) is enabled.
1559d85025bSMauro Carvalho Chehab	SUSPEND	System suspend states are enabled.
1569d85025bSMauro Carvalho Chehab	TPM	TPM drivers are enabled.
1579d85025bSMauro Carvalho Chehab	TS	Appropriate touchscreen support is enabled.
1589d85025bSMauro Carvalho Chehab	UMS	USB Mass Storage support is enabled.
1599d85025bSMauro Carvalho Chehab	USB	USB support is enabled.
1609d85025bSMauro Carvalho Chehab	USBHID	USB Human Interface Device support is enabled.
1619d85025bSMauro Carvalho Chehab	V4L	Video For Linux support is enabled.
1629d85025bSMauro Carvalho Chehab	VMMIO   Driver for memory mapped virtio devices is enabled.
1639d85025bSMauro Carvalho Chehab	VGA	The VGA console has been enabled.
1649d85025bSMauro Carvalho Chehab	VT	Virtual terminal support is enabled.
1659d85025bSMauro Carvalho Chehab	WDT	Watchdog support is enabled.
1669d85025bSMauro Carvalho Chehab	XT	IBM PC/XT MFM hard disk support is enabled.
1679d85025bSMauro Carvalho Chehab	X86-32	X86-32, aka i386 architecture is enabled.
1689d85025bSMauro Carvalho Chehab	X86-64	X86-64 architecture is enabled.
1699d85025bSMauro Carvalho Chehab			More X86-64 boot options can be found in
170cb1aaebeSMauro Carvalho Chehab			Documentation/x86/x86_64/boot-options.rst.
1719d85025bSMauro Carvalho Chehab	X86	Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
1729d85025bSMauro Carvalho Chehab	X86_UV	SGI UV support is enabled.
1739d85025bSMauro Carvalho Chehab	XEN	Xen support is enabled
1749d85025bSMauro Carvalho Chehab
1759d85025bSMauro Carvalho ChehabIn addition, the following text indicates that the option::
1769d85025bSMauro Carvalho Chehab
1779d85025bSMauro Carvalho Chehab	BUGS=	Relates to possible processor bugs on the said processor.
1789d85025bSMauro Carvalho Chehab	KNL	Is a kernel start-up parameter.
1799d85025bSMauro Carvalho Chehab	BOOT	Is a boot loader parameter.
1809d85025bSMauro Carvalho Chehab
1819d85025bSMauro Carvalho ChehabParameters denoted with BOOT are actually interpreted by the boot
1829d85025bSMauro Carvalho Chehabloader, and have no meaning to the kernel directly.
1839d85025bSMauro Carvalho ChehabDo not modify the syntax of boot loader parameters without extreme
184cb1aaebeSMauro Carvalho Chehabneed or coordination with <Documentation/x86/boot.rst>.
1859d85025bSMauro Carvalho Chehab
1869d85025bSMauro Carvalho ChehabThere are also arch-specific kernel-parameters not documented here.
187cb1aaebeSMauro Carvalho ChehabSee for example <Documentation/x86/x86_64/boot-options.rst>.
1889d85025bSMauro Carvalho Chehab
1899d85025bSMauro Carvalho ChehabNote that ALL kernel parameters listed below are CASE SENSITIVE, and that
1909d85025bSMauro Carvalho Chehaba trailing = on the name of any parameter states that that parameter will
1919d85025bSMauro Carvalho Chehabbe entered as an environment variable, whereas its absence indicates that
1929d85025bSMauro Carvalho Chehabit will appear as a kernel argument readable via /proc/cmdline by programs
1939d85025bSMauro Carvalho Chehabrunning once the system is up.
1949d85025bSMauro Carvalho Chehab
1959d85025bSMauro Carvalho ChehabThe number of kernel parameters is not limited, but the length of the
1969d85025bSMauro Carvalho Chehabcomplete command line (parameters including spaces etc.) is limited to
1979d85025bSMauro Carvalho Chehaba fixed number of characters. This limit depends on the architecture
1989d85025bSMauro Carvalho Chehaband is between 256 and 4096 characters. It is defined in the file
1999d85025bSMauro Carvalho Chehab./include/asm/setup.h as COMMAND_LINE_SIZE.
2009d85025bSMauro Carvalho Chehab
2019d85025bSMauro Carvalho ChehabFinally, the [KMG] suffix is commonly described after a number of kernel
2029d85025bSMauro Carvalho Chehabparameter values. These 'K', 'M', and 'G' letters represent the _binary_
2039f02a486STamara Diaconitamultipliers 'Kilo', 'Mega', and 'Giga', equaling 2^10, 2^20, and 2^30
204e52347bdSJani Nikulabytes respectively. Such letter suffixes can also be entirely omitted:
2059d85025bSMauro Carvalho Chehab
206e52347bdSJani Nikula.. include:: kernel-parameters.txt
207e52347bdSJani Nikula   :literal:
2089d85025bSMauro Carvalho Chehab
2099d85025bSMauro Carvalho ChehabTodo
2109d85025bSMauro Carvalho Chehab----
2119d85025bSMauro Carvalho Chehab
2129d85025bSMauro Carvalho Chehab	Add more DRM drivers.
213