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