173b4fc92SChristophe Leroy# SPDX-License-Identifier: GPL-2.0-only 273b4fc92SChristophe Leroymenuconfig MODULES 373b4fc92SChristophe Leroy bool "Enable loadable module support" 473b4fc92SChristophe Leroy modules 573b4fc92SChristophe Leroy help 673b4fc92SChristophe Leroy Kernel modules are small pieces of compiled code which can 773b4fc92SChristophe Leroy be inserted in the running kernel, rather than being 873b4fc92SChristophe Leroy permanently built into the kernel. You use the "modprobe" 973b4fc92SChristophe Leroy tool to add (and sometimes remove) them. If you say Y here, 1073b4fc92SChristophe Leroy many parts of the kernel can be built as modules (by 1173b4fc92SChristophe Leroy answering M instead of Y where indicated): this is most 1273b4fc92SChristophe Leroy useful for infrequently used options which are not required 1373b4fc92SChristophe Leroy for booting. For more information, see the man pages for 1473b4fc92SChristophe Leroy modprobe, lsmod, modinfo, insmod and rmmod. 1573b4fc92SChristophe Leroy 1673b4fc92SChristophe Leroy If you say Y here, you will need to run "make 1773b4fc92SChristophe Leroy modules_install" to put the modules under /lib/modules/ 1873b4fc92SChristophe Leroy where modprobe can find them (you may need to be root to do 1973b4fc92SChristophe Leroy this). 2073b4fc92SChristophe Leroy 2173b4fc92SChristophe Leroy If unsure, say Y. 2273b4fc92SChristophe Leroy 2373b4fc92SChristophe Leroyif MODULES 2473b4fc92SChristophe Leroy 25df3e764dSLuis Chamberlainconfig MODULE_DEBUGFS 26df3e764dSLuis Chamberlain bool 27df3e764dSLuis Chamberlain 28df3e764dSLuis Chamberlainconfig MODULE_DEBUG 29df3e764dSLuis Chamberlain bool "Module debugging" 30df3e764dSLuis Chamberlain depends on DEBUG_FS 31df3e764dSLuis Chamberlain help 32df3e764dSLuis Chamberlain Allows you to enable / disable features which can help you debug 33df3e764dSLuis Chamberlain modules. You don't need these options on production systems. 34df3e764dSLuis Chamberlain 35df3e764dSLuis Chamberlainif MODULE_DEBUG 36df3e764dSLuis Chamberlain 37df3e764dSLuis Chamberlainconfig MODULE_STATS 38df3e764dSLuis Chamberlain bool "Module statistics" 39df3e764dSLuis Chamberlain depends on DEBUG_FS 40df3e764dSLuis Chamberlain select MODULE_DEBUGFS 41df3e764dSLuis Chamberlain help 42df3e764dSLuis Chamberlain This option allows you to maintain a record of module statistics. 43df3e764dSLuis Chamberlain For example, size of all modules, average size, text size, a list 44df3e764dSLuis Chamberlain of failed modules and the size for each of those. For failed 45df3e764dSLuis Chamberlain modules we keep track of modules which failed due to either the 46df3e764dSLuis Chamberlain existing module taking too long to load or that module was already 47df3e764dSLuis Chamberlain loaded. 48df3e764dSLuis Chamberlain 49df3e764dSLuis Chamberlain You should enable this if you are debugging production loads 50df3e764dSLuis Chamberlain and want to see if userspace or the kernel is doing stupid things 51df3e764dSLuis Chamberlain with loading modules when it shouldn't or if you want to help 52df3e764dSLuis Chamberlain optimize userspace / kernel space module autoloading schemes. 53df3e764dSLuis Chamberlain You might want to do this because failed modules tend to use 54df3e764dSLuis Chamberlain up significant amount of memory, and so you'd be doing everyone a 55df3e764dSLuis Chamberlain favor in avoiding these failures proactively. 56df3e764dSLuis Chamberlain 57df3e764dSLuis Chamberlain This functionality is also useful for those experimenting with 58df3e764dSLuis Chamberlain module .text ELF section optimization. 59df3e764dSLuis Chamberlain 60df3e764dSLuis Chamberlain If unsure, say N. 61df3e764dSLuis Chamberlain 62*8660484eSLuis Chamberlainconfig MODULE_DEBUG_AUTOLOAD_DUPS 63*8660484eSLuis Chamberlain bool "Debug duplicate modules with auto-loading" 64*8660484eSLuis Chamberlain help 65*8660484eSLuis Chamberlain Module autoloading allows in-kernel code to request modules through 66*8660484eSLuis Chamberlain the *request_module*() API calls. This in turn just calls userspace 67*8660484eSLuis Chamberlain modprobe. Although modprobe checks to see if a module is already 68*8660484eSLuis Chamberlain loaded before trying to load a module there is a small time window in 69*8660484eSLuis Chamberlain which multiple duplicate requests can end up in userspace and multiple 70*8660484eSLuis Chamberlain modprobe calls race calling finit_module() around the same time for 71*8660484eSLuis Chamberlain duplicate modules. The finit_module() system call can consume in the 72*8660484eSLuis Chamberlain worst case more than twice the respective module size in virtual 73*8660484eSLuis Chamberlain memory for each duplicate module requests. Although duplicate module 74*8660484eSLuis Chamberlain requests are non-fatal virtual memory is a limited resource and each 75*8660484eSLuis Chamberlain duplicate module request ends up just unnecessarily straining virtual 76*8660484eSLuis Chamberlain memory. 77*8660484eSLuis Chamberlain 78*8660484eSLuis Chamberlain This debugging facility will create pr_warn() splats for duplicate 79*8660484eSLuis Chamberlain module requests to help identify if module auto-loading may be the 80*8660484eSLuis Chamberlain culprit to your early boot virtual memory pressure. Since virtual 81*8660484eSLuis Chamberlain memory abuse caused by duplicate module requests could render a 82*8660484eSLuis Chamberlain system unusable this functionality will also converge races in 83*8660484eSLuis Chamberlain requests for the same module to a single request. You can boot with 84*8660484eSLuis Chamberlain the module.enable_dups_trace=1 kernel parameter to use WARN_ON() 85*8660484eSLuis Chamberlain instead of the pr_warn(). 86*8660484eSLuis Chamberlain 87*8660484eSLuis Chamberlain If the first module request used request_module_nowait() we cannot 88*8660484eSLuis Chamberlain use that as the anchor to wait for duplicate module requests, since 89*8660484eSLuis Chamberlain users of request_module() do want a proper return value. If a call 90*8660484eSLuis Chamberlain for the same module happened earlier with request_module() though, 91*8660484eSLuis Chamberlain then a duplicate request_module_nowait() would be detected. The 92*8660484eSLuis Chamberlain non-wait request_module() call is synchronous and waits until modprobe 93*8660484eSLuis Chamberlain completes. Subsequent auto-loading requests for the same module do 94*8660484eSLuis Chamberlain not trigger a new finit_module() calls and do not strain virtual 95*8660484eSLuis Chamberlain memory, and so as soon as modprobe successfully completes we remove 96*8660484eSLuis Chamberlain tracking for duplicates for that module. 97*8660484eSLuis Chamberlain 98*8660484eSLuis Chamberlain Enable this functionality to try to debug virtual memory abuse during 99*8660484eSLuis Chamberlain boot on systems which are failing to boot or if you suspect you may be 100*8660484eSLuis Chamberlain straining virtual memory during boot, and you want to identify if the 101*8660484eSLuis Chamberlain abuse was due to module auto-loading. These issues are currently only 102*8660484eSLuis Chamberlain known to occur on systems with many CPUs (over 400) and is likely the 103*8660484eSLuis Chamberlain result of udev issuing duplicate module requests for each CPU, and so 104*8660484eSLuis Chamberlain module auto-loading is not the culprit. There may very well still be 105*8660484eSLuis Chamberlain many duplicate module auto-loading requests which could be optimized 106*8660484eSLuis Chamberlain for and this debugging facility can be used to help identify them. 107*8660484eSLuis Chamberlain 108*8660484eSLuis Chamberlain Only enable this for debugging system functionality, never have it 109*8660484eSLuis Chamberlain enabled on real systems. 110*8660484eSLuis Chamberlain 111*8660484eSLuis Chamberlainconfig MODULE_DEBUG_AUTOLOAD_DUPS_TRACE 112*8660484eSLuis Chamberlain bool "Force full stack trace when duplicates are found" 113*8660484eSLuis Chamberlain depends on MODULE_DEBUG_AUTOLOAD_DUPS 114*8660484eSLuis Chamberlain help 115*8660484eSLuis Chamberlain Enabling this will force a full stack trace for duplicate module 116*8660484eSLuis Chamberlain auto-loading requests using WARN_ON() instead of pr_warn(). You 117*8660484eSLuis Chamberlain should keep this disabled at all times unless you are a developer 118*8660484eSLuis Chamberlain and are doing a manual inspection and want to debug exactly why 119*8660484eSLuis Chamberlain these duplicates occur. 120*8660484eSLuis Chamberlain 121df3e764dSLuis Chamberlainendif # MODULE_DEBUG 122df3e764dSLuis Chamberlain 12373b4fc92SChristophe Leroyconfig MODULE_FORCE_LOAD 12473b4fc92SChristophe Leroy bool "Forced module loading" 12573b4fc92SChristophe Leroy default n 12673b4fc92SChristophe Leroy help 12773b4fc92SChristophe Leroy Allow loading of modules without version information (ie. modprobe 12873b4fc92SChristophe Leroy --force). Forced module loading sets the 'F' (forced) taint flag and 12973b4fc92SChristophe Leroy is usually a really bad idea. 13073b4fc92SChristophe Leroy 13173b4fc92SChristophe Leroyconfig MODULE_UNLOAD 13273b4fc92SChristophe Leroy bool "Module unloading" 13373b4fc92SChristophe Leroy help 13473b4fc92SChristophe Leroy Without this option you will not be able to unload any 13573b4fc92SChristophe Leroy modules (note that some modules may not be unloadable 13673b4fc92SChristophe Leroy anyway), which makes your kernel smaller, faster 13773b4fc92SChristophe Leroy and simpler. If unsure, say Y. 13873b4fc92SChristophe Leroy 13973b4fc92SChristophe Leroyconfig MODULE_FORCE_UNLOAD 14073b4fc92SChristophe Leroy bool "Forced module unloading" 14173b4fc92SChristophe Leroy depends on MODULE_UNLOAD 14273b4fc92SChristophe Leroy help 14373b4fc92SChristophe Leroy This option allows you to force a module to unload, even if the 14473b4fc92SChristophe Leroy kernel believes it is unsafe: the kernel will remove the module 14573b4fc92SChristophe Leroy without waiting for anyone to stop using it (using the -f option to 14673b4fc92SChristophe Leroy rmmod). This is mainly for kernel developers and desperate users. 14773b4fc92SChristophe Leroy If unsure, say N. 14873b4fc92SChristophe Leroy 14973b4fc92SChristophe Leroyconfig MODULE_UNLOAD_TAINT_TRACKING 15073b4fc92SChristophe Leroy bool "Tainted module unload tracking" 15173b4fc92SChristophe Leroy depends on MODULE_UNLOAD 152df3e764dSLuis Chamberlain select MODULE_DEBUGFS 15373b4fc92SChristophe Leroy help 15473b4fc92SChristophe Leroy This option allows you to maintain a record of each unloaded 15573b4fc92SChristophe Leroy module that tainted the kernel. In addition to displaying a 15673b4fc92SChristophe Leroy list of linked (or loaded) modules e.g. on detection of a bad 15773b4fc92SChristophe Leroy page (see bad_page()), the aforementioned details are also 15873b4fc92SChristophe Leroy shown. If unsure, say N. 15973b4fc92SChristophe Leroy 16073b4fc92SChristophe Leroyconfig MODVERSIONS 16173b4fc92SChristophe Leroy bool "Module versioning support" 16273b4fc92SChristophe Leroy help 16373b4fc92SChristophe Leroy Usually, you have to use modules compiled with your kernel. 16473b4fc92SChristophe Leroy Saying Y here makes it sometimes possible to use modules 16573b4fc92SChristophe Leroy compiled for different kernels, by adding enough information 16673b4fc92SChristophe Leroy to the modules to (hopefully) spot any changes which would 16773b4fc92SChristophe Leroy make them incompatible with the kernel you are running. If 16873b4fc92SChristophe Leroy unsure, say N. 16973b4fc92SChristophe Leroy 17073b4fc92SChristophe Leroyconfig ASM_MODVERSIONS 17173b4fc92SChristophe Leroy bool 17273b4fc92SChristophe Leroy default HAVE_ASM_MODVERSIONS && MODVERSIONS 17373b4fc92SChristophe Leroy help 17473b4fc92SChristophe Leroy This enables module versioning for exported symbols also from 17573b4fc92SChristophe Leroy assembly. This can be enabled only when the target architecture 17673b4fc92SChristophe Leroy supports it. 17773b4fc92SChristophe Leroy 17873b4fc92SChristophe Leroyconfig MODULE_SRCVERSION_ALL 17973b4fc92SChristophe Leroy bool "Source checksum for all modules" 18073b4fc92SChristophe Leroy help 18173b4fc92SChristophe Leroy Modules which contain a MODULE_VERSION get an extra "srcversion" 18273b4fc92SChristophe Leroy field inserted into their modinfo section, which contains a 18373b4fc92SChristophe Leroy sum of the source files which made it. This helps maintainers 18473b4fc92SChristophe Leroy see exactly which source was used to build a module (since 18573b4fc92SChristophe Leroy others sometimes change the module source without updating 18673b4fc92SChristophe Leroy the version). With this option, such a "srcversion" field 18773b4fc92SChristophe Leroy will be created for all modules. If unsure, say N. 18873b4fc92SChristophe Leroy 18973b4fc92SChristophe Leroyconfig MODULE_SIG 19073b4fc92SChristophe Leroy bool "Module signature verification" 19173b4fc92SChristophe Leroy select MODULE_SIG_FORMAT 19273b4fc92SChristophe Leroy help 19373b4fc92SChristophe Leroy Check modules for valid signatures upon load: the signature 19473b4fc92SChristophe Leroy is simply appended to the module. For more information see 19573b4fc92SChristophe Leroy <file:Documentation/admin-guide/module-signing.rst>. 19673b4fc92SChristophe Leroy 19773b4fc92SChristophe Leroy Note that this option adds the OpenSSL development packages as a 19873b4fc92SChristophe Leroy kernel build dependency so that the signing tool can use its crypto 19973b4fc92SChristophe Leroy library. 20073b4fc92SChristophe Leroy 20173b4fc92SChristophe Leroy You should enable this option if you wish to use either 20273b4fc92SChristophe Leroy CONFIG_SECURITY_LOCKDOWN_LSM or lockdown functionality imposed via 20373b4fc92SChristophe Leroy another LSM - otherwise unsigned modules will be loadable regardless 20473b4fc92SChristophe Leroy of the lockdown policy. 20573b4fc92SChristophe Leroy 20673b4fc92SChristophe Leroy !!!WARNING!!! If you enable this option, you MUST make sure that the 20773b4fc92SChristophe Leroy module DOES NOT get stripped after being signed. This includes the 20873b4fc92SChristophe Leroy debuginfo strip done by some packagers (such as rpmbuild) and 20973b4fc92SChristophe Leroy inclusion into an initramfs that wants the module size reduced. 21073b4fc92SChristophe Leroy 21173b4fc92SChristophe Leroyconfig MODULE_SIG_FORCE 21273b4fc92SChristophe Leroy bool "Require modules to be validly signed" 21373b4fc92SChristophe Leroy depends on MODULE_SIG 21473b4fc92SChristophe Leroy help 21573b4fc92SChristophe Leroy Reject unsigned modules or signed modules for which we don't have a 21673b4fc92SChristophe Leroy key. Without this, such modules will simply taint the kernel. 21773b4fc92SChristophe Leroy 21873b4fc92SChristophe Leroyconfig MODULE_SIG_ALL 21973b4fc92SChristophe Leroy bool "Automatically sign all modules" 22073b4fc92SChristophe Leroy default y 22173b4fc92SChristophe Leroy depends on MODULE_SIG || IMA_APPRAISE_MODSIG 22273b4fc92SChristophe Leroy help 22373b4fc92SChristophe Leroy Sign all modules during make modules_install. Without this option, 22473b4fc92SChristophe Leroy modules must be signed manually, using the scripts/sign-file tool. 22573b4fc92SChristophe Leroy 22673b4fc92SChristophe Leroycomment "Do not forget to sign required modules with scripts/sign-file" 22773b4fc92SChristophe Leroy depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL 22873b4fc92SChristophe Leroy 22973b4fc92SChristophe Leroychoice 23073b4fc92SChristophe Leroy prompt "Which hash algorithm should modules be signed with?" 23173b4fc92SChristophe Leroy depends on MODULE_SIG || IMA_APPRAISE_MODSIG 23273b4fc92SChristophe Leroy help 23373b4fc92SChristophe Leroy This determines which sort of hashing algorithm will be used during 23473b4fc92SChristophe Leroy signature generation. This algorithm _must_ be built into the kernel 23573b4fc92SChristophe Leroy directly so that signature verification can take place. It is not 23673b4fc92SChristophe Leroy possible to load a signed module containing the algorithm to check 23773b4fc92SChristophe Leroy the signature on that module. 23873b4fc92SChristophe Leroy 23973b4fc92SChristophe Leroyconfig MODULE_SIG_SHA1 24073b4fc92SChristophe Leroy bool "Sign modules with SHA-1" 24173b4fc92SChristophe Leroy select CRYPTO_SHA1 24273b4fc92SChristophe Leroy 24373b4fc92SChristophe Leroyconfig MODULE_SIG_SHA224 24473b4fc92SChristophe Leroy bool "Sign modules with SHA-224" 24573b4fc92SChristophe Leroy select CRYPTO_SHA256 24673b4fc92SChristophe Leroy 24773b4fc92SChristophe Leroyconfig MODULE_SIG_SHA256 24873b4fc92SChristophe Leroy bool "Sign modules with SHA-256" 24973b4fc92SChristophe Leroy select CRYPTO_SHA256 25073b4fc92SChristophe Leroy 25173b4fc92SChristophe Leroyconfig MODULE_SIG_SHA384 25273b4fc92SChristophe Leroy bool "Sign modules with SHA-384" 25373b4fc92SChristophe Leroy select CRYPTO_SHA512 25473b4fc92SChristophe Leroy 25573b4fc92SChristophe Leroyconfig MODULE_SIG_SHA512 25673b4fc92SChristophe Leroy bool "Sign modules with SHA-512" 25773b4fc92SChristophe Leroy select CRYPTO_SHA512 25873b4fc92SChristophe Leroy 25973b4fc92SChristophe Leroyendchoice 26073b4fc92SChristophe Leroy 26173b4fc92SChristophe Leroyconfig MODULE_SIG_HASH 26273b4fc92SChristophe Leroy string 26373b4fc92SChristophe Leroy depends on MODULE_SIG || IMA_APPRAISE_MODSIG 26473b4fc92SChristophe Leroy default "sha1" if MODULE_SIG_SHA1 26573b4fc92SChristophe Leroy default "sha224" if MODULE_SIG_SHA224 26673b4fc92SChristophe Leroy default "sha256" if MODULE_SIG_SHA256 26773b4fc92SChristophe Leroy default "sha384" if MODULE_SIG_SHA384 26873b4fc92SChristophe Leroy default "sha512" if MODULE_SIG_SHA512 26973b4fc92SChristophe Leroy 27073b4fc92SChristophe Leroychoice 27173b4fc92SChristophe Leroy prompt "Module compression mode" 27273b4fc92SChristophe Leroy help 27373b4fc92SChristophe Leroy This option allows you to choose the algorithm which will be used to 27473b4fc92SChristophe Leroy compress modules when 'make modules_install' is run. (or, you can 27573b4fc92SChristophe Leroy choose to not compress modules at all.) 27673b4fc92SChristophe Leroy 27773b4fc92SChristophe Leroy External modules will also be compressed in the same way during the 27873b4fc92SChristophe Leroy installation. 27973b4fc92SChristophe Leroy 28073b4fc92SChristophe Leroy For modules inside an initrd or initramfs, it's more efficient to 28173b4fc92SChristophe Leroy compress the whole initrd or initramfs instead. 28273b4fc92SChristophe Leroy 28373b4fc92SChristophe Leroy This is fully compatible with signed modules. 28473b4fc92SChristophe Leroy 28573b4fc92SChristophe Leroy Please note that the tool used to load modules needs to support the 28673b4fc92SChristophe Leroy corresponding algorithm. module-init-tools MAY support gzip, and kmod 28773b4fc92SChristophe Leroy MAY support gzip, xz and zstd. 28873b4fc92SChristophe Leroy 28973b4fc92SChristophe Leroy Your build system needs to provide the appropriate compression tool 29073b4fc92SChristophe Leroy to compress the modules. 29173b4fc92SChristophe Leroy 29273b4fc92SChristophe Leroy If in doubt, select 'None'. 29373b4fc92SChristophe Leroy 29473b4fc92SChristophe Leroyconfig MODULE_COMPRESS_NONE 29573b4fc92SChristophe Leroy bool "None" 29673b4fc92SChristophe Leroy help 29773b4fc92SChristophe Leroy Do not compress modules. The installed modules are suffixed 29873b4fc92SChristophe Leroy with .ko. 29973b4fc92SChristophe Leroy 30073b4fc92SChristophe Leroyconfig MODULE_COMPRESS_GZIP 30173b4fc92SChristophe Leroy bool "GZIP" 30273b4fc92SChristophe Leroy help 30373b4fc92SChristophe Leroy Compress modules with GZIP. The installed modules are suffixed 30473b4fc92SChristophe Leroy with .ko.gz. 30573b4fc92SChristophe Leroy 30673b4fc92SChristophe Leroyconfig MODULE_COMPRESS_XZ 30773b4fc92SChristophe Leroy bool "XZ" 30873b4fc92SChristophe Leroy help 30973b4fc92SChristophe Leroy Compress modules with XZ. The installed modules are suffixed 31073b4fc92SChristophe Leroy with .ko.xz. 31173b4fc92SChristophe Leroy 31273b4fc92SChristophe Leroyconfig MODULE_COMPRESS_ZSTD 31373b4fc92SChristophe Leroy bool "ZSTD" 31473b4fc92SChristophe Leroy help 31573b4fc92SChristophe Leroy Compress modules with ZSTD. The installed modules are suffixed 31673b4fc92SChristophe Leroy with .ko.zst. 31773b4fc92SChristophe Leroy 31873b4fc92SChristophe Leroyendchoice 31973b4fc92SChristophe Leroy 32073b4fc92SChristophe Leroyconfig MODULE_DECOMPRESS 32173b4fc92SChristophe Leroy bool "Support in-kernel module decompression" 322169a58adSStephen Boyd depends on MODULE_COMPRESS_GZIP || MODULE_COMPRESS_XZ || MODULE_COMPRESS_ZSTD 32373b4fc92SChristophe Leroy select ZLIB_INFLATE if MODULE_COMPRESS_GZIP 32473b4fc92SChristophe Leroy select XZ_DEC if MODULE_COMPRESS_XZ 325169a58adSStephen Boyd select ZSTD_DECOMPRESS if MODULE_COMPRESS_ZSTD 32673b4fc92SChristophe Leroy help 32773b4fc92SChristophe Leroy 32873b4fc92SChristophe Leroy Support for decompressing kernel modules by the kernel itself 32973b4fc92SChristophe Leroy instead of relying on userspace to perform this task. Useful when 33073b4fc92SChristophe Leroy load pinning security policy is enabled. 33173b4fc92SChristophe Leroy 33273b4fc92SChristophe Leroy If unsure, say N. 33373b4fc92SChristophe Leroy 33473b4fc92SChristophe Leroyconfig MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS 33573b4fc92SChristophe Leroy bool "Allow loading of modules with missing namespace imports" 33673b4fc92SChristophe Leroy help 33773b4fc92SChristophe Leroy Symbols exported with EXPORT_SYMBOL_NS*() are considered exported in 33873b4fc92SChristophe Leroy a namespace. A module that makes use of a symbol exported with such a 33973b4fc92SChristophe Leroy namespace is required to import the namespace via MODULE_IMPORT_NS(). 34073b4fc92SChristophe Leroy There is no technical reason to enforce correct namespace imports, 34173b4fc92SChristophe Leroy but it creates consistency between symbols defining namespaces and 34273b4fc92SChristophe Leroy users importing namespaces they make use of. This option relaxes this 34373b4fc92SChristophe Leroy requirement and lifts the enforcement when loading a module. 34473b4fc92SChristophe Leroy 34573b4fc92SChristophe Leroy If unsure, say N. 34673b4fc92SChristophe Leroy 34773b4fc92SChristophe Leroyconfig MODPROBE_PATH 34873b4fc92SChristophe Leroy string "Path to modprobe binary" 34973b4fc92SChristophe Leroy default "/sbin/modprobe" 35073b4fc92SChristophe Leroy help 35173b4fc92SChristophe Leroy When kernel code requests a module, it does so by calling 35273b4fc92SChristophe Leroy the "modprobe" userspace utility. This option allows you to 35373b4fc92SChristophe Leroy set the path where that binary is found. This can be changed 35473b4fc92SChristophe Leroy at runtime via the sysctl file 35573b4fc92SChristophe Leroy /proc/sys/kernel/modprobe. Setting this to the empty string 35673b4fc92SChristophe Leroy removes the kernel's ability to request modules (but 35773b4fc92SChristophe Leroy userspace can still load modules explicitly). 35873b4fc92SChristophe Leroy 35973b4fc92SChristophe Leroyconfig TRIM_UNUSED_KSYMS 36073b4fc92SChristophe Leroy bool "Trim unused exported kernel symbols" if EXPERT 36173b4fc92SChristophe Leroy depends on !COMPILE_TEST 36273b4fc92SChristophe Leroy help 36373b4fc92SChristophe Leroy The kernel and some modules make many symbols available for 36473b4fc92SChristophe Leroy other modules to use via EXPORT_SYMBOL() and variants. Depending 36573b4fc92SChristophe Leroy on the set of modules being selected in your kernel configuration, 36673b4fc92SChristophe Leroy many of those exported symbols might never be used. 36773b4fc92SChristophe Leroy 36873b4fc92SChristophe Leroy This option allows for unused exported symbols to be dropped from 36973b4fc92SChristophe Leroy the build. In turn, this provides the compiler more opportunities 37073b4fc92SChristophe Leroy (especially when using LTO) for optimizing the code and reducing 37173b4fc92SChristophe Leroy binary size. This might have some security advantages as well. 37273b4fc92SChristophe Leroy 37373b4fc92SChristophe Leroy If unsure, or if you need to build out-of-tree modules, say N. 37473b4fc92SChristophe Leroy 37573b4fc92SChristophe Leroyconfig UNUSED_KSYMS_WHITELIST 37673b4fc92SChristophe Leroy string "Whitelist of symbols to keep in ksymtab" 37773b4fc92SChristophe Leroy depends on TRIM_UNUSED_KSYMS 37873b4fc92SChristophe Leroy help 37973b4fc92SChristophe Leroy By default, all unused exported symbols will be un-exported from the 38073b4fc92SChristophe Leroy build when TRIM_UNUSED_KSYMS is selected. 38173b4fc92SChristophe Leroy 38273b4fc92SChristophe Leroy UNUSED_KSYMS_WHITELIST allows to whitelist symbols that must be kept 38373b4fc92SChristophe Leroy exported at all times, even in absence of in-tree users. The value to 38473b4fc92SChristophe Leroy set here is the path to a text file containing the list of symbols, 38573b4fc92SChristophe Leroy one per line. The path can be absolute, or relative to the kernel 38673b4fc92SChristophe Leroy source tree. 38773b4fc92SChristophe Leroy 38873b4fc92SChristophe Leroyconfig MODULES_TREE_LOOKUP 38973b4fc92SChristophe Leroy def_bool y 39073b4fc92SChristophe Leroy depends on PERF_EVENTS || TRACING || CFI_CLANG 39173b4fc92SChristophe Leroy 39273b4fc92SChristophe Leroyendif # MODULES 393