19b9355a2SAndrew Clayton.. _kernelparameters: 29b9355a2SAndrew Clayton 37358bb2fSJonathan CorbetThe kernel's command-line parameters 47358bb2fSJonathan Corbet==================================== 59d85025bSMauro Carvalho Chehab 681e79063SRandy DunlapThe following is a consolidated list of the kernel parameters as implemented 781e79063SRandy Dunlapby the __setup(), early_param(), 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 63187623b1SWolfram Sang <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 712c4885d2SPaul GortmakerThe value "N" can be used to represent the numerically last CPU on the system, 722c4885d2SPaul Gortmakeri.e "foo_cpus=16-N" would be equivalent to "16-31" on a 32 core system. 732c4885d2SPaul Gortmaker 742c4885d2SPaul GortmakerKeep in mind that "N" is dynamic, so if system changes cause the bitmap width 752c4885d2SPaul Gortmakerto change, such as less cores in the CPU list, then N and any ranges using N 762c4885d2SPaul Gortmakerwill also change. Use the same on a small 4 core system, and "16-N" becomes 772c4885d2SPaul Gortmaker"16-3" and now the same boot input will be flagged as invalid (start > end). 789d85025bSMauro Carvalho Chehab 79b18def12SYury NorovThe special case-tolerant group name "all" has a meaning of selecting all CPUs, 80b18def12SYury Norovso that "nohz_full=all" is the equivalent of "nohz_full=0-N". 81b18def12SYury Norov 82b18def12SYury NorovThe semantics of "N" and "all" is supported on a level of bitmaps and holds for 83d0c1f8dcSAndy Shevchenkoall users of bitmap_parselist(). 849d85025bSMauro Carvalho Chehab 859d85025bSMauro Carvalho ChehabThis document may not be entirely up to date and comprehensive. The command 869d85025bSMauro Carvalho Chehab"modinfo -p ${modulename}" shows a current list of all parameters of a loadable 879d85025bSMauro Carvalho Chehabmodule. Loadable modules, after being loaded into the running kernel, also 889d85025bSMauro Carvalho Chehabreveal their parameters in /sys/module/${modulename}/parameters/. Some of these 899d85025bSMauro Carvalho Chehabparameters may be changed at runtime by the command 909d85025bSMauro Carvalho Chehab``echo -n ${value} > /sys/module/${modulename}/parameters/${parm}``. 919d85025bSMauro Carvalho Chehab 92fe118594SRandy DunlapThe parameters listed below are only valid if certain kernel build options 93fe118594SRandy Dunlapwere enabled and if respective hardware is present. This list should be kept 94fe118594SRandy Dunlapin alphabetical order. The text in square brackets at the beginning 95fe118594SRandy Dunlapof each description states the restrictions within which a parameter 96fe118594SRandy Dunlapis applicable:: 979d85025bSMauro Carvalho Chehab 989d85025bSMauro Carvalho Chehab ACPI ACPI support is enabled. 999d85025bSMauro Carvalho Chehab AGP AGP (Accelerated Graphics Port) is enabled. 1009d85025bSMauro Carvalho Chehab ALSA ALSA sound support is enabled. 1019d85025bSMauro Carvalho Chehab APIC APIC support is enabled. 1029d85025bSMauro Carvalho Chehab APM Advanced Power Management support is enabled. 103d2fc83c1SRandy Dunlap APPARMOR AppArmor support is enabled. 1049d85025bSMauro Carvalho Chehab ARM ARM architecture is enabled. 1054ad499c9SJosh Poimboeuf ARM64 ARM64 architecture is enabled. 1069d85025bSMauro Carvalho Chehab AX25 Appropriate AX.25 support is enabled. 1079d85025bSMauro Carvalho Chehab CLK Common clock infrastructure is enabled. 1089d85025bSMauro Carvalho Chehab CMA Contiguous Memory Area support is enabled. 1099d85025bSMauro Carvalho Chehab DRM Direct Rendering Management support is enabled. 1109d85025bSMauro Carvalho Chehab DYNAMIC_DEBUG Build in debug messages and enable them at runtime 111*60071659SPaul E. McKenney EARLY Parameter processed too early to be embedded in initrd. 1129d85025bSMauro Carvalho Chehab EDD BIOS Enhanced Disk Drive Services (EDD) is enabled 1139d85025bSMauro Carvalho Chehab EFI EFI Partitioning (GPT) is enabled 1149d85025bSMauro Carvalho Chehab EVM Extended Verification Module 1159d85025bSMauro Carvalho Chehab FB The frame buffer device is enabled. 1169d85025bSMauro Carvalho Chehab FTRACE Function tracing enabled. 1179d85025bSMauro Carvalho Chehab GCOV GCOV profiling is enabled. 118d2fc83c1SRandy Dunlap HIBERNATION HIBERNATION is enabled. 1199d85025bSMauro Carvalho Chehab HW Appropriate hardware is enabled. 120d2fc83c1SRandy Dunlap HYPER_V HYPERV support is enabled. 1219d85025bSMauro Carvalho Chehab IMA Integrity measurement architecture is enabled. 1229d85025bSMauro Carvalho Chehab IP_PNP IP DHCP, BOOTP, or RARP is enabled. 1239d85025bSMauro Carvalho Chehab IPV6 IPv6 support is enabled. 1249d85025bSMauro Carvalho Chehab ISAPNP ISA PnP code is enabled. 1259d85025bSMauro Carvalho Chehab ISDN Appropriate ISDN support is enabled. 126d94d1053SFrederic Weisbecker ISOL CPU Isolation is enabled. 1279d85025bSMauro Carvalho Chehab JOY Appropriate joystick support is enabled. 1289d85025bSMauro Carvalho Chehab KGDB Kernel debugger support is enabled. 1299d85025bSMauro Carvalho Chehab KVM Kernel Virtual Machine support is enabled. 1309d85025bSMauro Carvalho Chehab LIBATA Libata driver is enabled 13116c52e50SHuacai Chen LOONGARCH LoongArch architecture is enabled. 1329d85025bSMauro Carvalho Chehab LOOP Loopback device support is enabled. 133fe118594SRandy Dunlap LP Printer support is enabled. 1349d85025bSMauro Carvalho Chehab M68k M68k architecture is enabled. 1359d85025bSMauro Carvalho Chehab These options have more detailed description inside of 136790a6c21SJonathan Corbet Documentation/arch/m68k/kernel-options.rst. 1379d85025bSMauro Carvalho Chehab MDA MDA console support is enabled. 1389d85025bSMauro Carvalho Chehab MIPS MIPS architecture is enabled. 1399d85025bSMauro Carvalho Chehab MOUSE Appropriate mouse support is enabled. 1409d85025bSMauro Carvalho Chehab MSI Message Signaled Interrupts (PCI). 1419d85025bSMauro Carvalho Chehab MTD MTD (Memory Technology Device) support is enabled. 1429d85025bSMauro Carvalho Chehab NET Appropriate network support is enabled. 1439d85025bSMauro Carvalho Chehab NFS Appropriate NFS support is enabled. 144fe118594SRandy Dunlap NUMA NUMA support is enabled. 145a3e1d1a7SSaravana Kannan OF Devicetree is enabled. 1469d85025bSMauro Carvalho Chehab PARISC The PA-RISC architecture is enabled. 1479d85025bSMauro Carvalho Chehab PCI PCI bus support is enabled. 1489d85025bSMauro Carvalho Chehab PCIE PCI Express support is enabled. 1499d85025bSMauro Carvalho Chehab PCMCIA The PCMCIA subsystem is enabled. 1509d85025bSMauro Carvalho Chehab PNP Plug & Play support is enabled. 1519d85025bSMauro Carvalho Chehab PPC PowerPC architecture is enabled. 1529d85025bSMauro Carvalho Chehab PPT Parallel port support is enabled. 1539d85025bSMauro Carvalho Chehab PS2 Appropriate PS/2 support is enabled. 154fe118594SRandy Dunlap PV_OPS A paravirtualized kernel is enabled. 1559d85025bSMauro Carvalho Chehab RAM RAM disk support is enabled. 1561d9807fcSTony Luck RDT Intel Resource Director Technology. 157fe118594SRandy Dunlap RISCV RISCV architecture is enabled. 1589d85025bSMauro Carvalho Chehab S390 S390 architecture is enabled. 1599d85025bSMauro Carvalho Chehab SCSI Appropriate SCSI support is enabled. 1609d85025bSMauro Carvalho Chehab A lot of drivers have their options described inside 1619d85025bSMauro Carvalho Chehab the Documentation/scsi/ sub-directory. 1629d85025bSMauro Carvalho Chehab SECURITY Different security models are enabled. 1639d85025bSMauro Carvalho Chehab SELINUX SELinux support is enabled. 1649d85025bSMauro Carvalho Chehab SERIAL Serial support is enabled. 1659d85025bSMauro Carvalho Chehab SH SuperH architecture is enabled. 1669d85025bSMauro Carvalho Chehab SMP The kernel is an SMP kernel. 1679d85025bSMauro Carvalho Chehab SPARC Sparc architecture is enabled. 1689d85025bSMauro Carvalho Chehab SUSPEND System suspend states are enabled. 169fe118594SRandy Dunlap SWSUSP Software suspend (hibernation) is enabled. 1709d85025bSMauro Carvalho Chehab TPM TPM drivers are enabled. 1719d85025bSMauro Carvalho Chehab UMS USB Mass Storage support is enabled. 1729d85025bSMauro Carvalho Chehab USB USB support is enabled. 1739d85025bSMauro Carvalho Chehab USBHID USB Human Interface Device support is enabled. 1749d85025bSMauro Carvalho Chehab V4L Video For Linux support is enabled. 1759d85025bSMauro Carvalho Chehab VGA The VGA console has been enabled. 176fe118594SRandy Dunlap VMMIO Driver for memory mapped virtio devices is enabled. 1779d85025bSMauro Carvalho Chehab VT Virtual terminal support is enabled. 1789d85025bSMauro Carvalho Chehab WDT Watchdog support is enabled. 1799d85025bSMauro Carvalho Chehab X86-32 X86-32, aka i386 architecture is enabled. 1809d85025bSMauro Carvalho Chehab X86-64 X86-64 architecture is enabled. 1819d85025bSMauro Carvalho Chehab More X86-64 boot options can be found in 182ff61f079SJonathan Corbet Documentation/arch/x86/x86_64/boot-options.rst. 1839d85025bSMauro Carvalho Chehab X86 Either 32-bit or 64-bit x86 (same as X86-32+X86-64) 1849d85025bSMauro Carvalho Chehab X86_UV SGI UV support is enabled. 1859d85025bSMauro Carvalho Chehab XEN Xen support is enabled 1864c8e3de4SBarry Song XTENSA xtensa architecture is enabled. 1879d85025bSMauro Carvalho Chehab 1889d85025bSMauro Carvalho ChehabIn addition, the following text indicates that the option:: 1899d85025bSMauro Carvalho Chehab 190fe118594SRandy Dunlap BOOT Is a boot loader parameter. 1919d85025bSMauro Carvalho Chehab BUGS= Relates to possible processor bugs on the said processor. 1929d85025bSMauro Carvalho Chehab KNL Is a kernel start-up parameter. 1939d85025bSMauro Carvalho Chehab 1949d85025bSMauro Carvalho ChehabParameters denoted with BOOT are actually interpreted by the boot 1959d85025bSMauro Carvalho Chehabloader, and have no meaning to the kernel directly. 1969d85025bSMauro Carvalho ChehabDo not modify the syntax of boot loader parameters without extreme 197ff61f079SJonathan Corbetneed or coordination with <Documentation/arch/x86/boot.rst>. 1989d85025bSMauro Carvalho Chehab 1999d85025bSMauro Carvalho ChehabThere are also arch-specific kernel-parameters not documented here. 200ff61f079SJonathan CorbetSee for example <Documentation/arch/x86/x86_64/boot-options.rst>. 2019d85025bSMauro Carvalho Chehab 2029d85025bSMauro Carvalho ChehabNote that ALL kernel parameters listed below are CASE SENSITIVE, and that 2039d85025bSMauro Carvalho Chehaba trailing = on the name of any parameter states that that parameter will 2049d85025bSMauro Carvalho Chehabbe entered as an environment variable, whereas its absence indicates that 2059d85025bSMauro Carvalho Chehabit will appear as a kernel argument readable via /proc/cmdline by programs 2069d85025bSMauro Carvalho Chehabrunning once the system is up. 2079d85025bSMauro Carvalho Chehab 2089d85025bSMauro Carvalho ChehabThe number of kernel parameters is not limited, but the length of the 2099d85025bSMauro Carvalho Chehabcomplete command line (parameters including spaces etc.) is limited to 2109d85025bSMauro Carvalho Chehaba fixed number of characters. This limit depends on the architecture 2119d85025bSMauro Carvalho Chehaband is between 256 and 4096 characters. It is defined in the file 212d2fc83c1SRandy Dunlap./include/uapi/asm-generic/setup.h as COMMAND_LINE_SIZE. 2139d85025bSMauro Carvalho Chehab 2149d85025bSMauro Carvalho ChehabFinally, the [KMG] suffix is commonly described after a number of kernel 2159d85025bSMauro Carvalho Chehabparameter values. These 'K', 'M', and 'G' letters represent the _binary_ 2169f02a486STamara Diaconitamultipliers 'Kilo', 'Mega', and 'Giga', equaling 2^10, 2^20, and 2^30 217e52347bdSJani Nikulabytes respectively. Such letter suffixes can also be entirely omitted: 2189d85025bSMauro Carvalho Chehab 219e52347bdSJani Nikula.. include:: kernel-parameters.txt 220e52347bdSJani Nikula :literal: 221