xref: /OK3568_Linux_fs/kernel/Documentation/admin-guide/kernel-parameters.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. _kernelparameters:
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThe kernel's command-line parameters
4*4882a593Smuzhiyun====================================
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunThe following is a consolidated list of the kernel parameters as
7*4882a593Smuzhiyunimplemented by the __setup(), core_param() and module_param() macros
8*4882a593Smuzhiyunand sorted into English Dictionary order (defined as ignoring all
9*4882a593Smuzhiyunpunctuation and sorting digits before letters in a case insensitive
10*4882a593Smuzhiyunmanner), and with descriptions where known.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe kernel parses parameters from the kernel command line up to "``--``";
13*4882a593Smuzhiyunif it doesn't recognize a parameter and it doesn't contain a '.', the
14*4882a593Smuzhiyunparameter gets passed to init: parameters with '=' go into init's
15*4882a593Smuzhiyunenvironment, others are passed as command line arguments to init.
16*4882a593SmuzhiyunEverything after "``--``" is passed as an argument to init.
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunModule parameters can be specified in two ways: via the kernel command
19*4882a593Smuzhiyunline with a module name prefix, or via modprobe, e.g.::
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	(kernel command line) usbcore.blinkenlights=1
22*4882a593Smuzhiyun	(modprobe command line) modprobe usbcore blinkenlights=1
23*4882a593Smuzhiyun
24*4882a593SmuzhiyunParameters for modules which are built into the kernel need to be
25*4882a593Smuzhiyunspecified on the kernel command line.  modprobe looks through the
26*4882a593Smuzhiyunkernel command line (/proc/cmdline) and collects module parameters
27*4882a593Smuzhiyunwhen it loads a module, so the kernel command line can be used for
28*4882a593Smuzhiyunloadable modules too.
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunHyphens (dashes) and underscores are equivalent in parameter names, so::
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	log_buf_len=1M print-fatal-signals=1
33*4882a593Smuzhiyun
34*4882a593Smuzhiyuncan also be entered as::
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	log-buf-len=1M print_fatal_signals=1
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunDouble-quotes can be used to protect spaces in values, e.g.::
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	param="spaces in here"
41*4882a593Smuzhiyun
42*4882a593Smuzhiyuncpu lists:
43*4882a593Smuzhiyun----------
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunSome kernel parameters take a list of CPUs as a value, e.g.  isolcpus,
46*4882a593Smuzhiyunnohz_full, irqaffinity, rcu_nocbs.  The format of this list is:
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun	<cpu number>,...,<cpu number>
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunor
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun	<cpu number>-<cpu number>
53*4882a593Smuzhiyun	(must be a positive range in ascending order)
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunor a mixture
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun<cpu number>,...,<cpu number>-<cpu number>
58*4882a593Smuzhiyun
59*4882a593SmuzhiyunNote that for the special case of a range one can split the range into equal
60*4882a593Smuzhiyunsized groups and for each group use some amount from the beginning of that
61*4882a593Smuzhiyungroup:
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun	<cpu number>-cpu number>:<used size>/<group size>
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunFor example one can add to the command line following parameter:
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun	isolcpus=1,2,10-20,100-2000:2/25
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunwhere the final item represents CPUs 100,101,125,126,150,151,...
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun
73*4882a593SmuzhiyunThis document may not be entirely up to date and comprehensive. The command
74*4882a593Smuzhiyun"modinfo -p ${modulename}" shows a current list of all parameters of a loadable
75*4882a593Smuzhiyunmodule. Loadable modules, after being loaded into the running kernel, also
76*4882a593Smuzhiyunreveal their parameters in /sys/module/${modulename}/parameters/. Some of these
77*4882a593Smuzhiyunparameters may be changed at runtime by the command
78*4882a593Smuzhiyun``echo -n ${value} > /sys/module/${modulename}/parameters/${parm}``.
79*4882a593Smuzhiyun
80*4882a593SmuzhiyunThe parameters listed below are only valid if certain kernel build options were
81*4882a593Smuzhiyunenabled and if respective hardware is present. The text in square brackets at
82*4882a593Smuzhiyunthe beginning of each description states the restrictions within which a
83*4882a593Smuzhiyunparameter is applicable::
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	ACPI	ACPI support is enabled.
86*4882a593Smuzhiyun	AGP	AGP (Accelerated Graphics Port) is enabled.
87*4882a593Smuzhiyun	ALSA	ALSA sound support is enabled.
88*4882a593Smuzhiyun	APIC	APIC support is enabled.
89*4882a593Smuzhiyun	APM	Advanced Power Management support is enabled.
90*4882a593Smuzhiyun	ARM	ARM architecture is enabled.
91*4882a593Smuzhiyun	ARM64	ARM64 architecture is enabled.
92*4882a593Smuzhiyun	AX25	Appropriate AX.25 support is enabled.
93*4882a593Smuzhiyun	CLK	Common clock infrastructure is enabled.
94*4882a593Smuzhiyun	CMA	Contiguous Memory Area support is enabled.
95*4882a593Smuzhiyun	DRM	Direct Rendering Management support is enabled.
96*4882a593Smuzhiyun	DYNAMIC_DEBUG Build in debug messages and enable them at runtime
97*4882a593Smuzhiyun	EDD	BIOS Enhanced Disk Drive Services (EDD) is enabled
98*4882a593Smuzhiyun	EFI	EFI Partitioning (GPT) is enabled
99*4882a593Smuzhiyun	EIDE	EIDE/ATAPI support is enabled.
100*4882a593Smuzhiyun	EVM	Extended Verification Module
101*4882a593Smuzhiyun	FB	The frame buffer device is enabled.
102*4882a593Smuzhiyun	FTRACE	Function tracing enabled.
103*4882a593Smuzhiyun	GCOV	GCOV profiling is enabled.
104*4882a593Smuzhiyun	HW	Appropriate hardware is enabled.
105*4882a593Smuzhiyun	IA-64	IA-64 architecture is enabled.
106*4882a593Smuzhiyun	IMA     Integrity measurement architecture is enabled.
107*4882a593Smuzhiyun	IOSCHED	More than one I/O scheduler is enabled.
108*4882a593Smuzhiyun	IP_PNP	IP DHCP, BOOTP, or RARP is enabled.
109*4882a593Smuzhiyun	IPV6	IPv6 support is enabled.
110*4882a593Smuzhiyun	ISAPNP	ISA PnP code is enabled.
111*4882a593Smuzhiyun	ISDN	Appropriate ISDN support is enabled.
112*4882a593Smuzhiyun	ISOL	CPU Isolation is enabled.
113*4882a593Smuzhiyun	JOY	Appropriate joystick support is enabled.
114*4882a593Smuzhiyun	KGDB	Kernel debugger support is enabled.
115*4882a593Smuzhiyun	KVM	Kernel Virtual Machine support is enabled.
116*4882a593Smuzhiyun	LIBATA  Libata driver is enabled
117*4882a593Smuzhiyun	LP	Printer support is enabled.
118*4882a593Smuzhiyun	LOOP	Loopback device support is enabled.
119*4882a593Smuzhiyun	M68k	M68k architecture is enabled.
120*4882a593Smuzhiyun			These options have more detailed description inside of
121*4882a593Smuzhiyun			Documentation/m68k/kernel-options.rst.
122*4882a593Smuzhiyun	MDA	MDA console support is enabled.
123*4882a593Smuzhiyun	MIPS	MIPS architecture is enabled.
124*4882a593Smuzhiyun	MOUSE	Appropriate mouse support is enabled.
125*4882a593Smuzhiyun	MSI	Message Signaled Interrupts (PCI).
126*4882a593Smuzhiyun	MTD	MTD (Memory Technology Device) support is enabled.
127*4882a593Smuzhiyun	NET	Appropriate network support is enabled.
128*4882a593Smuzhiyun	NUMA	NUMA support is enabled.
129*4882a593Smuzhiyun	NFS	Appropriate NFS support is enabled.
130*4882a593Smuzhiyun	OF	Devicetree is enabled.
131*4882a593Smuzhiyun	OSS	OSS sound support is enabled.
132*4882a593Smuzhiyun	PV_OPS	A paravirtualized kernel is enabled.
133*4882a593Smuzhiyun	PARIDE	The ParIDE (parallel port IDE) subsystem is enabled.
134*4882a593Smuzhiyun	PARISC	The PA-RISC architecture is enabled.
135*4882a593Smuzhiyun	PCI	PCI bus support is enabled.
136*4882a593Smuzhiyun	PCIE	PCI Express support is enabled.
137*4882a593Smuzhiyun	PCMCIA	The PCMCIA subsystem is enabled.
138*4882a593Smuzhiyun	PNP	Plug & Play support is enabled.
139*4882a593Smuzhiyun	PPC	PowerPC architecture is enabled.
140*4882a593Smuzhiyun	PPT	Parallel port support is enabled.
141*4882a593Smuzhiyun	PS2	Appropriate PS/2 support is enabled.
142*4882a593Smuzhiyun	RAM	RAM disk support is enabled.
143*4882a593Smuzhiyun	RDT	Intel Resource Director Technology.
144*4882a593Smuzhiyun	S390	S390 architecture is enabled.
145*4882a593Smuzhiyun	SCSI	Appropriate SCSI support is enabled.
146*4882a593Smuzhiyun			A lot of drivers have their options described inside
147*4882a593Smuzhiyun			the Documentation/scsi/ sub-directory.
148*4882a593Smuzhiyun	SECURITY Different security models are enabled.
149*4882a593Smuzhiyun	SELINUX SELinux support is enabled.
150*4882a593Smuzhiyun	APPARMOR AppArmor support is enabled.
151*4882a593Smuzhiyun	SERIAL	Serial support is enabled.
152*4882a593Smuzhiyun	SH	SuperH architecture is enabled.
153*4882a593Smuzhiyun	SMP	The kernel is an SMP kernel.
154*4882a593Smuzhiyun	SPARC	Sparc architecture is enabled.
155*4882a593Smuzhiyun	SWSUSP	Software suspend (hibernation) is enabled.
156*4882a593Smuzhiyun	SUSPEND	System suspend states are enabled.
157*4882a593Smuzhiyun	TPM	TPM drivers are enabled.
158*4882a593Smuzhiyun	TS	Appropriate touchscreen support is enabled.
159*4882a593Smuzhiyun	UMS	USB Mass Storage support is enabled.
160*4882a593Smuzhiyun	USB	USB support is enabled.
161*4882a593Smuzhiyun	USBHID	USB Human Interface Device support is enabled.
162*4882a593Smuzhiyun	V4L	Video For Linux support is enabled.
163*4882a593Smuzhiyun	VMMIO   Driver for memory mapped virtio devices is enabled.
164*4882a593Smuzhiyun	VGA	The VGA console has been enabled.
165*4882a593Smuzhiyun	VT	Virtual terminal support is enabled.
166*4882a593Smuzhiyun	WDT	Watchdog support is enabled.
167*4882a593Smuzhiyun	XT	IBM PC/XT MFM hard disk support is enabled.
168*4882a593Smuzhiyun	X86-32	X86-32, aka i386 architecture is enabled.
169*4882a593Smuzhiyun	X86-64	X86-64 architecture is enabled.
170*4882a593Smuzhiyun			More X86-64 boot options can be found in
171*4882a593Smuzhiyun			Documentation/x86/x86_64/boot-options.rst.
172*4882a593Smuzhiyun	X86	Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
173*4882a593Smuzhiyun	X86_UV	SGI UV support is enabled.
174*4882a593Smuzhiyun	XEN	Xen support is enabled
175*4882a593Smuzhiyun
176*4882a593SmuzhiyunIn addition, the following text indicates that the option::
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun	BUGS=	Relates to possible processor bugs on the said processor.
179*4882a593Smuzhiyun	KNL	Is a kernel start-up parameter.
180*4882a593Smuzhiyun	BOOT	Is a boot loader parameter.
181*4882a593Smuzhiyun
182*4882a593SmuzhiyunParameters denoted with BOOT are actually interpreted by the boot
183*4882a593Smuzhiyunloader, and have no meaning to the kernel directly.
184*4882a593SmuzhiyunDo not modify the syntax of boot loader parameters without extreme
185*4882a593Smuzhiyunneed or coordination with <Documentation/x86/boot.rst>.
186*4882a593Smuzhiyun
187*4882a593SmuzhiyunThere are also arch-specific kernel-parameters not documented here.
188*4882a593SmuzhiyunSee for example <Documentation/x86/x86_64/boot-options.rst>.
189*4882a593Smuzhiyun
190*4882a593SmuzhiyunNote that ALL kernel parameters listed below are CASE SENSITIVE, and that
191*4882a593Smuzhiyuna trailing = on the name of any parameter states that that parameter will
192*4882a593Smuzhiyunbe entered as an environment variable, whereas its absence indicates that
193*4882a593Smuzhiyunit will appear as a kernel argument readable via /proc/cmdline by programs
194*4882a593Smuzhiyunrunning once the system is up.
195*4882a593Smuzhiyun
196*4882a593SmuzhiyunThe number of kernel parameters is not limited, but the length of the
197*4882a593Smuzhiyuncomplete command line (parameters including spaces etc.) is limited to
198*4882a593Smuzhiyuna fixed number of characters. This limit depends on the architecture
199*4882a593Smuzhiyunand is between 256 and 4096 characters. It is defined in the file
200*4882a593Smuzhiyun./include/asm/setup.h as COMMAND_LINE_SIZE.
201*4882a593Smuzhiyun
202*4882a593SmuzhiyunFinally, the [KMG] suffix is commonly described after a number of kernel
203*4882a593Smuzhiyunparameter values. These 'K', 'M', and 'G' letters represent the _binary_
204*4882a593Smuzhiyunmultipliers 'Kilo', 'Mega', and 'Giga', equaling 2^10, 2^20, and 2^30
205*4882a593Smuzhiyunbytes respectively. Such letter suffixes can also be entirely omitted:
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun.. include:: kernel-parameters.txt
208*4882a593Smuzhiyun   :literal:
209*4882a593Smuzhiyun
210*4882a593SmuzhiyunTodo
211*4882a593Smuzhiyun----
212*4882a593Smuzhiyun
213*4882a593Smuzhiyun	Add more DRM drivers.
214