From ba1315d0fbe7fa43aa7481b5d6e92bd03b0152d5 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 13 Sep 2008 14:59:38 +0000 Subject: modutils/*: rewrite by Timo Teras - a lot faster (linear algorithmic complexity, smaller memory foot print) - a lot smaller (the old code was overly complicated) - loading of aliases is now module-init-tools compliant - blacklisting is done correctly (-b option added) - module argument quoting done right - depmod now correctly generates modules.symbols and modules.alias add/remove: 16/21 grow/shrink: 4/6 up/down: 6930/-9316 Total: -2386 bytes text data bss dec hex filename 806039 592 6680 813311 c68ff busybox_old 803498 592 6676 810766 c5f0e busybox_unstripped --- modutils/Config.in | 238 ++++++++++++++++++++++------------------------------- 1 file changed, 98 insertions(+), 140 deletions(-) (limited to 'modutils/Config.in') diff --git a/modutils/Config.in b/modutils/Config.in index a430fcac3..e7b839db9 100644 --- a/modutils/Config.in +++ b/modutils/Config.in @@ -5,6 +5,20 @@ menu "Linux Module Utilities" +config DEFAULT_MODULES_DIR + string "Default directory containing modules" + default "/lib/modules" + help + Directory that contains kernel modules. + Defaults to "/lib/modules" + +config DEFAULT_DEPMOD_FILE + string "Default name of modules.dep" + default "modules.dep" + help + Filename that contains kernel modules dependencies. + Defaults to "modules.dep" + config MODPROBE_SMALL bool "Simplified modutils" default n @@ -54,48 +68,83 @@ config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED Check if the module is already loaded. N.B. It's racy. -config DEPMOD - bool "depmod" +config INSMOD + bool "insmod" default n depends on !MODPROBE_SMALL help - depmod generates modules.dep (FIXME: elaborate) + insmod is used to load specified modules in the running kernel. -config FEATURE_DEPMOD_PRUNE_FANCY - bool "Fancy dependency pruning" +config RMMOD + bool "rmmod" default n - depends on DEPMOD + depends on !MODPROBE_SMALL help - By default modules.dep contains all dependencies as listed by - the modules. - If you enable this option then we remove implied modules from - the dependencies. - This makes depmod somewhat bigger but generates a smaller - modules.dep file. + rmmod is used to unload specified modules from the kernel. - If unsure, say N. +config LSMOD + bool "lsmod" + default n + depends on !MODPROBE_SMALL + help + lsmod is used to display a list of loaded modules. -config FEATURE_DEPMOD_ALIAS - bool "Alias support" +config FEATURE_LSMOD_PRETTY_2_6_OUTPUT + bool "Pretty output" default n - depends on DEPMOD + depends on LSMOD help - By default modules.dep does not contain alias information. - Enable this to emit aliases of the form: + This option makes output format of lsmod adjusted to + the format of module-init-tools for Linux kernel 2.6. + Increases size somewhat. - alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs +config MODPROBE + bool "modprobe" + default n + depends on !MODPROBE_SMALL + help + Handle the loading of modules, and their dependencies on a high + level. -config INSMOD - bool "insmod" + Note that in the state, modprobe does not understand multiple + module options from the configuration file. See option below. + +config FEATURE_MODPROBE_BLACKLIST + bool + prompt "Blacklist support" + default n + depends on MODPROBE + help + Say 'y' here to enable support for the 'blacklist' command in + modprobe.conf. This prevents the alias resolver to resolve + blacklisted modules. This is useful if you want to prevent your + hardware autodetection scripts to load modules like evdev, frame + buffer drivers etc. + +config DEPMOD + bool "depmod" default n depends on !MODPROBE_SMALL help - insmod is used to load specified modules in the running kernel. + depmod generates modules.dep (and potentially modules.alias + and modules.symbols) that contain dependency information + for modprobe. + +comment "Options common to multiple modutils" + +config FEATURE_2_4_MODULES + bool "Support version 2.2/2.4 Linux kernels" + default n + depends on INSMOD || RMMOD || LSMOD + help + Support module loading for 2.2.x and 2.4.x Linux kernels. + This increases size considerably. Say N unless you plan + to run ancient kernels. config FEATURE_INSMOD_VERSION_CHECKING - bool "Module version checking" + bool "Enable module version checking" default n - depends on INSMOD && FEATURE_2_4_MODULES + depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE) help Support checking of versions for modules. This is used to ensure that the kernel and module are made for each other. @@ -103,7 +152,7 @@ config FEATURE_INSMOD_VERSION_CHECKING config FEATURE_INSMOD_KSYMOOPS_SYMBOLS bool "Add module symbols to kernel symbol table" default n - depends on INSMOD && FEATURE_2_4_MODULES + depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE) help By adding module symbols to the kernel symbol table, Oops messages occuring within kernel modules can be properly debugged. By enabling @@ -114,7 +163,7 @@ config FEATURE_INSMOD_KSYMOOPS_SYMBOLS config FEATURE_INSMOD_LOADINKMEM bool "In kernel memory optimization (uClinux only)" default n - depends on INSMOD && FEATURE_2_4_MODULES + depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE) help This is a special uClinux only memory optimization that lets insmod load the specified kernel module directly into kernel space, reducing @@ -122,9 +171,9 @@ config FEATURE_INSMOD_LOADINKMEM being loaded into memory. config FEATURE_INSMOD_LOAD_MAP - bool "Enable load map (-m) option" + bool "Enable insmod load map (-m) option" default n - depends on INSMOD && ( FEATURE_2_4_MODULES || FEATURE_2_6_MODULES ) + depends on FEATURE_2_4_MODULES && INSMOD help Enabling this, one would be able to get a load map output on stdout. This makes kernel module debugging @@ -135,138 +184,47 @@ config FEATURE_INSMOD_LOAD_MAP config FEATURE_INSMOD_LOAD_MAP_FULL bool "Symbols in load map" default y - depends on FEATURE_INSMOD_LOAD_MAP + depends on FEATURE_INSMOD_LOAD_MAP && !MODPROBE_SMALL help Without this option, -m will only output section load map. With this option, -m will also output symbols load map. -config RMMOD - bool "rmmod" - default n - depends on !MODPROBE_SMALL - help - rmmod is used to unload specified modules from the kernel. - -config LSMOD - bool "lsmod" - default n - depends on !MODPROBE_SMALL - help - lsmod is used to display a list of loaded modules. - -config FEATURE_LSMOD_PRETTY_2_6_OUTPUT - bool "Pretty output for 2.6.x Linux kernels" - default n - depends on LSMOD - help - This option makes output format of lsmod adjusted to - the format of module-init-tools for Linux kernel 2.6. - -config MODPROBE - bool "modprobe" - default n - depends on !MODPROBE_SMALL - help - Handle the loading of modules, and their dependencies on a high - level. - - Note that in the state, modprobe does not understand multiple - module options from the configuration file. See option below. - -config FEATURE_MODPROBE_MULTIPLE_OPTIONS - bool - prompt "Multiple options parsing" - default y - depends on MODPROBE - help - Allow modprobe to understand more than one option to pass to - modules. - - This is a WIP, while waiting for a common argument parsing - common amongst all BB applets (shell, modprobe, etc...) and - adds around 600 bytes on x86, 700 bytes on ARM. The code is - biggish and uggly, but just works. - - Saying Y here is not a bad idea if you're not that short - on storage capacity. - -config FEATURE_MODPROBE_FANCY_ALIAS - bool - prompt "Fancy alias parsing" - default y - depends on MODPROBE && FEATURE_2_6_MODULES - help - Say 'y' here to enable parsing of aliases with underscore/dash - mismatch between module name and file name, along with bus-specific - aliases (such as pci:... or usb:... aliases). - -config FEATURE_MODPROBE_BLACKLIST - bool - prompt "Blacklist support" - default n - depends on MODPROBE && FEATURE_2_6_MODULES - help - Say 'y' here to enable support for the 'blacklist' command in - modprobe.conf. This prevents the alias resolver to resolve - blacklisted modules. This is useful if you want to prevent your - hardware autodetection scripts to load modules like evdev, frame - buffer drivers etc. - -comment "Options common to multiple modutils" - depends on INSMOD || RMMOD || MODPROBE || LSMOD || DEPMOD - config FEATURE_CHECK_TAINTED_MODULE - # Simulate indentation bool "Support tainted module checking with new kernels" default y - depends on INSMOD || LSMOD + depends on !MODPROBE_SMALL help Support checking for tainted modules. These are usually binary only modules that will make the linux-kernel list ignore your support request. This option is required to support GPLONLY modules. -config FEATURE_2_4_MODULES - # Simulate indentation - bool "Support version 2.2.x to 2.4.x Linux kernels" +config FEATURE_MODUTILS_ALIAS + bool "Support for module.aliases file" default y - depends on INSMOD || RMMOD || MODPROBE + depends on DEPMOD || MODPROBE help - Support module loading for 2.2.x and 2.4.x Linux kernels. + Generate and parse modules.alias containing aliases for bus + identifiers: + alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs - Note: - This is automatically enabled if 2.6 modules are not enabled. + and aliases for logical modules names e.g.: + alias padlock_aes aes + alias aes_i586 aes + alias aes_generic aes -config FEATURE_2_6_MODULES - # Simulate indentation - bool "Support version 2.6.x Linux kernels" - default y - depends on INSMOD || RMMOD || MODPROBE - help - Support module loading for newer 2.6.x Linux kernels. - -config DEFAULT_MODULES_DIR - # Simulate indentation - string "Default directory containing modules" - default "/lib/modules" - depends on INSMOD || RMMOD || MODPROBE || MODPROBE_SMALL || DEPMOD - help - Directory that contains kernel modules. - Defaults to "/lib/modules" + Say Y if unsure. -config DEFAULT_DEPMOD_FILE - # Simulate indentation - string "Default name of modules.dep" - default "modules.dep" - depends on INSMOD || RMMOD || MODPROBE || MODPROBE_SMALL || DEPMOD +config FEATURE_MODUTILS_SYMBOLS + bool "Support for module.symbols file" + default y + depends on DEPMOD || MODPROBE help - Filename that contains kernel modules dependencies. - Defaults to "modules.dep" + Generate and parse modules.symbols containing aliases for + symbol_request() kernel calls, such as: + alias symbol:usb_sg_init usbcore -config FEATURE_QUERY_MODULE_INTERFACE - bool - default y - depends on FEATURE_2_4_MODULES && !FEATURE_2_6_MODULES + Say Y if unsure. endmenu -- cgit v1.2.3