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