From: Emil Velikov Date: Tue, 11 Jun 2024 15:05:02 +0000 (+0100) Subject: man: add scdoc based man pages X-Git-Tag: v33~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f3a423b6d888f69929b86f62b03e4a8cc852c14f;p=thirdparty%2Fkmod.git man: add scdoc based man pages Working with xml is quite fiddly. Swap that for scdoc, which has very trivial markup-like syntax. We have opted for scdoc since it's available on practically any linux distribution. Implementation-wise it's a trivial C99 project, at 1k LoC. If using scdoc proves to be a burden, we can trivially port these to pandoc or similar - 90% of the content will stay the same. Signed-off-by: Emil Velikov Signed-off-by: Lucas De Marchi --- diff --git a/man/depmod.8.scd b/man/depmod.8.scd new file mode 100644 index 00000000..0fe91287 --- /dev/null +++ b/man/depmod.8.scd @@ -0,0 +1,126 @@ +DEPMOD(8) "kmod" "depmod" + +# NAME + +depmod - Generate modules.dep and map files. + +# SYNOPSIS + +*depmod* [*-b* _basedir_] [*-o* _outdir_] [*-e*] [*-E* _Module.symvers_] +\ \ \ \ \ \ \ \[*-F* _System.map_] [*-n*] [*-v*] [*-A*] [*-P* _prefix_] [*-w*] [_version_] + +*depmod* [*-e*] [*-E* _Module.symvers_] [*-F* _System.map_] [*-n*] [*-v*] [*-P* _prefix_] +\ \ \ \ \ \ \ \[*-w*] [_version_] [_filename_...] + +# DESCRIPTION + +Linux kernel modules can provide services (called "symbols") for other modules +to use (using one of the EXPORT_SYMBOL variants in the code). If a second module +uses this symbol, that second module clearly depends on the first module. These +dependencies can get quite complex. + +*depmod* creates a list of module dependencies by reading each module under +@MODULE_DIRECTORY@/_version_ and determining what symbols it exports and what +symbols it needs. By default, this list is written to modules.dep, and a binary +hashed version named modules.dep.bin, in the same directory. If filenames are +given on the command line, only those modules are examined (which is rarely +useful unless all modules are listed). * depmod* also creates a list of symbols +provided by modules in the file named modules.symbols and its binary hashed +version, modules.symbols.bin. Finally, *depmod* will output a file named +modules.devname if modules supply special device names (devname) that should be +populated in /dev on boot (by a utility such as systemd-tmpfiles). + +If a _version_ is provided, then that kernel version's module directory is used +rather than the current kernel version (as returned by *uname -r*). + +# OPTIONS + +*-a*, *--all* + Probe all modules. This option is enabled by default if no file names + are given in the command-line. + +*-A*, *--quick* + This option scans to see if any modules are newer than the + modules.dep file before any work is done: if not, it silently exits + rather than regenerating the files. + +*-b* _basedir_, *--basedir* _basedir_ + If your modules are not currently in the (normal) directory + @MODULE_DIRECTORY@/_version_, but in a staging area, you can specify a + _basedir_ which is prepended to the directory name. This _basedir_ is + stripped from the resulting modules.dep file, so it is ready to be moved + into the normal location. Use this option if you are a distribution + vendor who needs to pre-generate the meta-data files rather than running + depmod again later. + +*-o* _outdir_, *--outdir* _outdir_ + Set the output directory where depmod will store any generated file. + _ outdir_ serves as a root to that location, similar to how _basedir_ is + used. Also this setting takes precedence and if used together with + _basedir_ it will result in the input being that directory, but the output + being the one set by _outdir_. + +*-C*, *--config* _file_ _or_ _directory_ + This option overrides the default configuration directory at + /etc/depmod.d/. + +*-e*, *--errsyms* + When combined with the *-F* option, this reports any symbols which a + module needs which are not supplied by other modules or the kernel. + Normally, any symbols not provided by modules are assumed to be provided + by the kernel (which should be true in a perfect world), but this + assumption can break especially when additionally updated third party + drivers are not correctly installed or were built incorrectly. + +*-E*, *--symvers* + When combined with the *-e* option, this reports any symbol versions + supplied by modules that do not match with the symbol versions provided + by the kernel in its Module.symvers. This option is mutually + incompatible with *-F*. + +*-F*, *--filesyms* _System.map_ + Supplied with the System.map produced when the kernel was built, this + allows the *-e* option to report unresolved symbols. This option is + mutually incompatible with *-E*. + +*-h*, *--help* + Print the help message and exit. + +*-n*, *--show*, *--dry-run* + This sends the resulting modules.dep and the various map files to + standard output rather than writing them into the module directory. + +*-P* + Some architectures prefix symbols with an extraneous character. This + specifies a prefix character (for example '\_') to ignore. + +*-v*, *--verbose* + In verbose mode, *depmod* will print (to stdout) all the symbols each + module depends on and the module's file name which provides that symbol. + +*-V*, *--version* + Show version of program and exit. See below for caveats when run on + older kernels. + +*-w* + Warn on duplicate dependencies, aliases, symbol versions, etc. + +# COPYRIGHT + +This manual page originally Copyright 2002, Rusty Russell, IBM Corporation. +Portions Copyright Jon Masters, and others. + +# SEE ALSO + +*depmod.d*(5), *modprobe*(8), *modules.dep*(5) + +# AUTHORS + +*Jon Masters* + Developer + +*Robby Workman* + Developer + +*Lucas De Marchi* + Developer diff --git a/man/depmod.d.5.scd b/man/depmod.d.5.scd new file mode 100644 index 00000000..9c424781 --- /dev/null +++ b/man/depmod.d.5.scd @@ -0,0 +1,95 @@ +DEPMOD.D(5) "kmod" "depmod.d" + +# NAME + +depmod.d - Configuration directory for depmod + +# SYNOPSIS + +/lib/depmod.d/\*.conf + +@DISTCONFDIR@/depmod.d/\*.conf + +/usr/local/lib/depmod.d/\*.conf + +/run/depmod.d/\*.conf + +/etc/depmod.d/\*.conf + +# DESCRIPTION + +The order in which modules are processed by the *depmod* command can be altered +on a global or per-module basis. This is typically useful in cases where +built-in kernel modules are complemented by custom built versions of the same +and the user wishes to affect the priority of processing in order to override +the module version supplied by the kernel. + +The format of files under depmod.d is simple: one command per line, with blank +lines and lines starting with '#' ignored (useful for adding comments). A '\\' +at the end of a line causes it to continue on the next line, which makes the +files a bit neater. + +# COMMANDS + +search _subdirectory..._ + This allows you to specify the order in which @MODULE_DIRECTORY@ (or + other configured module location) subdirectories will be processed by + *depmod*. Directories are listed in order, with the highest priority + given to the first listed directory and the lowest priority given to the + last directory listed. The special keyword *built-in* refers to the + standard module directories installed by the kernel. Another special + keyword *external* refers to the list of external directories, defined + by the *external* command. + + By default, depmod will give a higher priority to a directory with the + name *updates* using this built-in search string: "updates built-in" but + more complex arrangements are possible and are used in several popular + distributions. + +override _modulename_ _kernelversion_ _modulesubdirectory_ + This command allows you to override which version of a specific module + will be used when more than one module sharing the same name is + processed by the *depmod* command. It is possible to specify one kernel + or all kernels using the \* wildcard. _ modulesubdirectory_ is the name + of the subdirectory under @MODULE_DIRECTORY@ (or other module location) + where the target module is installed. + + For example, it is possible to override the priority of an updated test + module called *kmod* by specifying the following command: "override + kmod \* extra". This will ensure that any matching module name installed + under the *extra* subdirectory within @MODULE_DIRECTORY@ (or other + module location) will take priority over any likenamed module already + provided by the kernel. + +external _kernelversion_ _absolutemodulesdirectory..._ + This specifies a list of directories, which will be checked according to + the priorities in the *search* command. The order matters also, the + first directory has the higher priority. + + The _kernelversion_ is a POSIX regular expression or \* wildcard, like + in the *override*. + +exclude _excludedir_ + This specifies the trailing directories that will be excluded during the + search for kernel modules. + + The _excludedir_ is the trailing directory to exclude + +# COPYRIGHT + +This manual page Copyright 2006-2010, Jon Masters, Red Hat, Inc. + +# SEE ALSO + +*depmod*(8) + +# AUTHORS + +*Jon Masters* + Developer + +*Robby Workman* + Developer + +*Lucas De Marchi* + Developer diff --git a/man/insmod.8.scd b/man/insmod.8.scd new file mode 100644 index 00000000..b6f8654d --- /dev/null +++ b/man/insmod.8.scd @@ -0,0 +1,36 @@ +INSMOD(8) "kmod" "insmod" + +# NAME + +insmod - Simple program to insert a module into the Linux Kernel + +# SYNOPSIS + +*insmod* [_filename_] [_module options_...] + +# DESCRIPTION + +*insmod* is a trivial program to insert a module into the kernel. Most users +will want to use* modprobe*(8) instead, which is more clever and can handle +module dependencies. + +Only the most general of error messages are reported: as the work of trying to +link the module is now done inside the kernel, the *dmesg* usually gives more +information about errors. + +# COPYRIGHT + +This manual page originally Copyright 2002, Rusty Russell, IBM Corporation. +Maintained by Jon Masters and others. + +# SEE ALSO + +*modprobe*(8), *rmmod*(8), *lsmod*(8), *modinfo*(8) *depmod*(8) + +# AUTHORS + +*Jon Masters* + Developer + +*Lucas De Marchi* + Developer diff --git a/man/kmod.8.scd b/man/kmod.8.scd new file mode 100644 index 00000000..d292a133 --- /dev/null +++ b/man/kmod.8.scd @@ -0,0 +1,48 @@ +KMOD(8) "kmod" "kmod" + +# NAME + +kmod - Program to manage Linux Kernel modules + +# SYNOPSIS + +*kmod* [*OPTIONS*...] [_COMMAND_] [*COMMAND_OPTIONS*...] + +# DESCRIPTION + +*kmod* is a multi-call binary which implements the programs used to control +Linux Kernel modules. Most users will only run it using its other names. + +# OPTIONS + +*-V --version* + Show the program version and exit. + +*-h --help* + Show the help message. + +# COMMANDS + +*help* + Show the help message. + +*list* + List the currently loaded modules. + +*static-nodes* + Output the static device nodes information provided by the modules of + the currently running kernel version. + +# COPYRIGHT + +This manual page originally Copyright 2014, Marco d'Itri. Maintained by Lucas De +Marchi and others. + +# SEE ALSO + +*lsmod*(8), *rmmod*(8), *insmod*(8), *modinfo*(8), *modprobe*(8), *depmod*(8) + +# AUTHOR + +*Lucas De Marchi* + Developer diff --git a/man/lsmod.8.scd b/man/lsmod.8.scd new file mode 100644 index 00000000..7195cbae --- /dev/null +++ b/man/lsmod.8.scd @@ -0,0 +1,30 @@ +LSMOD(8) "kmod" "lsmod" + +# NAME + +lsmod - Show the status of modules in the Linux Kernel + +# SYNOPSIS +*lsmod* + +# DESCRIPTION + +*lsmod* is a trivial program which nicely formats the contents of the +/proc/modules, showing what kernel modules are currently loaded. + +# COPYRIGHT + +This manual page originally Copyright 2002, Rusty Russell, IBM Corporation. +Maintained by Jon Masters and others. + +# SEE ALSO + +*insmod*(8), *modprobe*(8), *modinfo*(8) *depmod*(8) + +# AUTHORS + +*Jon Masters* + Developer + +*Lucas De Marchi* + Developer diff --git a/man/modinfo.8.scd b/man/modinfo.8.scd new file mode 100644 index 00000000..fd945cec --- /dev/null +++ b/man/modinfo.8.scd @@ -0,0 +1,78 @@ +MODINFO(8) "kmod" "modinfo" + +# NAME + +modinfo - Show information about a Linux Kernel module + +# SYNOPSIS + +*modinfo* [*-0*] [*-F* _field_] [*-k* _kernel_] [modulename|filename...] + +*modinfo* *-V* + +*modinfo* *-h* + +# DESCRIPTION + +*modinfo* extracts information from the Linux Kernel modules given on the +command line. If the module name is not a filename, then the @MODULE_DIRECTORY@/ +_version_ directory is searched, as is also done by *modprobe*(8) when loading +kernel modules. + +*modinfo* by default lists each attribute of the module in form _fieldname_ : +_value_, for easy reading. The filename is listed the same way (although it's +not really an attribute). + +This version of *modinfo* can understand modules of any Linux Kernel +architecture. + +# OPTIONS + +*-V*, *--version* + Print the modinfo version. + +*-F*, *--field* + Only print this field value, one per line. This is most useful for + scripts. Field names are case-insensitive. Common fields (which may not + be in every module) include author, description, license, parm, depends, + and alias. There are often multiple parm, alias and depends fields. The + special field filename lists the filename of the module. + +*-b* _basedir_, *--basedir* _basedir_ + Root directory for modules, / by default. + +*-k* _kernel_ + Provide information about a kernel other than the running one. This is + particularly useful for distributions needing to extract information + from a newly installed (but not yet running) set of kernel modules. For + example, you wish to find which firmware files are needed by various + modules in a new kernel for which you must make an initrd/initramfs + image prior to booting. + +*-0*, *--null* + Use the ASCII zero character to separate field values, instead of a new + line. This is useful for scripts, since a new line can theoretically + appear inside a field. + +*-a* *--author*, *-d* *--description*, *-l* *--license*, *-p* *--parameters*, +*-n* *--filename* + These are shortcuts for the *--field* flag's author, description, + license, parm and filename arguments, to ease the transition from the + old modutils *modinfo*. + +# COPYRIGHT + +This manual page originally Copyright 2003, Rusty Russell, IBM Corporation. +Maintained by Jon Masters and others. + +# SEE ALSO + +*modprobe*(8) + +# AUTHORS + +*Jon Masters* + Developer + +*Lucas De Marchi* + Developer diff --git a/man/modprobe.8.scd b/man/modprobe.8.scd new file mode 100644 index 00000000..f678654c --- /dev/null +++ b/man/modprobe.8.scd @@ -0,0 +1,216 @@ +MODPROBE(8) "kmod" "modprobe" + +# NAME + +modprobe - Add and remove modules from the Linux Kernel + +# SYNOPSIS + +*modprobe* [*-v*] [*-V*] [*-C *_config-file_] [*-n*] [*-i*] [*-q*] [*-b*] [_modulename_] +\ \ \ \ \ \ \ \ \ \[_module parameters_...] + +*modprobe* [-r] [*-v*] [*-n*] [*-i*] [_modulename_...] + +*modprobe* [-c] + +*modprobe* [--dump-modversions] [_filename_] + +# DESCRIPTION + +*modprobe* intelligently adds or removes a module from the Linux kernel: note +that for convenience, there is no difference between \_ and - in module names +(automatic underscore conversion is performed). * modprobe* looks in the module +directory @DISTCONFDIR@/`uname -r` for all the modules and other files, except +for the optional configuration files in the /etc/modprobe.d directory (see +*modprobe.d*(5)). * modprobe* will also use module options specified on the +kernel command line in the form of .