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