Commit Graph

55 Commits

Author SHA1 Message Date
Michal Suchanek
9d1fb317c8 libkmod, depmod, modprobe: Make directory for kernel modules configurable
Now that modprobe.d is searched under ${prefix}/lib, allow a complete
transition to files only under ${prefix} by adding a ${module_directory}
configuration. This specifies the directory where to search for kernel
modules and should match the location where the kernel/distro installs
them.

With this distributions that do not want to ship files in /lib can also
move kernel modules to /usr while others can keep them in /lib.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Link: https://lore.kernel.org/r/a3765f4e8ae3ce29c0847a0132d4a8d51ad040a9.1699618135.git.msuchanek@suse.de
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2023-12-06 09:53:05 -06:00
Michal Suchanek
8463809f8a libkmod, depmod: Load modprobe.d, depmod.d from ${prefix}/lib.
There is an ongoing effort to limit use of files outside of /usr (or
${prefix} on general). Currently all modprobe.d paths are hardcoded to
outside of $prefix. Teach kmod to load modprobe.d from ${prefix}/lib.

On some distributions /usr/lib and /lib are the same directory because
of a compatibility symlink, and it is possible to craft configuration
files with sideeffects that would behave differently when loaded twice.
However, the override semantic ensures that one 'overrides' the other,
and only one configuration file of the same name is loaded from any of
the search directories.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Link: https://lore.kernel.org/r/a290343ce32e2a3c25b134e4f27c13b26e06c9e0.1689681454.git.msuchanek@suse.de
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2023-10-17 12:27:59 -05:00
Michal Suchanek
4e7effbdc0 man/depmod.d: Fix incorrect /usr/lib search path
depmod searches /lib/depmod.d but the man page says /usr/lib/depmod.d is
searched. Align the documentation with the code.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
Link: https://lore.kernel.org/r/9c5a6356b1a111eb6e17ddb110494b7f1d1b44c0.1689681454.git.msuchanek@suse.de
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2023-10-17 12:27:59 -05:00
Emil Velikov
1712a1548e depmod: Introduce outdir option
This option is equivalent to basedir, with the small difference being
that's where the meta-data files are generated. In other words, this
allows us to have read-only input modules and modules.dep, while still
being able to generate the meta-data files.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
[ Move files to a different dir so input files (produced by kernel build
  system is separate from the files generated by depmod (output) ]
Signed-off-by: Lucas De Marchi <lucas.demarchi@gmail.com>
2023-02-09 07:09:06 -08:00
Yauheni Kaliuta
06fadcc6b1 man/rmmod: explain why modprobe -r is more useful
Improve user experience by explaining the option so the user may
not search explanations in other manpages (modprobe).

Signed-off-by: Yauheni Kaliuta <ykaliuta@redhat.com>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2023-02-08 09:10:05 -08:00
Gustavo Sousa
883d931d1b modprobe: Allow passing path to module
This is useful to kernel module developers for testing a just compiled
module: instead of using insmod, they can load the module from the path
while getting all the benefits of modprobe (e.g. module dependency
resolution).

v2:
  - Add test for relative path as well. (Lucas)
  - Add note warning about modules with dependencies not matching the
    installed depmod database. (Lucas)

Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2023-01-13 16:48:02 -08:00
Lucas De Marchi
2b98ed8886 modprobe: Add --wait
Retry module removal if it fails due to EAGAIN. This allows user to pass
--wait <timeout>, during which `modprobe -r` will keep trying to remove
the module.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
2022-06-26 23:23:46 -07:00
Saul Wold
f50e2d6757 depmod: Add support for excluding a directory
This adds support to depmod to enable a new exclude directive in
the depmod.d/*.conf configuration file. Currently depmod
already excludes directories named source or build. This change
will allow additional directories like .debug to be excluded also
via a new exclude directive.

depmod.d/exclude.conf example:
exclude	.debug

Signed-off-by: Saul Wold <saul.wold@windriver.com>
[ Fix warnings and make should_exclude_dir() return bool ]
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
2022-04-01 21:44:15 -07:00
Lucas De Marchi
9319b0f4cb Support /usr/local for configuration files
Add /usr/local to the search path for configuration files. These are
intended for local installs, provided /usr/local is given as prefix.
2021-01-18 18:26:36 -08:00
Lucas De Marchi
67e43bbe04 libkmod: Fix documentation on config precedence order
/etc is has higher priority than /run.
2021-01-18 18:26:36 -08:00
Samanta Navarro
2f38000256 man: fix typo 2020-10-19 09:12:53 -07:00
Daniel Kahn Gillmor
aca61d3721 man: Fix typo 2019-01-14 14:24:10 -08:00
Lucas De Marchi
94aad8787f man: depmod: remove deprecated -m option
Thanks to Howard Johnson <hwj@bridgeportcontractor.com> for noticing.
2018-07-20 13:23:57 -07:00
Chris Stackpole
8c50dc4e3a Phrasing correction in modprobe man page 2018-05-14 15:04:55 -07:00
Christopher Díaz Riveros
8803e486a9 man/depmod: Add references in other man pages
Depmod man page is not referenced in some man pages. This makes it
harder to find through reading documentation.

References added to:

	-man/insmod.xml
	-man/lsmod.xml
	-man/modprobe.xml
	-man/rmmod.xml

Signed-off-by: Christopher Díaz Riveros <chrisadr@gentoo.org>
2017-10-16 14:39:20 -07:00
Yauheni Kaliuta
e61fb329dd man/depmod.d: add external keyword description
The commit 'depmod: implement external directories support' added
external directories support (see
7da6884e73).

This patch documents the extention in the manpage.

Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
2017-07-21 10:01:32 -07:00
Lucas De Marchi
72167ba113 man: make error message clearer for missing xstlproc
We can't do at configure phase since we actually ship the built man pages with
dist, so it's fine not having xsltproc if building from dist. If building from
the repository, it's better to have have a better message saying xsltproc was
not found than trying to execute the argument to xsltproc. Now message is:

  XSLT     depmod.d.5
  /bin/sh: line 1: xsltproc: command not found

Instead of:

  XSLT     depmod.d.5
  /bin/sh: --nonet: command not found
2017-02-23 18:31:15 -08:00
Santiago Vila
8feffdfa2e kmod: fix small typo in rmmod(8)
This is how rmmod(8) looks like:

SEE ALSO
       modprobe(8), insmod(8), lsmod(8)modinfo(8)

The attached trivial patch fixes it:

SEE ALSO
       modprobe(8), insmod(8), lsmod(8), modinfo(8)
2015-06-08 22:46:42 -03:00
Marco d'Itri
66f4f6804c Add the man page for kmod(8) 2014-09-22 08:52:47 -03:00
Marco d'Itri
fde693c94f Document depmod --show in depmod(8) 2014-09-20 11:23:56 -03:00
Joe Lawrence
445e51c57d man: fixup spacing/parens in modprobe.d(5) 2014-05-13 14:45:15 -03:00
Lucas De Marchi
3be5bf4646 man: use systemd as example instead of udev
Nowadays udev doesn't create nodes in /dev anymore. This role is rather
taken by systemd-tmpfiles on early boot so reference it generically as
systemd.
2014-03-06 02:47:05 -03:00
Lucas De Marchi
eb18b26905 man: clarify the support to modules.dep file 2014-03-06 02:46:27 -03:00
Lucas De Marchi
06eb29e117 build-sys: add small redirecting Makefiles
These redirecting makefiles simplifies compiling from some editors and
when CWD is not the root of the source tree. This is similar to what was
introduced in systemd in 340d89e ("build-sys: add small redirecting
Makefiles to simplify compilation from within emacs")
2014-03-06 01:59:58 -03:00
Stephen Kitt
a4bd1441e5 Remove "rmmod -w" documentation and getopt entry
This patch removes the cmdopts declaration and the documentation. They
were leftover from the -w removal.
2014-01-26 18:00:23 -02:00
Lukas Berk
3d51a2f6ef man: insmod documentation fix
Add comma between lsmod(8) and modinfo(8)

Signed-off-by: Lukas Berk <lberk@redhat.com>
2014-01-24 10:23:30 -02:00
Lucas De Marchi
2726da5768 man: Change my contact email address 2014-01-02 17:13:38 -02:00
Lucas De Marchi
eb978f10bd build-sys: Add AM_V_XSLT to rule creating man pages 2013-04-21 16:33:54 -03:00
Lucas De Marchi
eecdcf2e42 man: fix lib dir in which we look for config
Thanks to William Hubbs <w.d.hubbs@gmail.com> for spotting the bug.
2013-01-07 23:14:00 -02:00
Dave Reisner
1a3fa1a1a5 modinfo: clarify verbiage for field shortcuts
Cleanup the punctuation and grammar in this blurb, specifically pointing
out what these are shortcuts for.
2012-09-08 14:40:37 -04:00
Dave Reisner
2077017f11 man/rmmod: specify each option in separate <term> tag 2012-07-26 09:19:56 -03:00
Dave Reisner
e3366d46bf man/depmod: specify each option in separate <term> tag 2012-07-26 09:19:53 -03:00
Dave Reisner
0e581357b6 man/modprobe: specify each option in separate <term> tag 2012-07-25 19:50:56 -04:00
Dave Reisner
ffeccb511c man/modinfo: specify each option in separate <term> tag
This has the end result of comma delimiting equivalent options in the
manpage, similar to many other manuals.
2012-07-25 19:50:04 -04:00
Dave Reisner
ff9909694b man/modinfo: document longopts for field shortcuts 2012-07-25 19:37:49 -04:00
Dave Reisner
072122f9dc man/modinfo: document --basedir option
This was never documented in the manpage of module-init-tools either.
The flag is identical in function to modprobe's --dirname option, so use
the same language to describe it.
2012-07-25 19:37:47 -04:00
Dave Reisner
465f2d6b7c man/modprobe: clarify --dirname option
The documentation for this flag leads one to believe that the full path
to the module directory is needed. In reality, this flag specifies only
the root of the module path.
2012-07-25 19:37:17 -04:00
Josh Boyer
7ef9f30c91 doc: Don't reference /etc/modprobe.conf
kmod doesn't read /etc/modprobe.conf at all, so don't mention it in the
modprobe man page.  Point users to modprobe.d(5) instead.
2012-05-23 18:03:35 -03:00
Kay Sievers
471a7d0089 doc: silent man page generation and fix gtk-doc warnings 2012-04-15 18:10:10 -03:00
Lucas De Marchi
dcf06c5306 man: detail modprobe.blacklist in kcmdline 2012-02-27 20:35:12 -03:00
Lucas De Marchi
6923e95b66 man: insmod: we don't handle modules from stdin
- Gah, kmod insmod can't load from stdin anymore. :/
- What's the use case?
- zcat module.ko.gz | insmod - (but the new insmod apparently can load .gz fine)
- yes... just insmod module.ko.gz
- and actually insmod(8) says it works. :)

Not anymore...
2012-02-03 16:33:36 -02:00
Dave Reisner
3e71e7e7ad fix building and cleaning of manpages
- add modules.dep as an explicit dependency of modules.dep.bin to ensure
  parallel builds don't fail
- add generated man pages to CLEANFILES
2012-02-03 09:10:13 -05:00
Gustavo Sverzut Barbieri
f4ac4a0b4e fix manpage build and install.
just build and install manpages if tools are enabled.

List stub modules.dep.bin in proper variable.
2012-02-02 17:04:29 -02:00
Miklos Vajna
9be0162f9b man: spelling fixes 2012-01-16 23:01:36 -02:00
Lucas De Marchi
9f11c43d8d man: build modinfo man page 2012-01-12 14:33:05 -02:00
Lucas De Marchi
f57497cc9a man: build modprobe man page 2012-01-12 14:33:05 -02:00
Lucas De Marchi
dfcb8aa651 man: build rmmod man page 2012-01-12 14:33:05 -02:00
Lucas De Marchi
26df21009d man: build lsmod man page 2012-01-12 14:33:04 -02:00
Lucas De Marchi
d5578ee0db man: build insmod man page 2012-01-12 14:33:04 -02:00
Lucas De Marchi
6d96056303 man: build depmod man page 2012-01-12 14:33:04 -02:00