modutils/*: rewrite by Timo Teras <timo.teras AT iki.fi>
- 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
This commit is contained 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,37 +68,6 @@ config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
|
||||
Check if the module is already loaded.
|
||||
N.B. It's racy.
|
||||
|
||||
config DEPMOD
|
||||
bool "depmod"
|
||||
default n
|
||||
depends on !MODPROBE_SMALL
|
||||
help
|
||||
depmod generates modules.dep (FIXME: elaborate)
|
||||
|
||||
config FEATURE_DEPMOD_PRUNE_FANCY
|
||||
bool "Fancy dependency pruning"
|
||||
default n
|
||||
depends on DEPMOD
|
||||
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.
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
config FEATURE_DEPMOD_ALIAS
|
||||
bool "Alias support"
|
||||
default n
|
||||
depends on DEPMOD
|
||||
help
|
||||
By default modules.dep does not contain alias information.
|
||||
Enable this to emit aliases of the form:
|
||||
|
||||
alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs
|
||||
|
||||
config INSMOD
|
||||
bool "insmod"
|
||||
default n
|
||||
@@ -92,55 +75,6 @@ config INSMOD
|
||||
help
|
||||
insmod is used to load specified modules in the running kernel.
|
||||
|
||||
config FEATURE_INSMOD_VERSION_CHECKING
|
||||
bool "Module version checking"
|
||||
default n
|
||||
depends on INSMOD && FEATURE_2_4_MODULES
|
||||
help
|
||||
Support checking of versions for modules. This is used to
|
||||
ensure that the kernel and module are made for each other.
|
||||
|
||||
config FEATURE_INSMOD_KSYMOOPS_SYMBOLS
|
||||
bool "Add module symbols to kernel symbol table"
|
||||
default n
|
||||
depends on INSMOD && FEATURE_2_4_MODULES
|
||||
help
|
||||
By adding module symbols to the kernel symbol table, Oops messages
|
||||
occuring within kernel modules can be properly debugged. By enabling
|
||||
this feature, module symbols will always be added to the kernel symbol
|
||||
table for properly debugging support. If you are not interested in
|
||||
Oops messages from kernel modules, say N.
|
||||
|
||||
config FEATURE_INSMOD_LOADINKMEM
|
||||
bool "In kernel memory optimization (uClinux only)"
|
||||
default n
|
||||
depends on INSMOD && FEATURE_2_4_MODULES
|
||||
help
|
||||
This is a special uClinux only memory optimization that lets insmod
|
||||
load the specified kernel module directly into kernel space, reducing
|
||||
memory usage by preventing the need for two copies of the module
|
||||
being loaded into memory.
|
||||
|
||||
config FEATURE_INSMOD_LOAD_MAP
|
||||
bool "Enable load map (-m) option"
|
||||
default n
|
||||
depends on INSMOD && ( FEATURE_2_4_MODULES || FEATURE_2_6_MODULES )
|
||||
help
|
||||
Enabling this, one would be able to get a load map
|
||||
output on stdout. This makes kernel module debugging
|
||||
easier.
|
||||
If you don't plan to debug kernel modules, you
|
||||
don't need this option.
|
||||
|
||||
config FEATURE_INSMOD_LOAD_MAP_FULL
|
||||
bool "Symbols in load map"
|
||||
default y
|
||||
depends on FEATURE_INSMOD_LOAD_MAP
|
||||
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
|
||||
@@ -156,12 +90,13 @@ config LSMOD
|
||||
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"
|
||||
bool "Pretty output"
|
||||
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.
|
||||
Increases size somewhat.
|
||||
|
||||
config MODPROBE
|
||||
bool "modprobe"
|
||||
@@ -174,38 +109,11 @@ config MODPROBE
|
||||
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
|
||||
depends on MODPROBE
|
||||
help
|
||||
Say 'y' here to enable support for the 'blacklist' command in
|
||||
modprobe.conf. This prevents the alias resolver to resolve
|
||||
@@ -213,60 +121,110 @@ config FEATURE_MODPROBE_BLACKLIST
|
||||
hardware autodetection scripts to load modules like evdev, frame
|
||||
buffer drivers etc.
|
||||
|
||||
config DEPMOD
|
||||
bool "depmod"
|
||||
default n
|
||||
depends on !MODPROBE_SMALL
|
||||
help
|
||||
depmod generates modules.dep (and potentially modules.alias
|
||||
and modules.symbols) that contain dependency information
|
||||
for modprobe.
|
||||
|
||||
comment "Options common to multiple modutils"
|
||||
depends on INSMOD || RMMOD || MODPROBE || LSMOD || DEPMOD
|
||||
|
||||
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 "Enable module version checking"
|
||||
default n
|
||||
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.
|
||||
|
||||
config FEATURE_INSMOD_KSYMOOPS_SYMBOLS
|
||||
bool "Add module symbols to kernel symbol table"
|
||||
default n
|
||||
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
|
||||
this feature, module symbols will always be added to the kernel symbol
|
||||
table for properly debugging support. If you are not interested in
|
||||
Oops messages from kernel modules, say N.
|
||||
|
||||
config FEATURE_INSMOD_LOADINKMEM
|
||||
bool "In kernel memory optimization (uClinux only)"
|
||||
default n
|
||||
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
|
||||
memory usage by preventing the need for two copies of the module
|
||||
being loaded into memory.
|
||||
|
||||
config FEATURE_INSMOD_LOAD_MAP
|
||||
bool "Enable insmod load map (-m) option"
|
||||
default n
|
||||
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
|
||||
easier.
|
||||
If you don't plan to debug kernel modules, you
|
||||
don't need this option.
|
||||
|
||||
config FEATURE_INSMOD_LOAD_MAP_FULL
|
||||
bool "Symbols in load map"
|
||||
default y
|
||||
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 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"
|
||||
Say Y if unsure.
|
||||
|
||||
config FEATURE_MODUTILS_SYMBOLS
|
||||
bool "Support for module.symbols file"
|
||||
default y
|
||||
depends on INSMOD || RMMOD || MODPROBE
|
||||
depends on DEPMOD || MODPROBE
|
||||
help
|
||||
Support module loading for newer 2.6.x Linux kernels.
|
||||
Generate and parse modules.symbols containing aliases for
|
||||
symbol_request() kernel calls, such as:
|
||||
alias symbol:usb_sg_init usbcore
|
||||
|
||||
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"
|
||||
|
||||
config DEFAULT_DEPMOD_FILE
|
||||
# Simulate indentation
|
||||
string "Default name of modules.dep"
|
||||
default "modules.dep"
|
||||
depends on INSMOD || RMMOD || MODPROBE || MODPROBE_SMALL || DEPMOD
|
||||
help
|
||||
Filename that contains kernel modules dependencies.
|
||||
Defaults to "modules.dep"
|
||||
|
||||
config FEATURE_QUERY_MODULE_INTERFACE
|
||||
bool
|
||||
default y
|
||||
depends on FEATURE_2_4_MODULES && !FEATURE_2_6_MODULES
|
||||
Say Y if unsure.
|
||||
|
||||
endmenu
|
||||
|
Reference in New Issue
Block a user