1351f10a3SMichael Rodin.. _readme:
2351f10a3SMichael Rodin
3602684adSLukas BulwahnLinux kernel release 6.x <http://kernel.org/>
49d85025bSMauro Carvalho Chehab=============================================
59d85025bSMauro Carvalho Chehab
6602684adSLukas BulwahnThese are the release notes for Linux version 6.  Read them carefully,
79d85025bSMauro Carvalho Chehabas they tell you what this is all about, explain how to install the
89d85025bSMauro Carvalho Chehabkernel, and what to do if something goes wrong.
99d85025bSMauro Carvalho Chehab
109d85025bSMauro Carvalho ChehabWhat is Linux?
119d85025bSMauro Carvalho Chehab--------------
129d85025bSMauro Carvalho Chehab
139d85025bSMauro Carvalho Chehab  Linux is a clone of the operating system Unix, written from scratch by
149d85025bSMauro Carvalho Chehab  Linus Torvalds with assistance from a loosely-knit team of hackers across
159d85025bSMauro Carvalho Chehab  the Net. It aims towards POSIX and Single UNIX Specification compliance.
169d85025bSMauro Carvalho Chehab
179d85025bSMauro Carvalho Chehab  It has all the features you would expect in a modern fully-fledged Unix,
189d85025bSMauro Carvalho Chehab  including true multitasking, virtual memory, shared libraries, demand
199d85025bSMauro Carvalho Chehab  loading, shared copy-on-write executables, proper memory management,
209d85025bSMauro Carvalho Chehab  and multistack networking including IPv4 and IPv6.
219d85025bSMauro Carvalho Chehab
22e57ae44aSSanjeev  It is distributed under the GNU General Public License v2 - see the
239d85025bSMauro Carvalho Chehab  accompanying COPYING file for more details.
249d85025bSMauro Carvalho Chehab
259d85025bSMauro Carvalho ChehabOn what hardware does it run?
269d85025bSMauro Carvalho Chehab-----------------------------
279d85025bSMauro Carvalho Chehab
289d85025bSMauro Carvalho Chehab  Although originally developed first for 32-bit x86-based PCs (386 or higher),
299d85025bSMauro Carvalho Chehab  today Linux also runs on (at least) the Compaq Alpha AXP, Sun SPARC and
309d85025bSMauro Carvalho Chehab  UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell,
311ea5afd4SArnd Bergmann  IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64 Xtensa, and
321ea5afd4SArnd Bergmann  ARC architectures.
339d85025bSMauro Carvalho Chehab
349d85025bSMauro Carvalho Chehab  Linux is easily portable to most general-purpose 32- or 64-bit architectures
359d85025bSMauro Carvalho Chehab  as long as they have a paged memory management unit (PMMU) and a port of the
369d85025bSMauro Carvalho Chehab  GNU C compiler (gcc) (part of The GNU Compiler Collection, GCC). Linux has
379d85025bSMauro Carvalho Chehab  also been ported to a number of architectures without a PMMU, although
389d85025bSMauro Carvalho Chehab  functionality is then obviously somewhat limited.
399d85025bSMauro Carvalho Chehab  Linux has also been ported to itself. You can now run the kernel as a
409d85025bSMauro Carvalho Chehab  userspace application - this is called UserMode Linux (UML).
419d85025bSMauro Carvalho Chehab
429d85025bSMauro Carvalho ChehabDocumentation
439d85025bSMauro Carvalho Chehab-------------
449d85025bSMauro Carvalho Chehab
459d85025bSMauro Carvalho Chehab - There is a lot of documentation available both in electronic form on
469d85025bSMauro Carvalho Chehab   the Internet and in books, both Linux-specific and pertaining to
479d85025bSMauro Carvalho Chehab   general UNIX questions.  I'd recommend looking into the documentation
489d85025bSMauro Carvalho Chehab   subdirectories on any Linux FTP site for the LDP (Linux Documentation
499d85025bSMauro Carvalho Chehab   Project) books.  This README is not meant to be documentation on the
509d85025bSMauro Carvalho Chehab   system: there are much better sources available.
519d85025bSMauro Carvalho Chehab
529d85025bSMauro Carvalho Chehab - There are various README files in the Documentation/ subdirectory:
539d85025bSMauro Carvalho Chehab   these typically contain kernel-specific installation notes for some
54a7ddcea5SHenrik Austad   drivers for example. Please read the
558c27ceffSMauro Carvalho Chehab   :ref:`Documentation/process/changes.rst <changes>` file, as it
569d85025bSMauro Carvalho Chehab   contains information about the problems, which may result by upgrading
579d85025bSMauro Carvalho Chehab   your kernel.
589d85025bSMauro Carvalho Chehab
599d85025bSMauro Carvalho ChehabInstalling the kernel source
609d85025bSMauro Carvalho Chehab----------------------------
619d85025bSMauro Carvalho Chehab
629d85025bSMauro Carvalho Chehab - If you install the full sources, put the kernel tarball in a
639d85025bSMauro Carvalho Chehab   directory where you have permissions (e.g. your home directory) and
649d85025bSMauro Carvalho Chehab   unpack it::
659d85025bSMauro Carvalho Chehab
66602684adSLukas Bulwahn     xz -cd linux-6.x.tar.xz | tar xvf -
679d85025bSMauro Carvalho Chehab
689d85025bSMauro Carvalho Chehab   Replace "X" with the version number of the latest kernel.
699d85025bSMauro Carvalho Chehab
709d85025bSMauro Carvalho Chehab   Do NOT use the /usr/src/linux area! This area has a (usually
719d85025bSMauro Carvalho Chehab   incomplete) set of kernel headers that are used by the library header
729d85025bSMauro Carvalho Chehab   files.  They should match the library, and not get messed up by
739d85025bSMauro Carvalho Chehab   whatever the kernel-du-jour happens to be.
749d85025bSMauro Carvalho Chehab
75602684adSLukas Bulwahn - You can also upgrade between 6.x releases by patching.  Patches are
769d85025bSMauro Carvalho Chehab   distributed in the xz format.  To install by patching, get all the
779d85025bSMauro Carvalho Chehab   newer patch files, enter the top level directory of the kernel source
78602684adSLukas Bulwahn   (linux-6.x) and execute::
799d85025bSMauro Carvalho Chehab
80602684adSLukas Bulwahn     xz -cd ../patch-6.x.xz | patch -p1
819d85025bSMauro Carvalho Chehab
820358affbSArnd Bergmann   Replace "x" for all versions bigger than the version "x" of your current
839d85025bSMauro Carvalho Chehab   source tree, **in_order**, and you should be ok.  You may want to remove
849d85025bSMauro Carvalho Chehab   the backup files (some-file-name~ or some-file-name.orig), and make sure
859d85025bSMauro Carvalho Chehab   that there are no failed patches (some-file-name# or some-file-name.rej).
869d85025bSMauro Carvalho Chehab   If there are, either you or I have made a mistake.
879d85025bSMauro Carvalho Chehab
88602684adSLukas Bulwahn   Unlike patches for the 6.x kernels, patches for the 6.x.y kernels
899d85025bSMauro Carvalho Chehab   (also known as the -stable kernels) are not incremental but instead apply
90602684adSLukas Bulwahn   directly to the base 6.x kernel.  For example, if your base kernel is 6.0
91602684adSLukas Bulwahn   and you want to apply the 6.0.3 patch, you must not first apply the 6.0.1
92602684adSLukas Bulwahn   and 6.0.2 patches. Similarly, if you are running kernel version 6.0.2 and
93602684adSLukas Bulwahn   want to jump to 6.0.3, you must first reverse the 6.0.2 patch (that is,
94602684adSLukas Bulwahn   patch -R) **before** applying the 6.0.3 patch. You can read more on this in
958c27ceffSMauro Carvalho Chehab   :ref:`Documentation/process/applying-patches.rst <applying_patches>`.
969d85025bSMauro Carvalho Chehab
979d85025bSMauro Carvalho Chehab   Alternatively, the script patch-kernel can be used to automate this
989d85025bSMauro Carvalho Chehab   process.  It determines the current kernel version and applies any
999d85025bSMauro Carvalho Chehab   patches found::
1009d85025bSMauro Carvalho Chehab
1019d85025bSMauro Carvalho Chehab     linux/scripts/patch-kernel linux
1029d85025bSMauro Carvalho Chehab
1039d85025bSMauro Carvalho Chehab   The first argument in the command above is the location of the
1049d85025bSMauro Carvalho Chehab   kernel source.  Patches are applied from the current directory, but
1059d85025bSMauro Carvalho Chehab   an alternative directory can be specified as the second argument.
1069d85025bSMauro Carvalho Chehab
1079d85025bSMauro Carvalho Chehab - Make sure you have no stale .o files and dependencies lying around::
1089d85025bSMauro Carvalho Chehab
1099d85025bSMauro Carvalho Chehab     cd linux
1109d85025bSMauro Carvalho Chehab     make mrproper
1119d85025bSMauro Carvalho Chehab
1129d85025bSMauro Carvalho Chehab   You should now have the sources correctly installed.
1139d85025bSMauro Carvalho Chehab
1149d85025bSMauro Carvalho ChehabSoftware requirements
1159d85025bSMauro Carvalho Chehab---------------------
1169d85025bSMauro Carvalho Chehab
117602684adSLukas Bulwahn   Compiling and running the 6.x kernels requires up-to-date
1189d85025bSMauro Carvalho Chehab   versions of various software packages.  Consult
1198c27ceffSMauro Carvalho Chehab   :ref:`Documentation/process/changes.rst <changes>` for the minimum version numbers
1209d85025bSMauro Carvalho Chehab   required and how to get updates for these packages.  Beware that using
1219d85025bSMauro Carvalho Chehab   excessively old versions of these packages can cause indirect
1229d85025bSMauro Carvalho Chehab   errors that are very difficult to track down, so don't assume that
1239d85025bSMauro Carvalho Chehab   you can just update packages when obvious problems arise during
1249d85025bSMauro Carvalho Chehab   build or operation.
1259d85025bSMauro Carvalho Chehab
1269d85025bSMauro Carvalho ChehabBuild directory for the kernel
1279d85025bSMauro Carvalho Chehab------------------------------
1289d85025bSMauro Carvalho Chehab
1299d85025bSMauro Carvalho Chehab   When compiling the kernel, all output files will per default be
1309d85025bSMauro Carvalho Chehab   stored together with the kernel source code.
1319d85025bSMauro Carvalho Chehab   Using the option ``make O=output/dir`` allows you to specify an alternate
1329d85025bSMauro Carvalho Chehab   place for the output files (including .config).
1339d85025bSMauro Carvalho Chehab   Example::
1349d85025bSMauro Carvalho Chehab
135602684adSLukas Bulwahn     kernel source code: /usr/src/linux-6.x
1369d85025bSMauro Carvalho Chehab     build directory:    /home/name/build/kernel
1379d85025bSMauro Carvalho Chehab
1389d85025bSMauro Carvalho Chehab   To configure and build the kernel, use::
1399d85025bSMauro Carvalho Chehab
140602684adSLukas Bulwahn     cd /usr/src/linux-6.x
1419d85025bSMauro Carvalho Chehab     make O=/home/name/build/kernel menuconfig
1429d85025bSMauro Carvalho Chehab     make O=/home/name/build/kernel
1439d85025bSMauro Carvalho Chehab     sudo make O=/home/name/build/kernel modules_install install
1449d85025bSMauro Carvalho Chehab
1459d85025bSMauro Carvalho Chehab   Please note: If the ``O=output/dir`` option is used, then it must be
1469d85025bSMauro Carvalho Chehab   used for all invocations of make.
1479d85025bSMauro Carvalho Chehab
1489d85025bSMauro Carvalho ChehabConfiguring the kernel
1499d85025bSMauro Carvalho Chehab----------------------
1509d85025bSMauro Carvalho Chehab
1519d85025bSMauro Carvalho Chehab   Do not skip this step even if you are only upgrading one minor
1529d85025bSMauro Carvalho Chehab   version.  New configuration options are added in each release, and
1539d85025bSMauro Carvalho Chehab   odd problems will turn up if the configuration files are not set up
1549d85025bSMauro Carvalho Chehab   as expected.  If you want to carry your existing configuration to a
1559d85025bSMauro Carvalho Chehab   new version with minimal work, use ``make oldconfig``, which will
1569d85025bSMauro Carvalho Chehab   only ask you for the answers to new questions.
1579d85025bSMauro Carvalho Chehab
1589d85025bSMauro Carvalho Chehab - Alternative configuration commands are::
1599d85025bSMauro Carvalho Chehab
1609d85025bSMauro Carvalho Chehab     "make config"      Plain text interface.
1619d85025bSMauro Carvalho Chehab
1629d85025bSMauro Carvalho Chehab     "make menuconfig"  Text based color menus, radiolists & dialogs.
1639d85025bSMauro Carvalho Chehab
1649d85025bSMauro Carvalho Chehab     "make nconfig"     Enhanced text based color menus.
1659d85025bSMauro Carvalho Chehab
1669d85025bSMauro Carvalho Chehab     "make xconfig"     Qt based configuration tool.
1679d85025bSMauro Carvalho Chehab
1689d85025bSMauro Carvalho Chehab     "make gconfig"     GTK+ based configuration tool.
1699d85025bSMauro Carvalho Chehab
1709d85025bSMauro Carvalho Chehab     "make oldconfig"   Default all questions based on the contents of
1719d85025bSMauro Carvalho Chehab                        your existing ./.config file and asking about
1729d85025bSMauro Carvalho Chehab                        new config symbols.
1739d85025bSMauro Carvalho Chehab
1749d85025bSMauro Carvalho Chehab     "make olddefconfig"
1759d85025bSMauro Carvalho Chehab                        Like above, but sets new symbols to their default
1769d85025bSMauro Carvalho Chehab                        values without prompting.
1779d85025bSMauro Carvalho Chehab
1789d85025bSMauro Carvalho Chehab     "make defconfig"   Create a ./.config file by using the default
1799d85025bSMauro Carvalho Chehab                        symbol values from either arch/$ARCH/defconfig
1809d85025bSMauro Carvalho Chehab                        or arch/$ARCH/configs/${PLATFORM}_defconfig,
1819d85025bSMauro Carvalho Chehab                        depending on the architecture.
1829d85025bSMauro Carvalho Chehab
1839d85025bSMauro Carvalho Chehab     "make ${PLATFORM}_defconfig"
1849d85025bSMauro Carvalho Chehab                        Create a ./.config file by using the default
1859d85025bSMauro Carvalho Chehab                        symbol values from
1869d85025bSMauro Carvalho Chehab                        arch/$ARCH/configs/${PLATFORM}_defconfig.
1879d85025bSMauro Carvalho Chehab                        Use "make help" to get a list of all available
1889d85025bSMauro Carvalho Chehab                        platforms of your architecture.
1899d85025bSMauro Carvalho Chehab
1909d85025bSMauro Carvalho Chehab     "make allyesconfig"
1919d85025bSMauro Carvalho Chehab                        Create a ./.config file by setting symbol
1929d85025bSMauro Carvalho Chehab                        values to 'y' as much as possible.
1939d85025bSMauro Carvalho Chehab
1949d85025bSMauro Carvalho Chehab     "make allmodconfig"
1959d85025bSMauro Carvalho Chehab                        Create a ./.config file by setting symbol
1969d85025bSMauro Carvalho Chehab                        values to 'm' as much as possible.
1979d85025bSMauro Carvalho Chehab
1989d85025bSMauro Carvalho Chehab     "make allnoconfig" Create a ./.config file by setting symbol
1999d85025bSMauro Carvalho Chehab                        values to 'n' as much as possible.
2009d85025bSMauro Carvalho Chehab
2019d85025bSMauro Carvalho Chehab     "make randconfig"  Create a ./.config file by setting symbol
2029d85025bSMauro Carvalho Chehab                        values to random values.
2039d85025bSMauro Carvalho Chehab
2049d85025bSMauro Carvalho Chehab     "make localmodconfig" Create a config based on current config and
2059d85025bSMauro Carvalho Chehab                           loaded modules (lsmod). Disables any module
2069d85025bSMauro Carvalho Chehab                           option that is not needed for the loaded modules.
2079d85025bSMauro Carvalho Chehab
2089d85025bSMauro Carvalho Chehab                           To create a localmodconfig for another machine,
2099d85025bSMauro Carvalho Chehab                           store the lsmod of that machine into a file
2109d85025bSMauro Carvalho Chehab                           and pass it in as a LSMOD parameter.
2119d85025bSMauro Carvalho Chehab
212c027b02dSChangbin Du                           Also, you can preserve modules in certain folders
213c027b02dSChangbin Du                           or kconfig files by specifying their paths in
214c027b02dSChangbin Du                           parameter LMC_KEEP.
215c027b02dSChangbin Du
2169d85025bSMauro Carvalho Chehab                   target$ lsmod > /tmp/mylsmod
2179d85025bSMauro Carvalho Chehab                   target$ scp /tmp/mylsmod host:/tmp
2189d85025bSMauro Carvalho Chehab
219c027b02dSChangbin Du                   host$ make LSMOD=/tmp/mylsmod \
220c027b02dSChangbin Du                           LMC_KEEP="drivers/usb:drivers/gpu:fs" \
221c027b02dSChangbin Du                           localmodconfig
2229d85025bSMauro Carvalho Chehab
2239d85025bSMauro Carvalho Chehab                           The above also works when cross compiling.
2249d85025bSMauro Carvalho Chehab
2259d85025bSMauro Carvalho Chehab     "make localyesconfig" Similar to localmodconfig, except it will convert
226c027b02dSChangbin Du                           all module options to built in (=y) options. You can
227c027b02dSChangbin Du                           also preserve modules by LMC_KEEP.
2289d85025bSMauro Carvalho Chehab
22961ffd285SAndré Almeida     "make kvm_guest.config"   Enable additional options for kvm guest kernel
23061ffd285SAndré Almeida                               support.
23152c37d41SMartin Kepplinger
23261ffd285SAndré Almeida     "make xen.config"   Enable additional options for xen dom0 guest kernel
23352c37d41SMartin Kepplinger                         support.
23452c37d41SMartin Kepplinger
23552c37d41SMartin Kepplinger     "make tinyconfig"  Configure the tiniest possible kernel.
23652c37d41SMartin Kepplinger
2379d85025bSMauro Carvalho Chehab   You can find more information on using the Linux kernel config tools
238cd238effSMauro Carvalho Chehab   in Documentation/kbuild/kconfig.rst.
2399d85025bSMauro Carvalho Chehab
2409d85025bSMauro Carvalho Chehab - NOTES on ``make config``:
2419d85025bSMauro Carvalho Chehab
2429d85025bSMauro Carvalho Chehab    - Having unnecessary drivers will make the kernel bigger, and can
2439d85025bSMauro Carvalho Chehab      under some circumstances lead to problems: probing for a
244e57ae44aSSanjeev      nonexistent controller card may confuse your other controllers.
2459d85025bSMauro Carvalho Chehab
2469d85025bSMauro Carvalho Chehab    - A kernel with math-emulation compiled in will still use the
2479d85025bSMauro Carvalho Chehab      coprocessor if one is present: the math emulation will just
2489d85025bSMauro Carvalho Chehab      never get used in that case.  The kernel will be slightly larger,
2499d85025bSMauro Carvalho Chehab      but will work on different machines regardless of whether they
2509d85025bSMauro Carvalho Chehab      have a math coprocessor or not.
2519d85025bSMauro Carvalho Chehab
2529d85025bSMauro Carvalho Chehab    - The "kernel hacking" configuration details usually result in a
2539d85025bSMauro Carvalho Chehab      bigger or slower kernel (or both), and can even make the kernel
2549d85025bSMauro Carvalho Chehab      less stable by configuring some routines to actively try to
2559d85025bSMauro Carvalho Chehab      break bad code to find kernel problems (kmalloc()).  Thus you
2569d85025bSMauro Carvalho Chehab      should probably answer 'n' to the questions for "development",
2579d85025bSMauro Carvalho Chehab      "experimental", or "debugging" features.
2589d85025bSMauro Carvalho Chehab
2599d85025bSMauro Carvalho ChehabCompiling the kernel
2609d85025bSMauro Carvalho Chehab--------------------
2619d85025bSMauro Carvalho Chehab
262df26327eSLinus Torvalds - Make sure you have at least gcc 5.1 available.
2638c27ceffSMauro Carvalho Chehab   For more information, refer to :ref:`Documentation/process/changes.rst <changes>`.
2649d85025bSMauro Carvalho Chehab
265*3a5f1c3dSHunter Chasens - Do a ``make`` to create a compressed kernel image. It is also possible to do
266*3a5f1c3dSHunter Chasens   ``make install`` if you have lilo installed or if your distribution has an
267*3a5f1c3dSHunter Chasens   install script recognised by the kernel's installer. Most popular
268*3a5f1c3dSHunter Chasens   distributions will have a recognized install script. You may want to
269*3a5f1c3dSHunter Chasens   check your distribution's setup first.
2709d85025bSMauro Carvalho Chehab
2719d85025bSMauro Carvalho Chehab   To do the actual install, you have to be root, but none of the normal
2729d85025bSMauro Carvalho Chehab   build should require that. Don't take the name of root in vain.
2739d85025bSMauro Carvalho Chehab
2749d85025bSMauro Carvalho Chehab - If you configured any of the parts of the kernel as ``modules``, you
2759d85025bSMauro Carvalho Chehab   will also have to do ``make modules_install``.
2769d85025bSMauro Carvalho Chehab
2779d85025bSMauro Carvalho Chehab - Verbose kernel compile/build output:
2789d85025bSMauro Carvalho Chehab
2799d85025bSMauro Carvalho Chehab   Normally, the kernel build system runs in a fairly quiet mode (but not
2809d85025bSMauro Carvalho Chehab   totally silent).  However, sometimes you or other kernel developers need
2819d85025bSMauro Carvalho Chehab   to see compile, link, or other commands exactly as they are executed.
2829d85025bSMauro Carvalho Chehab   For this, use "verbose" build mode.  This is done by passing
2839d85025bSMauro Carvalho Chehab   ``V=1`` to the ``make`` command, e.g.::
2849d85025bSMauro Carvalho Chehab
2859d85025bSMauro Carvalho Chehab     make V=1 all
2869d85025bSMauro Carvalho Chehab
2879d85025bSMauro Carvalho Chehab   To have the build system also tell the reason for the rebuild of each
2889d85025bSMauro Carvalho Chehab   target, use ``V=2``.  The default is ``V=0``.
2899d85025bSMauro Carvalho Chehab
2909d85025bSMauro Carvalho Chehab - Keep a backup kernel handy in case something goes wrong.  This is
2919d85025bSMauro Carvalho Chehab   especially true for the development releases, since each new release
2929d85025bSMauro Carvalho Chehab   contains new code which has not been debugged.  Make sure you keep a
2939d85025bSMauro Carvalho Chehab   backup of the modules corresponding to that kernel, as well.  If you
2949d85025bSMauro Carvalho Chehab   are installing a new kernel with the same version number as your
2959d85025bSMauro Carvalho Chehab   working kernel, make a backup of your modules directory before you
2969d85025bSMauro Carvalho Chehab   do a ``make modules_install``.
2979d85025bSMauro Carvalho Chehab
2989d85025bSMauro Carvalho Chehab   Alternatively, before compiling, use the kernel config option
2999d85025bSMauro Carvalho Chehab   "LOCALVERSION" to append a unique suffix to the regular kernel version.
3009d85025bSMauro Carvalho Chehab   LOCALVERSION can be set in the "General Setup" menu.
3019d85025bSMauro Carvalho Chehab
3029d85025bSMauro Carvalho Chehab - In order to boot your new kernel, you'll need to copy the kernel
3039d85025bSMauro Carvalho Chehab   image (e.g. .../linux/arch/x86/boot/bzImage after compilation)
3049d85025bSMauro Carvalho Chehab   to the place where your regular bootable kernel is found.
3059d85025bSMauro Carvalho Chehab
306*3a5f1c3dSHunter Chasens - Booting a kernel directly from a storage device without the assistance
307*3a5f1c3dSHunter Chasens   of a bootloader such as LILO or GRUB, is no longer supported in BIOS
308*3a5f1c3dSHunter Chasens   (non-EFI systems). On UEFI/EFI systems, however, you can use EFISTUB
309*3a5f1c3dSHunter Chasens   which allows the motherboard to boot directly to the kernel.
310*3a5f1c3dSHunter Chasens   On modern workstations and desktops, it's generally recommended to use a
311*3a5f1c3dSHunter Chasens   bootloader as difficulties can arise with multiple kernels and secure boot.
312*3a5f1c3dSHunter Chasens   For more details on EFISTUB,
313*3a5f1c3dSHunter Chasens   see "Documentation/admin-guide/efi-stub.rst".
3149d85025bSMauro Carvalho Chehab
315*3a5f1c3dSHunter Chasens - It's important to note that as of 2016 LILO (LInux LOader) is no longer in
316*3a5f1c3dSHunter Chasens   active development, though as it was extremely popular, it often comes up
317*3a5f1c3dSHunter Chasens   in documentation. Popular alternatives include GRUB2, rEFInd, Syslinux,
318*3a5f1c3dSHunter Chasens   systemd-boot, or EFISTUB. For various reasons, it's not recommended to use
319*3a5f1c3dSHunter Chasens   software that's no longer in active development.
3209d85025bSMauro Carvalho Chehab
321*3a5f1c3dSHunter Chasens - Chances are your distribution includes an install script and running
322*3a5f1c3dSHunter Chasens   ``make install`` will be all that's needed. Should that not be the case
323*3a5f1c3dSHunter Chasens   you'll have to identify your bootloader and reference its documentation or
324*3a5f1c3dSHunter Chasens   configure your EFI.
3259d85025bSMauro Carvalho Chehab
326*3a5f1c3dSHunter ChasensLegacy LILO Instructions
327*3a5f1c3dSHunter Chasens------------------------
328*3a5f1c3dSHunter Chasens
329*3a5f1c3dSHunter Chasens
330*3a5f1c3dSHunter Chasens - If you use LILO the kernel images are specified in the file /etc/lilo.conf.
331*3a5f1c3dSHunter Chasens   The kernel image file is usually /vmlinuz, /boot/vmlinuz, /bzImage or
332*3a5f1c3dSHunter Chasens   /boot/bzImage. To use the new kernel, save a copy of the old image and copy
333*3a5f1c3dSHunter Chasens   the new image over the old one. Then, you MUST RERUN LILO to update the
334*3a5f1c3dSHunter Chasens   loading map! If you don't, you won't be able to boot the new kernel image.
335*3a5f1c3dSHunter Chasens
336*3a5f1c3dSHunter Chasens - Reinstalling LILO is usually a matter of running /sbin/lilo. You may wish
337*3a5f1c3dSHunter Chasens   to edit /etc/lilo.conf to specify an entry for your old kernel image
338*3a5f1c3dSHunter Chasens   (say, /vmlinux.old) in case the new one does not work. See the LILO docs
339*3a5f1c3dSHunter Chasens   for more information.
340*3a5f1c3dSHunter Chasens
341*3a5f1c3dSHunter Chasens - After reinstalling LILO, you should be all set. Shutdown the system,
3429d85025bSMauro Carvalho Chehab   reboot, and enjoy!
3439d85025bSMauro Carvalho Chehab
344*3a5f1c3dSHunter Chasens - If you ever need to change the default root device, video mode, etc. in the
345*3a5f1c3dSHunter Chasens   kernel image, use your bootloader's boot options where appropriate. No need
346*3a5f1c3dSHunter Chasens   to recompile the kernel to change these parameters.
3479d85025bSMauro Carvalho Chehab
3489d85025bSMauro Carvalho Chehab - Reboot with the new kernel and enjoy.
3499d85025bSMauro Carvalho Chehab
350*3a5f1c3dSHunter Chasens
3519d85025bSMauro Carvalho ChehabIf something goes wrong
3529d85025bSMauro Carvalho Chehab-----------------------
3539d85025bSMauro Carvalho Chehab
35432a3a9dbSLukas BulwahnIf you have problems that seem to be due to kernel bugs, please follow the
35532a3a9dbSLukas Bulwahninstructions at 'Documentation/admin-guide/reporting-issues.rst'.
3569d85025bSMauro Carvalho Chehab
35732a3a9dbSLukas BulwahnHints on understanding kernel bug reports are in
35832a3a9dbSLukas Bulwahn'Documentation/admin-guide/bug-hunting.rst'. More on debugging the kernel
35932a3a9dbSLukas Bulwahnwith gdb is in 'Documentation/dev-tools/gdb-kernel-debugging.rst' and
36032a3a9dbSLukas Bulwahn'Documentation/dev-tools/kgdb.rst'.
361