| 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 |