[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2012/09/30 09:07 (UTC)] – [What to build] htexmexhhowtos:slackware_admin:building_the_linux_kernel_using_git_repository [2014/02/15 20:08 (UTC)] – updated installkernel script metaschima
Line 24: Line 24:
  
 <code bash> <code bash>
-version=3.4.11+version=3.10.24 
 +base=3.10
 </code> </code>
  
-1. You can use git to get the kernel source. This has the advantage that it will avoid issues when [[http://www.linuxfoundation.org/news-media/blogs/browse/2011/08/cracking-kernelorg|linux.org is cracked]]. It also has the advantage that you don't need to use patch or download a new source tarball each time the version changes. A disadvantage is that the source directory may get large as new releases are pulled.+1. You can use git to get the kernel source. This has the advantage that it will avoid issues if [[http://www.linuxfoundation.org/news-media/blogs/browse/2011/08/cracking-kernelorg|linux.org is cracked]]. A disadvantage is that the source directory may get large as new releases are pulled.
  
 <code bash> <code bash>
 git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git # this only needs to be run once at the very beginning git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git # this only needs to be run once at the very beginning
 cd linux-stable cd linux-stable
-git pull # run this every time after the first run to update the source +git pull # run this every time to update the source 
-git checkout v$version # you MUST checkout a kernel version or you will get the base version, i.e. 3.4.0+git checkout v$version # you MUST checkout a kernel version or you will get the base version, i.e. 3.10
 git log # just check to make sure the top of the log says the version you want git log # just check to make sure the top of the log says the version you want
 git tag -v v$version # this is not necessary, but it validates the source using gpg public key, which you need to import git tag -v v$version # this is not necessary, but it validates the source using gpg public key, which you need to import
 </code> </code>
  
-<note>To easily import a gpg key, you need the ''RSA key ID 0000000E''. Run <code>gpg --search 0000000E</code> and choose the key you want to import. The key here is just an example.</note>+<note>To easily import a gpg key, you need the ''RSA key ID 0000000E''. Run <code>gpg --search 0000000E</code> and choose the key you want to import, or if that doesn't work then run <code>gpg --keyserver wwwkeys.pgp.net --recv-keys 0000000E</code>The key here is just an example.</note>
  
-2. You can download the source tarball from [[http://kernel.org/]]. The disadvantages are that you will need to either use patch to upgrade to a newer version, or to download a new source tarball.+2. You can download the source tarball from [[http://kernel.org/]]. The best way to stay up-to-date is to download the base version tarball and then download the individual version patch that you want, and apply it before compiling.
  
 <code bash> <code bash>
-wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-$version.tar.xz +kernelsite="ftp://www.kernel.org/pub/linux/kernel/v3.x" 
-unxz linux-$version.tar.xz +lftp -c "open $kernelsite; get linux-$base.tar.xz linux-$base.tar.sign" 
-gpg --verify linux-$version.tar.sign +unxz -k "linux-$base.tar.xz" 
-tar -xf linux-$version.tar +gpg --verify "linux-$base.tar.sign
-cd linux-$version+# the following is done with every new kernel update 
 +tar -xf "linux-$base.tar.xz" 
 +mv "linux-$base" "linux-$version" 
 +cd "linux-$version
 +lftp -c "open $kernelsite; get patch-$version.xz patch-$version.sign" 
 +unxz "patch-$version.xz" 
 +gpg --verify "patch-$version.sign" 
 +patch -p1 < "patch-$version"
 </code> </code>
  
 +<note>
 +Patching a kernel can be confusing, because patches are relative to the base kernel version. Lets say you currently have the kernel source for 3.10.24, and you want to upgrade to 3.10.25. You can either revert the 3.10.24 patch (getting you back to 3.10), or you can download kernel version 3.10 and apply the 3.10.25 patch. If you try to apply the 3.10.25 patch over 3.10.24, it will fail. Thus, it is recommended to keep the source tarball for the base version in the kernel build directory, especially if you plan on regularly upgrading your kernel for security fixes.
 +</note>
 +
 +Here is a script that downloads the latest patch for the current running kernel. It assumes you already have an xz compressed tarball in the kernel build directory.
 +<file bash kernupd>
 +#!/bin/sh
 +
 +error () # error
 +{
 + echo "$1"
 + exit 1
 +}
 +
 +kerneldir="$HOME/.local/src"
 +kernelsite="ftp://www.kernel.org/pub/linux/kernel/v3.x"
 +currentver="$(uname -r)"
 +basever="$(uname -r | rev | cut -d. -f1 --complement | rev)"
 +newver="$(lftp -c "open $kernelsite; ls" | awk '{ print $9 }' | grep "patch-$basever.*\.xz" | sort -V | tail -n1 | sed 's/patch-//' | sed 's/\.xz//')"
 +
 +if test "$currentver" = "$newver"
 +then
 + echo 'Kernel is up to date.'
 +else
 + echo "Updating kernel to $newver"
 + cd "$kerneldir"
 + tar -xf "linux-$basever.tar.xz" || exit 1
 + mv "linux-$basever" "linux-$newver" || exit 1
 + cd "linux-$newver"
 + lftp -c "open $kernelsite; get patch-$newver.xz patch-$newver.sign" || exit 1
 + unxz "patch-$newver.xz"
 + gpg --verify "patch-$newver.sign" || exit 1
 + patch -p1 < "patch-$newver" || exit 1
 + make mrproper
 + zcat /proc/config.gz > .config
 + make oldconfig
 + echo "cd $PWD"
 +fi
 +
 +exit 0
 +</file>
 ==== How to build ==== ==== How to build ====
 First run the following to make sure everything is setup properly for a build. First run the following to make sure everything is setup properly for a build.
Line 60: Line 109:
  
 <file txt README> <file txt README>
- Alternate configuration commands are: + Alternative configuration commands are: 
- "make config"      Plain text interface. + 
- "make menuconfig"  Text based color menus, radiolists & dialogs. +     "make config"      Plain text interface. 
- "make nconfig"     Enhanced text based color menus. + 
- "make xconfig"     X windows (Qt) based configuration tool. +     "make menuconfig"  Text based color menus, radiolists & dialogs. 
- "make gconfig"     X windows (Gtk) based configuration tool. + 
- "make oldconfig"   Default all questions based on the contents of +     "make nconfig"     Enhanced text based color menus. 
-    your existing ./.config file and asking about + 
-    new config symbols. +     "make xconfig"     X windows (Qt) based configuration tool. 
- "make silentoldconfig" + 
-    Like above, but avoids cluttering the screen +     "make gconfig"     X windows (Gtk) based configuration tool. 
-    with questions already answered. + 
-    Additionally updates the dependencies. +     "make oldconfig"   Default all questions based on the contents of 
- "make defconfig"   Create a ./.config file by using the default +                        your existing ./.config file and asking about 
-    symbol values from either arch/$ARCH/defconfig +                        new config symbols. 
-    or arch/$ARCH/configs/${PLATFORM}_defconfig, + 
-    depending on the architecture. +     "make silentoldconfig" 
- "make ${PLATFORM}_defconfig" +                        Like above, but avoids cluttering the screen 
-   Create a ./.config file by using the default +                        with questions already answered. 
-   symbol values from +                        Additionally updates the dependencies. 
-   arch/$ARCH/configs/${PLATFORM}_defconfig. + 
-   Use "make help" to get a list of all available +     "make olddefconfig" 
-   platforms of your architecture. +                        Like above, but sets new symbols to their default 
- "make allyesconfig" +                        values without prompting. 
-    Create a ./.config file by setting symbol + 
-    values to 'y' as much as possible. +     "make defconfig"   Create a ./.config file by using the default 
- "make allmodconfig" +                        symbol values from either arch/$ARCH/defconfig 
-    Create a ./.config file by setting symbol +                        or arch/$ARCH/configs/${PLATFORM}_defconfig, 
-    values to 'm' as much as possible. +                        depending on the architecture. 
- "make allnoconfig" Create a ./.config file by setting symbol + 
-    values to 'n' as much as possible. +     "make ${PLATFORM}_defconfig" 
- "make randconfig"  Create a ./.config file by setting symbol +                        Create a ./.config file by using the default 
-    values to random values.+                        symbol values from 
 +                        arch/$ARCH/configs/${PLATFORM}_defconfig. 
 +                        Use "make help" to get a list of all available 
 +                        platforms of your architecture. 
 + 
 +     "make allyesconfig" 
 +                        Create a ./.config file by setting symbol 
 +                        values to 'y' as much as possible. 
 + 
 +     "make allmodconfig" 
 +                        Create a ./.config file by setting symbol 
 +                        values to 'm' as much as possible. 
 + 
 +     "make allnoconfig" Create a ./.config file by setting symbol 
 +                        values to 'n' as much as possible. 
 + 
 +     "make randconfig"  Create a ./.config file by setting symbol 
 +                        values to random values
 + 
 +     "make localmodconfig" Create a config based on current config and 
 +                           loaded modules (lsmod). Disables any module 
 +                           option that is not needed for the loaded modules. 
 + 
 +                           To create a localmodconfig for another machine, 
 +                           store the lsmod of that machine into a file 
 +                           and pass it in as a LSMOD parameter. 
 + 
 +                   target$ lsmod > /tmp/mylsmod 
 +                   target$ scp /tmp/mylsmod host:/tmp 
 + 
 +                   host$ make LSMOD=/tmp/mylsmod localmodconfig 
 + 
 +                           The above also works when cross compiling. 
 + 
 +     "make localyesconfig" Similar to localmodconfig, except it will convert 
 +                           all module options to built in (=y) options.
  
    You can find more information on using the Linux kernel config tools    You can find more information on using the Linux kernel config tools
Line 114: Line 198:
 This option lets you add a string to the end of the kernel version, in case you want to install more that one kernel of the same version. This option lets you add a string to the end of the kernel version, in case you want to install more that one kernel of the same version.
 >> Kernel compression mode >> Kernel compression mode
-This lets you select the kernel compression mode. Gzip is the good default choice. Higher compression (LZMA/XZ) requires more RAM and processor usage, but is faster to load from disk to RAM. Lower compression (Gzip/LZO) requires less RAM and processor usage, but is slower to load from disk to RAM.+This lets you select the kernel compression mode. LZMA is the good default choice. Higher compression (LZMA/XZ) requires more RAM and processor usage, but is faster to load from disk to RAM. Lower compression (Gzip/LZO) requires less RAM and processor usage, but is slower to load from disk to RAM. 
 +>> Kernel .config support 
 +>>> Enable access to .config through /proc/config.gz 
 +Make sure to enable this so you can have easy access to your current kernel config at /proc/config.gz
 >> Automatic process group scheduling >> Automatic process group scheduling
 This option can greatly improve the performance of responsiveness of multi-threaded machines. So you can run ''make -j4'' without causing other programs to stutter. This option can greatly improve the performance of responsiveness of multi-threaded machines. So you can run ''make -j4'' without causing other programs to stutter.
Line 124: Line 211:
 Can increase kernel performance. Can increase kernel performance.
 > **Enable the block layer** > **Enable the block layer**
 +>> Partition Types --->
 +>>> EFI GUID Partition support
 +Enable this if you plan on using the new GPT partition scheme and want to boot from UEFI.
 >> IO Schedulers ---> >> IO Schedulers --->
 >>> Deadline I/O scheduler >>> Deadline I/O scheduler
Line 139: Line 229:
 </note> </note>
 > **Processor type and features** > **Processor type and features**
->> Tickless System (Dynamic Ticks) 
-This causes timer interrupts to only trigger on an as-needed basis both when the system is busy and idle. 
 >> Symmetric multi-processing support >> Symmetric multi-processing support
 This should be enabled for multi-core and multi-processor machines. This should be enabled for multi-core and multi-processor machines.
 +>> Intel Low Power Subsystem Support
 +Enable if you have a newer system with Intel Lynxpoint PCH. Check the output of ''lspci'' for ''Lynx Point''.
 >> Processor family >> Processor family
 For maximum performance you should choose the right processor family. For maximum performance you should choose the right processor family.
Line 150: Line 240:
 cat /proc/cpuinfo cat /proc/cpuinfo
 </code> </code>
-If you still cannot tell what processor family to choose, then look up the ''cpu family'' and ''model'' online or on the gentoo wiki:[[http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel|Intel]][[http://en.gentoo-wiki.com/wiki/Safe_Cflags/AMD|AMD]]+If you still cannot tell what processor family to choose, then look up the ''cpu family'' and ''model'' online or on the [[https://wiki.gentoo.org/wiki/Safe_Cflags|gentoo wiki]].
 </note> </note>
 >> Maximum number of CPUs >> Maximum number of CPUs
Line 186: Line 276:
 1 to enable it 1 to enable it
 >>> MTRR cleanup spare reg num >>> MTRR cleanup spare reg num
-This is the number of unused/spare MTRR registers.+This is the number of disabled/unused/spare MTRR registers.
 <note> <note>
 As an example, run ''dmesg'' and look for As an example, run ''dmesg'' and look for
Line 199: Line 289:
   6 disabled   6 disabled
 </code> </code>
-Here, registers 3,4,5,6 are unused, so MTRR cleanup spare reg num = 4 total unused registers.+Here, registers 3,4,5,6 are disabled/unused/spare, so MTRR cleanup spare reg num = 4 total unused registers.
 </note> </note>
 +>> EFI runtime service support
 +Enable if you want to boot from UEFI.
 +>>> EFI stub support
 +Enable if you want to boot from UEFI.
 >> Enable -fstack-protector buffer overflow detection >> Enable -fstack-protector buffer overflow detection
 Can prevent buffer overflows on systems with gcc version 4.2 and up. Can prevent buffer overflows on systems with gcc version 4.2 and up.
Line 208: Line 302:
 >> ACPI >> ACPI
 Always enable: Button, Fan, Processor, Thermal Zone. Without these, your computer (especially laptops) may overheat because ACPI cannot access thermal monitoring or fans. Always enable: Button, Fan, Processor, Thermal Zone. Without these, your computer (especially laptops) may overheat because ACPI cannot access thermal monitoring or fans.
 +>> CPU Frequency scaling
 +>>> CPU Frequency scaling
 +Enable this if you have frequency scaling enabled in the UEFI/BIOS (Speedstep or similar).
 +>>>> 'performance' governor
 +This sets CPU frequency to the maximum available.
 +>>>> 'powersave' governor
 +This sets CPU frequency to the minimum available.
 +>>>> 'userspace' governor for userspace frequency scaling
 +This allows userspace programs to set the CPU frequency.
 +>>>> 'ondemand' cpufreq policy governor
 +This governor is recommended for desktops.
 +>>>> 'conservative' cpufreq governor
 +This governor is recommended for laptops/netbooks. Although similar to the 'ondemand' governor, frequency is gracefully increased and decreased rather than jumping to 100% when speed is required.
 +>>>> x86 CPU frequency scaling drivers
 +>>>>> Intel P state control
 +This driver is mutually exclusive with the ACPI Processor P-States driver. It is a newer driver for Sandy Bridge processors and [[https://www.linuxquestions.org/questions/slackware-14/slackware-64bit-14-1-rc-kernel-3-10-16-and-virtualbox-4175481316/|may cause problems]].
 +>>>>> Processor Clocking Control interface driver
 +This is only required for HP ProLiant servers, which use this interface. Otherwise, disable it.
 +>>>>> ACPI Processor P-States driver
 +This is the recommended driver for newer CPUs Intel (Enhanced) Speedstep enabled and AMD K10 and newer.
 +>>>>> AMD Opteron/Athlon64 PowerNow!
 +This is for K8/early Opteron/Athlon64 processors.
 +>>>>> Intel Enhanced SpeedStep (deprecated)
 +This is a deprecated option that has been superseded by the ACPI Processor P-States driver, so leave this disabled.
 +>>>>> Intel Pentium 4 clock modulation
 +This is a hack for Pentium 4s that may cause severe slowdowns and noticeable latencies, so disable it.
 > **Bus options** > **Bus options**
 >> Message Signaled Interrupts (MSI and MSI-X) >> Message Signaled Interrupts (MSI and MSI-X)
 This can offload IRQ interrupts by using MSI instead. However, if your BIOS is buggy this may need to be disabled. This can offload IRQ interrupts by using MSI instead. However, if your BIOS is buggy this may need to be disabled.
 > **Executable file formats / Emulations** > **Executable file formats / Emulations**
 +>> Kernel support for scripts starting with #!
 +You **MUST** say yes here or you will not be able to run script that start with ''#!'' and then the interpreter.
 >> IA32 Emulation >> IA32 Emulation
 Allows 32-bit emulation via multi-lib on 64-bit systems. Allows 32-bit emulation via multi-lib on 64-bit systems.
Line 230: Line 352:
 >>> Crypt target support >>> Crypt target support
 Required by cryptsetup. Required by cryptsetup.
 +>> Input device support  --->
 +>>> Keyboards  --->
 +>>>> AT keyboard
 +Enable this if you have a standard AT or PS/2 keyboard.
 +>>> Mice  --->
 +>>>> PS/2 mouse
 +Enable this if you have a PS/2 mouse.
 +>> Multimedia support  --->
 +>>> Media USB Adapters  --->
 +>>>> USB Video Class (UVC)
 +>>>>> UVC input events device support
 +If you have a newer webcam, you should enable this or it won't work.
 >> Graphics support >> Graphics support
 >>> /dev/agpgart (AGP Support) >>> /dev/agpgart (AGP Support)
-Only old graphics cards use this. Typically it will be auto-selected by the driver.+>>>> Intel 440LX/BX/GX, I8xx and E7x05 chipset support 
 +Enable this if you have an integrated Intel card.
 >>> Direct Rendering Manager >>> Direct Rendering Manager
->>>> Nouveau (nVidia) cards +This should almost always be enabled. 
-If you use nouveau, you only need this driver, because it has framebuffer support, you do **NOT** need:+>>> Nouveau (nVidia) cards 
 +If you use nouveau, you only need this driver, because it has framebuffer support.
 >>> Support for frame buffer devices >>> Support for frame buffer devices
 +>>>> VESA VGA graphics support
 +This should almost always be enabled.
 +>>>> EFI-based Framebuffer Support
 +You should enable this if you want to boot from UEFI.
 >>>> nVidia Framebuffer Support >>>> nVidia Framebuffer Support
 Again this is **NOT** needed by nouveau. Again this is **NOT** needed by nouveau.
Line 246: Line 386:
 A larger buffer (e.g. 2048) is preferred for systems using PulseAudio. A larger buffer (e.g. 2048) is preferred for systems using PulseAudio.
 >> USB support >> USB support
 +>>> xHCI HCD (USB 3.0) support
 +You should enable this for newer systems.
 >>> EHCI HCD (USB 2.0) support >>> EHCI HCD (USB 2.0) support
 >>> Improved Transaction Translator scheduling >>> Improved Transaction Translator scheduling
Line 254: Line 396:
 >> Staging drivers  ---> >> Staging drivers  --->
 Avoid drivers in this section if you value system stability. Avoid drivers in this section if you value system stability.
 +>> Generic Dynamic Voltage and Frequency Scaling (DVFS) support
 +This provides frequency scaling support for devices. It also has governors similar to those for CPU frequency scaling. I'm not sure what devices require this.
 +> **Firmware Drivers**
 +>> EFI (Extensible Firmware Interface) Support  --->
 +>>> EFI Variable Support via sysfs
 +This option is deprecated in favor of EFI Variable filesystem. It can [[https://lkml.org/lkml/2013/4/16/473|cause data inconsistency issues]]
 > **File systems** > **File systems**
 You **MUST** either build-in the driver for the filesystem on which the kernel modules reside **OR** create an initrd, or the kernel will **NOT** boot. You **MUST** either build-in the driver for the filesystem on which the kernel modules reside **OR** create an initrd, or the kernel will **NOT** boot.
Line 263: Line 411:
 >>> NTFS write support >>> NTFS write support
 You need this if you want to write to NTFS filesystems. You need this if you want to write to NTFS filesystems.
 +>>> Miscellaneous filesystems  --->
 +>>>> EFI Variable filesystem
 +You should enable this if you want to boot from UEFI.
 > **Kernel hacking** > **Kernel hacking**
 >> Magic SysRq key >> Magic SysRq key
 Enable if you want to use SysRq REISUB (p.cogx on dvorak) to safely shutdown a hung system. Enable if you want to use SysRq REISUB (p.cogx on dvorak) to safely shutdown a hung system.
->> Write protect kernel read-only data structures 
-Helps catch kernel bugs 
 >> Allow gcc to uninline functions marked 'inline' >> Allow gcc to uninline functions marked 'inline'
 Enable for gcc 4.x but not for gcc 3.x Enable for gcc 4.x but not for gcc 3.x
 +> **Security Options**
 +>> Restrict unprivileged access to the kernel syslog
 +Disable this if you want users to be able to use the 'dmesg' command.
 > **Cryptographic API** > **Cryptographic API**
 Make sure to build-in all algorithms you plan to use for cryptography using cryptsetup, especially if you plan on full disk encryption, otherwise you won't be able to decrypt your disk and thus will not be able to boot. Note that there are optimized and 64-bit versions to choose from. Make sure to build-in all algorithms you plan to use for cryptography using cryptsetup, especially if you plan on full disk encryption, otherwise you won't be able to decrypt your disk and thus will not be able to boot. Note that there are optimized and 64-bit versions to choose from.
 >> Parallel crypto engine >> Parallel crypto engine
 Converts an arbitrary crypto algorithm into a parallel algorithm that executes in kernel threads. It allows multi-threading of any crypto algorithm. Converts an arbitrary crypto algorithm into a parallel algorithm that executes in kernel threads. It allows multi-threading of any crypto algorithm.
 +> **Library routines**
 +>> JEDEC DDR data
 +You should probably enable this so that the JEDEC data from your RAM is available to drivers that need it.
 <note> <note>
 If you are wondering what drivers you need, make sure to take a look at the output of these commands. If you are wondering what drivers you need, make sure to take a look at the output of these commands.
Line 282: Line 437:
 dmesg dmesg
 </code> </code>
 +You may want to consider disabling Staging drivers and EXPERIMENTAL and OBSOLETE drivers if you want a stable, modern kernel. Some can be left on for good reason.
 </note> </note>
 ==== Building ==== ==== Building ====
Line 306: Line 462:
 #!/bin/sh #!/bin/sh
 # installs kernel only, this should be run only from the kernel source directory # installs kernel only, this should be run only from the kernel source directory
 +
 +error() # error
 +{
 + echo "ERROR: $1"
 + exit 1
 +}
  
 # make sure we are root # make sure we are root
-if test $HOME != '/root'+if test != '/root'
 then then
- echo 'ERROR: This script must be run as root' >&+ error 'This script must be run as root'
- exit 1+
 fi fi
  
Line 328: Line 489:
 cp System.map /boot cp System.map /boot
 cp .config /boot/config cp .config /boot/config
 +
 +# for elilo
 +bootdir="/boot/efi/EFI/Slackware"
 +if test -d "$bootdir"
 +then
 + cp arch/x86/boot/bzImage "$bootdir"/vmlinuz
 +fi
  
 # change permissions of vmlinuz # change permissions of vmlinuz
Line 338: Line 506:
  echo 'Kernel installed correctly'  echo 'Kernel installed correctly'
 else else
- echo 'Kernel install failed' + error 'Kernel install failed'
- exit 1+
 fi fi
 if cmp System.map /boot/System.map if cmp System.map /boot/System.map
Line 345: Line 512:
  echo 'System.map installed correctly'  echo 'System.map installed correctly'
 else else
- echo 'System.map install failed' + error 'System.map install failed'
- exit 1+
 fi fi
 if cmp .config /boot/config if cmp .config /boot/config
Line 352: Line 518:
  echo 'Kernel config installed correctly'  echo 'Kernel config installed correctly'
 else else
- echo 'Kernel config install failed' + error 'Kernel config install failed' 
- exit 1+fi 
 +if test -d "$bootdir" 
 +then 
 + if cmp arch/x86/boot/bzImage "$bootdir"/vmlinuz 
 + then 
 + echo 'kernel installed to EFI correctly' 
 + else 
 + error 'kernel install to EFI failed' 
 + fi
 fi fi
 echo echo
Line 361: Line 535:
  
 exit 0 exit 0
- 
 </file> </file>
 ==== lilo ==== ==== lilo ====
Line 413: Line 586:
   * The lilo.conf excerpt is from the default lilo.conf that comes with Slackware plus a few options.    * The lilo.conf excerpt is from the default lilo.conf that comes with Slackware plus a few options. 
   * Thanks to [[wiki:user:alienbob|Alien Bob]] for his [[howtos:slackware_admin:kernelbuilding|kernel building howto]]. It inspired me to write a restructured and updated kernel building guide.    * Thanks to [[wiki:user:alienbob|Alien Bob]] for his [[howtos:slackware_admin:kernelbuilding|kernel building howto]]. It inspired me to write a restructured and updated kernel building guide. 
 +  * Updated by [[wiki:user:metaschima]]
 <!-- Please do not modify anything below, except adding new tags.--> <!-- Please do not modify anything below, except adding new tags.-->
 <!-- You must remove the tag-word "template" below before saving your new page --> <!-- You must remove the tag-word "template" below before saving your new page -->
 {{tag>howtos author_htexmexh kernel software}} {{tag>howtos author_htexmexh kernel software}}
 howtos:slackware_admin:building_the_linux_kernel_using_git_repository ()