Commit | Line | Data |
---|---|---|
9b9355a2 AC |
1 | .. _kernelparameters: |
2 | ||
7358bb2f JC |
3 | The kernel's command-line parameters |
4 | ==================================== | |
1da177e4 | 5 | |
81e79063 RD |
6 | The following is a consolidated list of the kernel parameters as implemented |
7 | by the __setup(), early_param(), core_param() and module_param() macros | |
5888bcc5 RR |
8 | and sorted into English Dictionary order (defined as ignoring all |
9 | punctuation and sorting digits before letters in a case insensitive | |
10 | manner), and with descriptions where known. | |
11 | ||
62ee81b5 | 12 | The kernel parses parameters from the kernel command line up to "``--``"; |
5888bcc5 RR |
13 | if it doesn't recognize a parameter and it doesn't contain a '.', the |
14 | parameter gets passed to init: parameters with '=' go into init's | |
15 | environment, others are passed as command line arguments to init. | |
62ee81b5 | 16 | Everything after "``--``" is passed as an argument to init. |
5888bcc5 RR |
17 | |
18 | Module parameters can be specified in two ways: via the kernel command | |
684adc0a | 19 | line with a module name prefix, or via modprobe, e.g.:: |
5888bcc5 RR |
20 | |
21 | (kernel command line) usbcore.blinkenlights=1 | |
22 | (modprobe command line) modprobe usbcore blinkenlights=1 | |
23 | ||
24 | Parameters for modules which are built into the kernel need to be | |
25 | specified on the kernel command line. modprobe looks through the | |
26 | kernel command line (/proc/cmdline) and collects module parameters | |
27 | when it loads a module, so the kernel command line can be used for | |
28 | loadable modules too. | |
1da177e4 | 29 | |
684adc0a MCC |
30 | Hyphens (dashes) and underscores are equivalent in parameter names, so:: |
31 | ||
ca1eda2d | 32 | log_buf_len=1M print-fatal-signals=1 |
684adc0a MCC |
33 | |
34 | can also be entered as:: | |
35 | ||
ca1eda2d RD |
36 | log-buf-len=1M print_fatal_signals=1 |
37 | ||
684adc0a MCC |
38 | Double-quotes can be used to protect spaces in values, e.g.:: |
39 | ||
5888bcc5 | 40 | param="spaces in here" |
ca1eda2d | 41 | |
2d13e6ca NC |
42 | cpu lists: |
43 | ---------- | |
44 | ||
45 | Some kernel parameters take a list of CPUs as a value, e.g. isolcpus, | |
46 | nohz_full, irqaffinity, rcu_nocbs. The format of this list is: | |
47 | ||
48 | <cpu number>,...,<cpu number> | |
49 | ||
50 | or | |
51 | ||
52 | <cpu number>-<cpu number> | |
53 | (must be a positive range in ascending order) | |
54 | ||
55 | or a mixture | |
56 | ||
57 | <cpu number>,...,<cpu number>-<cpu number> | |
58 | ||
59 | Note that for the special case of a range one can split the range into equal | |
60 | sized groups and for each group use some amount from the beginning of that | |
61 | group: | |
62 | ||
187623b1 | 63 | <cpu number>-<cpu number>:<used size>/<group size> |
2d13e6ca NC |
64 | |
65 | For example one can add to the command line following parameter: | |
66 | ||
67 | isolcpus=1,2,10-20,100-2000:2/25 | |
68 | ||
69 | where the final item represents CPUs 100,101,125,126,150,151,... | |
70 | ||
2c4885d2 PG |
71 | The value "N" can be used to represent the numerically last CPU on the system, |
72 | i.e "foo_cpus=16-N" would be equivalent to "16-31" on a 32 core system. | |
73 | ||
74 | Keep in mind that "N" is dynamic, so if system changes cause the bitmap width | |
75 | to change, such as less cores in the CPU list, then N and any ranges using N | |
76 | will also change. Use the same on a small 4 core system, and "16-N" becomes | |
77 | "16-3" and now the same boot input will be flagged as invalid (start > end). | |
2d13e6ca | 78 | |
b18def12 YN |
79 | The special case-tolerant group name "all" has a meaning of selecting all CPUs, |
80 | so that "nohz_full=all" is the equivalent of "nohz_full=0-N". | |
81 | ||
82 | The semantics of "N" and "all" is supported on a level of bitmaps and holds for | |
83 | all users of bitmap_parse(). | |
2d13e6ca | 84 | |
a901ebb9 SR |
85 | This document may not be entirely up to date and comprehensive. The command |
86 | "modinfo -p ${modulename}" shows a current list of all parameters of a loadable | |
87 | module. Loadable modules, after being loaded into the running kernel, also | |
88 | reveal their parameters in /sys/module/${modulename}/parameters/. Some of these | |
89 | parameters may be changed at runtime by the command | |
684adc0a | 90 | ``echo -n ${value} > /sys/module/${modulename}/parameters/${parm}``. |
a901ebb9 | 91 | |
6585fa8a SR |
92 | The parameters listed below are only valid if certain kernel build options were |
93 | enabled and if respective hardware is present. The text in square brackets at | |
94 | the beginning of each description states the restrictions within which a | |
684adc0a | 95 | parameter is applicable:: |
1da177e4 LT |
96 | |
97 | ACPI ACPI support is enabled. | |
c99c108a | 98 | AGP AGP (Accelerated Graphics Port) is enabled. |
1da177e4 LT |
99 | ALSA ALSA sound support is enabled. |
100 | APIC APIC support is enabled. | |
101 | APM Advanced Power Management support is enabled. | |
d2fc83c1 | 102 | APPARMOR AppArmor support is enabled. |
16290246 | 103 | ARM ARM architecture is enabled. |
4ad499c9 | 104 | ARM64 ARM64 architecture is enabled. |
1da177e4 | 105 | AX25 Appropriate AX.25 support is enabled. |
1e435256 | 106 | CLK Common clock infrastructure is enabled. |
5c71d618 | 107 | CMA Contiguous Memory Area support is enabled. |
9cfe268e AC |
108 | DRM Direct Rendering Management support is enabled. |
109 | DYNAMIC_DEBUG Build in debug messages and enable them at runtime | |
1da177e4 LT |
110 | EDD BIOS Enhanced Disk Drive Services (EDD) is enabled |
111 | EFI EFI Partitioning (GPT) is enabled | |
7102ebcd | 112 | EVM Extended Verification Module |
1da177e4 | 113 | FB The frame buffer device is enabled. |
16290246 | 114 | FTRACE Function tracing enabled. |
2521f2c2 | 115 | GCOV GCOV profiling is enabled. |
d2fc83c1 | 116 | HIBERNATION HIBERNATION is enabled. |
1da177e4 | 117 | HW Appropriate hardware is enabled. |
d2fc83c1 | 118 | HYPER_V HYPERV support is enabled. |
1da177e4 | 119 | IA-64 IA-64 architecture is enabled. |
6146f0d5 | 120 | IMA Integrity measurement architecture is enabled. |
41e2e8be | 121 | IP_PNP IP DHCP, BOOTP, or RARP is enabled. |
b0f83b28 | 122 | IPV6 IPv6 support is enabled. |
1da177e4 LT |
123 | ISAPNP ISA PnP code is enabled. |
124 | ISDN Appropriate ISDN support is enabled. | |
d94d1053 | 125 | ISOL CPU Isolation is enabled. |
1da177e4 | 126 | JOY Appropriate joystick support is enabled. |
84c08fd6 | 127 | KGDB Kernel debugger support is enabled. |
fef07aae | 128 | KVM Kernel Virtual Machine support is enabled. |
11ef697b | 129 | LIBATA Libata driver is enabled |
1da177e4 | 130 | LP Printer support is enabled. |
16c52e50 | 131 | LOONGARCH LoongArch architecture is enabled. |
1da177e4 LT |
132 | LOOP Loopback device support is enabled. |
133 | M68k M68k architecture is enabled. | |
134 | These options have more detailed description inside of | |
790a6c21 | 135 | Documentation/arch/m68k/kernel-options.rst. |
1da177e4 | 136 | MDA MDA console support is enabled. |
16290246 | 137 | MIPS MIPS architecture is enabled. |
1da177e4 | 138 | MOUSE Appropriate mouse support is enabled. |
309e57df | 139 | MSI Message Signaled Interrupts (PCI). |
c8facbb6 | 140 | MTD MTD (Memory Technology Device) support is enabled. |
1da177e4 LT |
141 | NET Appropriate network support is enabled. |
142 | NUMA NUMA support is enabled. | |
143 | NFS Appropriate NFS support is enabled. | |
a3e1d1a7 | 144 | OF Devicetree is enabled. |
c8facbb6 | 145 | PV_OPS A paravirtualized kernel is enabled. |
1da177e4 LT |
146 | PARISC The PA-RISC architecture is enabled. |
147 | PCI PCI bus support is enabled. | |
7f785763 | 148 | PCIE PCI Express support is enabled. |
1da177e4 LT |
149 | PCMCIA The PCMCIA subsystem is enabled. |
150 | PNP Plug & Play support is enabled. | |
151 | PPC PowerPC architecture is enabled. | |
152 | PPT Parallel port support is enabled. | |
153 | PS2 Appropriate PS/2 support is enabled. | |
154 | RAM RAM disk support is enabled. | |
00b072c0 | 155 | RISCV RISCV architecture is enabled. |
1d9807fc | 156 | RDT Intel Resource Director Technology. |
1da177e4 LT |
157 | S390 S390 architecture is enabled. |
158 | SCSI Appropriate SCSI support is enabled. | |
163475fb RD |
159 | A lot of drivers have their options described inside |
160 | the Documentation/scsi/ sub-directory. | |
20510f2f | 161 | SECURITY Different security models are enabled. |
1da177e4 LT |
162 | SELINUX SELinux support is enabled. |
163 | SERIAL Serial support is enabled. | |
e523d93c | 164 | SH SuperH architecture is enabled. |
1da177e4 LT |
165 | SMP The kernel is an SMP kernel. |
166 | SPARC Sparc architecture is enabled. | |
77437fd4 DB |
167 | SWSUSP Software suspend (hibernation) is enabled. |
168 | SUSPEND System suspend states are enabled. | |
225a9be2 | 169 | TPM TPM drivers are enabled. |
d4f373e5 | 170 | UMS USB Mass Storage support is enabled. |
1da177e4 LT |
171 | USB USB support is enabled. |
172 | USBHID USB Human Interface Device support is enabled. | |
173 | V4L Video For Linux support is enabled. | |
81a054ce | 174 | VMMIO Driver for memory mapped virtio devices is enabled. |
1da177e4 LT |
175 | VGA The VGA console has been enabled. |
176 | VT Virtual terminal support is enabled. | |
177 | WDT Watchdog support is enabled. | |
cd4f0ef7 | 178 | X86-32 X86-32, aka i386 architecture is enabled. |
1da177e4 LT |
179 | X86-64 X86-64 architecture is enabled. |
180 | More X86-64 boot options can be found in | |
ff61f079 | 181 | Documentation/arch/x86/x86_64/boot-options.rst. |
16290246 | 182 | X86 Either 32-bit or 64-bit x86 (same as X86-32+X86-64) |
1c532e00 | 183 | X86_UV SGI UV support is enabled. |
c1c5413a | 184 | XEN Xen support is enabled |
4c8e3de4 | 185 | XTENSA xtensa architecture is enabled. |
1da177e4 | 186 | |
684adc0a | 187 | In addition, the following text indicates that the option:: |
1da177e4 LT |
188 | |
189 | BUGS= Relates to possible processor bugs on the said processor. | |
190 | KNL Is a kernel start-up parameter. | |
191 | BOOT Is a boot loader parameter. | |
192 | ||
193 | Parameters denoted with BOOT are actually interpreted by the boot | |
194 | loader, and have no meaning to the kernel directly. | |
195 | Do not modify the syntax of boot loader parameters without extreme | |
ff61f079 | 196 | need or coordination with <Documentation/arch/x86/boot.rst>. |
1da177e4 | 197 | |
5558870b | 198 | There are also arch-specific kernel-parameters not documented here. |
ff61f079 | 199 | See for example <Documentation/arch/x86/x86_64/boot-options.rst>. |
5558870b | 200 | |
1da177e4 LT |
201 | Note that ALL kernel parameters listed below are CASE SENSITIVE, and that |
202 | a trailing = on the name of any parameter states that that parameter will | |
203 | be entered as an environment variable, whereas its absence indicates that | |
204 | it will appear as a kernel argument readable via /proc/cmdline by programs | |
205 | running once the system is up. | |
206 | ||
9c4751fd | 207 | The number of kernel parameters is not limited, but the length of the |
208 | complete command line (parameters including spaces etc.) is limited to | |
209 | a fixed number of characters. This limit depends on the architecture | |
210 | and is between 256 and 4096 characters. It is defined in the file | |
d2fc83c1 | 211 | ./include/uapi/asm-generic/setup.h as COMMAND_LINE_SIZE. |
9c4751fd | 212 | |
7a19a237 AD |
213 | Finally, the [KMG] suffix is commonly described after a number of kernel |
214 | parameter values. These 'K', 'M', and 'G' letters represent the _binary_ | |
9f02a486 | 215 | multipliers 'Kilo', 'Mega', and 'Giga', equaling 2^10, 2^20, and 2^30 |
e52347bd | 216 | bytes respectively. Such letter suffixes can also be entirely omitted: |
7a19a237 | 217 | |
e52347bd JN |
218 | .. include:: kernel-parameters.txt |
219 | :literal: | |
1da177e4 | 220 | |
684adc0a MCC |
221 | Todo |
222 | ---- | |
1da177e4 | 223 | |
1da177e4 | 224 | Add more DRM drivers. |