-<?xml version='1.0'?> <!--*-nxml-*-->
+<?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
-This file is part of systemd.
+ SPDX-License-Identifier: LGPL-2.1+
-Copyright 2013 Harald Hoyer
+ This file is part of systemd.
-systemd is free software; you can redistribute it and/or modify it
-under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-systemd is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with systemd; If not, see <http://www.gnu.org/licenses/>.
+ Copyright 2013 Harald Hoyer
-->
<refentry id="kernel-install">
<refsynopsisdiv>
<cmdsynopsis>
- <command>kernel-install</command> <arg choice="req">COMMAND</arg> <arg choice="req">KERNEL VERSION</arg> <arg choice="req">KERNEL IMAGE</arg>
+ <command>kernel-install</command>
+ <arg choice="plain">COMMAND</arg>
+ <arg choice="plain"><replaceable>KERNEL-VERSION</replaceable></arg>
+ <arg choice="opt"><replaceable>KERNEL-IMAGE</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
initramfs images to and from <filename>/boot</filename>.
</para>
- <para>kernel-install will execute the files located in the directory <filename>/usr/lib/kernel/install.d/</filename>
+ <para><command>kernel-install</command> will execute the files
+ located in the directory <filename>/usr/lib/kernel/install.d/</filename>
and the local administration directory <filename>/etc/kernel/install.d/</filename>.
- All files are collectively sorted and executed in lexical order, regardless of the directories in
- which they live. However, files with identical file names replace each other.
+ All files are collectively sorted and executed in lexical order, regardless of the directory in
+ which they live. However, files with identical filenames replace each other.
Files in <filename>/etc/kernel/install.d/</filename> take precedence over files with the same name
in <filename>/usr/lib/kernel/install.d/</filename>. This can be used to override a system-supplied
executables with a local file if needed; a symbolic link in <filename>/etc/kernel/install.d/</filename>
with the same name as an executable in <filename>/usr/lib/kernel/install.d/</filename>,
- pointing to /dev/null, disables the executable entirely. Executables must have the
- extension .install; other extensions are ignored.</para>
+ pointing to <filename>/dev/null</filename>, disables the executable entirely. Executables must have the
+ extension <literal>.install</literal>; other extensions are ignored.</para>
+ <para>An executable should return <constant>0</constant> on success. It may also
+ return <constant>77</constant> to cause the whole operation to terminate
+ (executables later in lexical order will be skipped).</para>
</refsect1>
<refsect1>
<para>The following commands are understood:</para>
<variablelist>
<varlistentry>
- <term>add <KERNEL VERSION> <KERNEL IMAGE></term>
+ <term><command>add <replaceable>KERNEL-VERSION</replaceable> <replaceable>KERNEL-IMAGE</replaceable></command></term>
<listitem>
- <para>calls every executable <filename>/usr/lib/kernel/install.d/*.install</filename>
- and <filename>/etc/kernel/install.d/*.install</filename> with the arguments
- "add <KERNEL VERSION> <filename>/boot/<MACHINE-ID>/<KERNEL VERSION>/</filename>"</para>
-
- <para>kernel-install copies <KERNEL IMAGE> to
- <filename>/boot/<MACHINE-ID>/<KERNEL VERSION>/linux</filename>.</para>
-
- <para>kernel-install also creates a boot loader entry according to the boot loader specification
- in <filename>/boot/loader/entries/<MACHINE-ID>-<KERNEL VERSION>.conf</filename>.
- If the file <filename>initrd</filename> is found next to the <filename>linux</filename> file,
- the initrd will be added to the configuration.</para>
+ <para><command>kernel-install</command> creates the directory
+ <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename>
+ and calls executables from
+ <filename>/usr/lib/kernel/install.d/*.install</filename> and
+ <filename>/etc/kernel/install.d/*.install</filename> with
+ the arguments
+ <programlisting>add <replaceable>KERNEL-VERSION</replaceable> \
+ <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename> <replaceable>KERNEL-IMAGE</replaceable></programlisting>
+ </para>
+
+ <para>The kernel-install plugin <filename>50-depmod.install</filename> runs depmod for the <replaceable>KERNEL-VERSION</replaceable>.</para>
+
+ <para>The kernel-install plugin
+ <filename>90-loaderentry.install</filename> copies
+ <replaceable>KERNEL-IMAGE</replaceable> to
+ <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/linux</filename>.
+ It also creates a boot loader entry according to the boot
+ loader specification in
+ <filename>/boot/loader/entries/<replaceable>MACHINE-ID</replaceable>-<replaceable>KERNEL-VERSION</replaceable>.conf</filename>.
+ The title of the entry is the
+ <replaceable>PRETTY_NAME</replaceable> parameter specified
+ in <filename>/etc/os-release</filename> or
+ <filename>/usr/lib/os-release</filename> (if the former is
+ missing), or "Linux
+ <replaceable>KERNEL-VERSION</replaceable>", if unset. If
+ the file <filename>initrd</filename> is found next to the
+ <filename>linux</filename> file, the initrd will be added to
+ the configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
- <term>remove <KERNEL VERSION> <KERNEL IMAGE></term>
- <listitem><para>calls every executable <filename>/usr/lib/kernel/install.d/*.install</filename>
- and <filename>/etc/kernel/install.d/*.install</filename> with the arguments:
- "remove <KERNEL VERSION> <filename>/boot/<MACHINE-ID>/<KERNEL VERSION>/</filename>"
- </para>
- <para>kernel-install removes the entire directory <filename>/boot/<MACHINE-ID>/<KERNEL VERSION>/</filename>
- and the file <filename>/boot/loader/entries/<MACHINE-ID>-<KERNEL VERSION>.conf</filename></para>
+ <term><command>remove <replaceable>KERNEL-VERSION</replaceable></command></term>
+ <listitem>
+ <para>Calls executables from <filename>/usr/lib/kernel/install.d/*.install</filename>
+ and <filename>/etc/kernel/install.d/*.install</filename> with the arguments
+ <programlisting>remove <replaceable>KERNEL-VERSION</replaceable> <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename></programlisting>
+ </para>
+
+ <para><command>kernel-install</command> removes the entire directory
+ <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename> afterwards.</para>
+
+ <para>The kernel-install plugin <filename>90-loaderentry.install</filename> removes the file
+ <filename>/boot/loader/entries/<replaceable>MACHINE-ID</replaceable>-<replaceable>KERNEL-VERSION</replaceable>.conf</filename>.</para>
</listitem>
</varlistentry>
<refsect1>
<title>Exit status</title>
- <para>If every executable returns with 0, 0 is returned, a non-zero failure code otherwise.</para>
+ <para>If every executable returns 0 or 77, 0 is returned, and a non-zero failure code otherwise.</para>
</refsect1>
<refsect1>
<filename>/etc/kernel/install.d/*.install</filename>
</term>
<listitem>
- <para>Drop-in files, which are executed by kernel-install.</para>
+ <para>Drop-in files which are executed by kernel-install.</para>
</listitem>
</varlistentry>
<varlistentry>
<filename>/proc/cmdline</filename>
</term>
<listitem>
- <para>The contents of the file <filename>/etc/kernel/cmdline</filename> specifies the kernel command line to use.
+ <para>The content of the file <filename>/etc/kernel/cmdline</filename> specifies the kernel command line to use.
If that file does not exist, <filename>/proc/cmdline</filename> is used.</para>
</listitem>
</varlistentry>
<filename>/etc/machine-id</filename>
</term>
<listitem>
- <para>The contents of the file specifies the machine identifaction <MACHINE-ID>.</para>
+ <para>The content of the file specifies the machine identification <replaceable>MACHINE-ID</replaceable>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<filename>/etc/os-release</filename>
+ <filename>/usr/lib/os-release</filename>
</term>
<listitem>
- <para>The contents of the file specifies the the operating system id <OS-ID>.</para>
+ <para>The content of the file specifies the operating system title <replaceable>PRETTY_NAME</replaceable>.</para>
</listitem>
</varlistentry>
</variablelist>
<para>
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
- <ulink url="http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot loader specification</ulink>
+ <ulink url="https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot loader specification</ulink>
</para>
</refsect1>