1 module-init-tools - Linux userspace module loading utilities
2 ------------------------------------------------------------
4 NOTE: module-init-tools is due to be replaced with a new utility, which will
5 be based upon the "libkmod" (kmod) codebase, unified with this one. To
6 join in the fun, see #kmod on Freenode, and the mailing list. Consider
7 progress of this new project before embarking on new development here.
8 Once the replacement is ready, the existing codebase will be obsolete.
11 - Bugs: Please send email to list
12 - Git: git://git.kernel.org/pub/scm/utils/kernel/module-init-tools/module-init-tools.git
13 - IRC: irc.freenode.org/#module-init-tools
14 - Mail: linux-modules@vger.kernel.org
15 - Web: http://modules.wiki.kernel.org/
17 The module-init-tools are used by modern 2.6 series Linux systems to provide
18 userspace-side assistance in loading kernel modules and their dependencies.
19 Originally written to replace the older "modutils", the utilities include
20 the "modprobe" (load modules and their dependencies), "insmod" (load just
21 a single module), "modinfo" (retrieve module information), and other related
22 module management commands. These are intended to be relatively lightweight
23 in their design, since 2.6 series kernels do much of the work internally.
25 You will find documentation within the man pages and in this README file,
26 as well as some hints on development within the HACKING file. You are
27 encouraged to get involved by signing up to the linux-modules@vger.kernel.org
28 project mailing list, and posting patches (git pull requests are welcome).
29 You can also find further information, including the address of the mailing
30 list, this git repository, and so forth on the module-init-tools wiki.
32 Development takes place against the latest upstream Linux kernels (2.6.33
33 as of this writing, though kernel development moves quickly). Backward
34 compatibility is generally attempted, but forward compatibility (i.e. the
35 ability for a specific release of module-init-tools to work against data
36 files created by a later version as yet unreleased version) is not. In
37 particular, the generated data files within /lib/modules/<kernel version>
38 must not be assumed to have any particular format, nor should they be
39 parsed be any other tools. There is a specific "modinfo" utility intended
40 for the purposes of providing the information stored within those files.
43 - There is no backwards compatibility for pre-2.6 series kernels. If
44 you intend to use an older kernel (wherein the module utilities
45 must perform various linking stages in userspace), use an older
46 tool such as provided in the "modutils" legacy kernel package.
48 - Explicit locking of kernel modules is no longer being performed at
49 load time (the existing implementation required a writeable mount
50 in /lib/modules that is by no means assured - an alternative of
51 using SYSV locks was experimented with but deemed unnecessary).
52 The kernel will handle one modprobe instance racing with another
53 by denying the load and returning an error message.
56 - We are working on soft-dependency support that will allow modules
57 to provide hints as to dependencies that may not be explicit.
60 - A 2.6 series Linux kernel with sysfs, procfs, and loadable module
61 support enabled in the kernel configuration. It is also required
62 that sysfs and procfs be mounted in their usual /proc and /sys
63 locations in order for certain functionality to be provided.
65 - Module remove support must be enabled if removing is required. Yo
66 can also enable other options such as forced removal, but this is
67 really a bad idea for anything other than development.
69 - Module versioning (MODVERSIONS) must be enabled if you would
70 like to try to use modules from one kernel with another, similar
71 one without the kernel complaining loudly at the difference.
74 - Make sure you have appropriate development tools (gcc, GNU autotools,
75 docbook2man, etc. Some distributions may require optional packages
76 for a static version of glibc, as an example).
78 - To begin hacking on module-init-tools, you can do the following:
80 1). aclocal -I m4 && automake --add-missing --copy && autoconf
81 (or run "autoreconf" from an existing setup)
83 (optionally specify "--prefix" or "--mandir" for non /usr/local)
87 (to update /lib/modules/<kernel version> for the latest release)
89 Please direct any comment/question to the linux-modules mailing list at:
90 linux-modules@vger.kernel.org