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