162306a36Sopenharmony_ci.. _kernelparameters:
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciThe kernel's command-line parameters
462306a36Sopenharmony_ci====================================
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciThe following is a consolidated list of the kernel parameters as implemented
762306a36Sopenharmony_ciby the __setup(), early_param(), core_param() and module_param() macros
862306a36Sopenharmony_ciand sorted into English Dictionary order (defined as ignoring all
962306a36Sopenharmony_cipunctuation and sorting digits before letters in a case insensitive
1062306a36Sopenharmony_cimanner), and with descriptions where known.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciThe kernel parses parameters from the kernel command line up to "``--``";
1362306a36Sopenharmony_ciif it doesn't recognize a parameter and it doesn't contain a '.', the
1462306a36Sopenharmony_ciparameter gets passed to init: parameters with '=' go into init's
1562306a36Sopenharmony_cienvironment, others are passed as command line arguments to init.
1662306a36Sopenharmony_ciEverything after "``--``" is passed as an argument to init.
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciModule parameters can be specified in two ways: via the kernel command
1962306a36Sopenharmony_ciline with a module name prefix, or via modprobe, e.g.::
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	(kernel command line) usbcore.blinkenlights=1
2262306a36Sopenharmony_ci	(modprobe command line) modprobe usbcore blinkenlights=1
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciParameters for modules which are built into the kernel need to be
2562306a36Sopenharmony_cispecified on the kernel command line.  modprobe looks through the
2662306a36Sopenharmony_cikernel command line (/proc/cmdline) and collects module parameters
2762306a36Sopenharmony_ciwhen it loads a module, so the kernel command line can be used for
2862306a36Sopenharmony_ciloadable modules too.
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciHyphens (dashes) and underscores are equivalent in parameter names, so::
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	log_buf_len=1M print-fatal-signals=1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cican also be entered as::
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci	log-buf-len=1M print_fatal_signals=1
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciDouble-quotes can be used to protect spaces in values, e.g.::
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	param="spaces in here"
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_cicpu lists:
4362306a36Sopenharmony_ci----------
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciSome kernel parameters take a list of CPUs as a value, e.g.  isolcpus,
4662306a36Sopenharmony_cinohz_full, irqaffinity, rcu_nocbs.  The format of this list is:
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	<cpu number>,...,<cpu number>
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_cior
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci	<cpu number>-<cpu number>
5362306a36Sopenharmony_ci	(must be a positive range in ascending order)
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_cior a mixture
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci<cpu number>,...,<cpu number>-<cpu number>
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciNote that for the special case of a range one can split the range into equal
6062306a36Sopenharmony_cisized groups and for each group use some amount from the beginning of that
6162306a36Sopenharmony_cigroup:
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	<cpu number>-<cpu number>:<used size>/<group size>
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciFor example one can add to the command line following parameter:
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	isolcpus=1,2,10-20,100-2000:2/25
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ciwhere the final item represents CPUs 100,101,125,126,150,151,...
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciThe value "N" can be used to represent the numerically last CPU on the system,
7262306a36Sopenharmony_cii.e "foo_cpus=16-N" would be equivalent to "16-31" on a 32 core system.
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciKeep in mind that "N" is dynamic, so if system changes cause the bitmap width
7562306a36Sopenharmony_cito change, such as less cores in the CPU list, then N and any ranges using N
7662306a36Sopenharmony_ciwill also change.  Use the same on a small 4 core system, and "16-N" becomes
7762306a36Sopenharmony_ci"16-3" and now the same boot input will be flagged as invalid (start > end).
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciThe special case-tolerant group name "all" has a meaning of selecting all CPUs,
8062306a36Sopenharmony_ciso that "nohz_full=all" is the equivalent of "nohz_full=0-N".
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciThe semantics of "N" and "all" is supported on a level of bitmaps and holds for
8362306a36Sopenharmony_ciall users of bitmap_parselist().
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciThis document may not be entirely up to date and comprehensive. The command
8662306a36Sopenharmony_ci"modinfo -p ${modulename}" shows a current list of all parameters of a loadable
8762306a36Sopenharmony_cimodule. Loadable modules, after being loaded into the running kernel, also
8862306a36Sopenharmony_cireveal their parameters in /sys/module/${modulename}/parameters/. Some of these
8962306a36Sopenharmony_ciparameters may be changed at runtime by the command
9062306a36Sopenharmony_ci``echo -n ${value} > /sys/module/${modulename}/parameters/${parm}``.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciThe parameters listed below are only valid if certain kernel build options
9362306a36Sopenharmony_ciwere enabled and if respective hardware is present. This list should be kept
9462306a36Sopenharmony_ciin alphabetical order. The text in square brackets at the beginning
9562306a36Sopenharmony_ciof each description states the restrictions within which a parameter
9662306a36Sopenharmony_ciis applicable::
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci	ACPI	ACPI support is enabled.
9962306a36Sopenharmony_ci	AGP	AGP (Accelerated Graphics Port) is enabled.
10062306a36Sopenharmony_ci	ALSA	ALSA sound support is enabled.
10162306a36Sopenharmony_ci	APIC	APIC support is enabled.
10262306a36Sopenharmony_ci	APM	Advanced Power Management support is enabled.
10362306a36Sopenharmony_ci	APPARMOR AppArmor support is enabled.
10462306a36Sopenharmony_ci	ARM	ARM architecture is enabled.
10562306a36Sopenharmony_ci	ARM64	ARM64 architecture is enabled.
10662306a36Sopenharmony_ci	AX25	Appropriate AX.25 support is enabled.
10762306a36Sopenharmony_ci	CLK	Common clock infrastructure is enabled.
10862306a36Sopenharmony_ci	CMA	Contiguous Memory Area support is enabled.
10962306a36Sopenharmony_ci	DRM	Direct Rendering Management support is enabled.
11062306a36Sopenharmony_ci	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
11162306a36Sopenharmony_ci	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
11262306a36Sopenharmony_ci	EFI	EFI Partitioning (GPT) is enabled
11362306a36Sopenharmony_ci	EVM	Extended Verification Module
11462306a36Sopenharmony_ci	FB	The frame buffer device is enabled.
11562306a36Sopenharmony_ci	FTRACE	Function tracing enabled.
11662306a36Sopenharmony_ci	GCOV	GCOV profiling is enabled.
11762306a36Sopenharmony_ci	HIBERNATION HIBERNATION is enabled.
11862306a36Sopenharmony_ci	HW	Appropriate hardware is enabled.
11962306a36Sopenharmony_ci	HYPER_V HYPERV support is enabled.
12062306a36Sopenharmony_ci	IA-64	IA-64 architecture is enabled.
12162306a36Sopenharmony_ci	IMA     Integrity measurement architecture is enabled.
12262306a36Sopenharmony_ci	IP_PNP	IP DHCP, BOOTP, or RARP is enabled.
12362306a36Sopenharmony_ci	IPV6	IPv6 support is enabled.
12462306a36Sopenharmony_ci	ISAPNP	ISA PnP code is enabled.
12562306a36Sopenharmony_ci	ISDN	Appropriate ISDN support is enabled.
12662306a36Sopenharmony_ci	ISOL	CPU Isolation is enabled.
12762306a36Sopenharmony_ci	JOY	Appropriate joystick support is enabled.
12862306a36Sopenharmony_ci	KGDB	Kernel debugger support is enabled.
12962306a36Sopenharmony_ci	KVM	Kernel Virtual Machine support is enabled.
13062306a36Sopenharmony_ci	LIBATA  Libata driver is enabled
13162306a36Sopenharmony_ci	LOONGARCH LoongArch architecture is enabled.
13262306a36Sopenharmony_ci	LOOP	Loopback device support is enabled.
13362306a36Sopenharmony_ci	LP	Printer support is enabled.
13462306a36Sopenharmony_ci	M68k	M68k architecture is enabled.
13562306a36Sopenharmony_ci			These options have more detailed description inside of
13662306a36Sopenharmony_ci			Documentation/arch/m68k/kernel-options.rst.
13762306a36Sopenharmony_ci	MDA	MDA console support is enabled.
13862306a36Sopenharmony_ci	MIPS	MIPS architecture is enabled.
13962306a36Sopenharmony_ci	MOUSE	Appropriate mouse support is enabled.
14062306a36Sopenharmony_ci	MSI	Message Signaled Interrupts (PCI).
14162306a36Sopenharmony_ci	MTD	MTD (Memory Technology Device) support is enabled.
14262306a36Sopenharmony_ci	NET	Appropriate network support is enabled.
14362306a36Sopenharmony_ci	NFS	Appropriate NFS support is enabled.
14462306a36Sopenharmony_ci	NUMA	NUMA support is enabled.
14562306a36Sopenharmony_ci	OF	Devicetree is enabled.
14662306a36Sopenharmony_ci	PARISC	The PA-RISC architecture is enabled.
14762306a36Sopenharmony_ci	PCI	PCI bus support is enabled.
14862306a36Sopenharmony_ci	PCIE	PCI Express support is enabled.
14962306a36Sopenharmony_ci	PCMCIA	The PCMCIA subsystem is enabled.
15062306a36Sopenharmony_ci	PNP	Plug & Play support is enabled.
15162306a36Sopenharmony_ci	PPC	PowerPC architecture is enabled.
15262306a36Sopenharmony_ci	PPT	Parallel port support is enabled.
15362306a36Sopenharmony_ci	PS2	Appropriate PS/2 support is enabled.
15462306a36Sopenharmony_ci	PV_OPS	A paravirtualized kernel is enabled.
15562306a36Sopenharmony_ci	RAM	RAM disk support is enabled.
15662306a36Sopenharmony_ci	RDT	Intel Resource Director Technology.
15762306a36Sopenharmony_ci	RISCV	RISCV architecture is enabled.
15862306a36Sopenharmony_ci	S390	S390 architecture is enabled.
15962306a36Sopenharmony_ci	SCSI	Appropriate SCSI support is enabled.
16062306a36Sopenharmony_ci			A lot of drivers have their options described inside
16162306a36Sopenharmony_ci			the Documentation/scsi/ sub-directory.
16262306a36Sopenharmony_ci	SECURITY Different security models are enabled.
16362306a36Sopenharmony_ci	SELINUX SELinux support is enabled.
16462306a36Sopenharmony_ci	SERIAL	Serial support is enabled.
16562306a36Sopenharmony_ci	SH	SuperH architecture is enabled.
16662306a36Sopenharmony_ci	SMP	The kernel is an SMP kernel.
16762306a36Sopenharmony_ci	SPARC	Sparc architecture is enabled.
16862306a36Sopenharmony_ci	SUSPEND	System suspend states are enabled.
16962306a36Sopenharmony_ci	SWSUSP	Software suspend (hibernation) is enabled.
17062306a36Sopenharmony_ci	TPM	TPM drivers are enabled.
17162306a36Sopenharmony_ci	UMS	USB Mass Storage support is enabled.
17262306a36Sopenharmony_ci	USB	USB support is enabled.
17362306a36Sopenharmony_ci	USBHID	USB Human Interface Device support is enabled.
17462306a36Sopenharmony_ci	V4L	Video For Linux support is enabled.
17562306a36Sopenharmony_ci	VGA	The VGA console has been enabled.
17662306a36Sopenharmony_ci	VMMIO   Driver for memory mapped virtio devices is enabled.
17762306a36Sopenharmony_ci	VT	Virtual terminal support is enabled.
17862306a36Sopenharmony_ci	WDT	Watchdog support is enabled.
17962306a36Sopenharmony_ci	X86-32	X86-32, aka i386 architecture is enabled.
18062306a36Sopenharmony_ci	X86-64	X86-64 architecture is enabled.
18162306a36Sopenharmony_ci			More X86-64 boot options can be found in
18262306a36Sopenharmony_ci			Documentation/arch/x86/x86_64/boot-options.rst.
18362306a36Sopenharmony_ci	X86	Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
18462306a36Sopenharmony_ci	X86_UV	SGI UV support is enabled.
18562306a36Sopenharmony_ci	XEN	Xen support is enabled
18662306a36Sopenharmony_ci	XTENSA	xtensa architecture is enabled.
18762306a36Sopenharmony_ci
18862306a36Sopenharmony_ciIn addition, the following text indicates that the option::
18962306a36Sopenharmony_ci
19062306a36Sopenharmony_ci	BOOT	Is a boot loader parameter.
19162306a36Sopenharmony_ci	BUGS=	Relates to possible processor bugs on the said processor.
19262306a36Sopenharmony_ci	KNL	Is a kernel start-up parameter.
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ciParameters denoted with BOOT are actually interpreted by the boot
19562306a36Sopenharmony_ciloader, and have no meaning to the kernel directly.
19662306a36Sopenharmony_ciDo not modify the syntax of boot loader parameters without extreme
19762306a36Sopenharmony_cineed or coordination with <Documentation/arch/x86/boot.rst>.
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ciThere are also arch-specific kernel-parameters not documented here.
20062306a36Sopenharmony_ciSee for example <Documentation/arch/x86/x86_64/boot-options.rst>.
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ciNote that ALL kernel parameters listed below are CASE SENSITIVE, and that
20362306a36Sopenharmony_cia trailing = on the name of any parameter states that that parameter will
20462306a36Sopenharmony_cibe entered as an environment variable, whereas its absence indicates that
20562306a36Sopenharmony_ciit will appear as a kernel argument readable via /proc/cmdline by programs
20662306a36Sopenharmony_cirunning once the system is up.
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ciThe number of kernel parameters is not limited, but the length of the
20962306a36Sopenharmony_cicomplete command line (parameters including spaces etc.) is limited to
21062306a36Sopenharmony_cia fixed number of characters. This limit depends on the architecture
21162306a36Sopenharmony_ciand is between 256 and 4096 characters. It is defined in the file
21262306a36Sopenharmony_ci./include/uapi/asm-generic/setup.h as COMMAND_LINE_SIZE.
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ciFinally, the [KMG] suffix is commonly described after a number of kernel
21562306a36Sopenharmony_ciparameter values. These 'K', 'M', and 'G' letters represent the _binary_
21662306a36Sopenharmony_cimultipliers 'Kilo', 'Mega', and 'Giga', equaling 2^10, 2^20, and 2^30
21762306a36Sopenharmony_cibytes respectively. Such letter suffixes can also be entirely omitted:
21862306a36Sopenharmony_ci
21962306a36Sopenharmony_ci.. include:: kernel-parameters.txt
22062306a36Sopenharmony_ci   :literal:
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ciTodo
22362306a36Sopenharmony_ci----
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci	Add more DRM drivers.
226