Automatic install script for The Linux kernel
Inspired by LinuxKernelBuild
Script to install the latest [stable/mainline/longterm] kernel from source on Debian-based distributions, for all architectures.
Will be installed when running script.
wget curl git rsync fakeroot build-essential ncurses-dev xz-utils libssl-dev bc liblz4-tool paxctl libelf-dev flex bison- This script reverts bug #1086172 Enable more ZRAM compression options by default
- Sets default compression to zstd, and enables support for the rest of the algorithms
- Options are:
lz4 compression support (ZRAM_BACKEND_LZ4) [Y/n/?] y lz4hc compression support (ZRAM_BACKEND_LZ4HC) [Y/n/?] y zstd compression support (ZRAM_BACKEND_ZSTD) [Y/n/?] y deflate compression support (ZRAM_BACKEND_DEFLATE) [Y/n/?] y 842 compression support (ZRAM_BACKEND_842) [Y/n/?] y lzo and lzo-rle compression support (ZRAM_BACKEND_LZO) [Y/n/?] y Default zram compressor 1. lzo-rle (ZRAM_DEF_COMP_LZORLE) 2. lzo (ZRAM_DEF_COMP_LZO) 3. lz4 (ZRAM_DEF_COMP_LZ4) (NEW) 4. lz4hc (ZRAM_DEF_COMP_LZ4HC) (NEW) > 5. zstd (ZRAM_DEF_COMP_ZSTD) 6. deflate (ZRAM_DEF_COMP_DEFLATE) (NEW) 7. 842 (ZRAM_DEF_COMP_842) (NEW)Quick install with default options:
With Curl:
curl -sSL https://github.com/tmiland/kernel-installer/raw/main/kernel_installer.sh | bash || exit 0With Wget:
wget -qO - https://github.com/tmiland/kernel-installer/raw/main/kernel_installer.sh | bash || exit 0For latest release
curl -s https://api.github.com/repos/tmiland/kernel-installer/releases/latest \ | grep "browser_download_url.*sh" \ | cut -d : -f 2,3 \ | tr -d \" \ | wget -qi -For main branch
wget https://github.com/tmiland/kernel-installer/raw/main/kernel_installer.shSet execute permission:
chmod +x kernel_installer.shFor usage, run:
./kernel_installer.sh -hIf called without arguments, installs stable kernel using /opt/linux --help |-h display this help and exit --kernel |-k kernel version of choice --stable |-s stable kernel version 6.15.6 --mainline |-m mainline kernel version 6.16-rc6 --longterm |-l longterm kernel version 6.12.38 --dir |-d install directory --kexec |-x load new kernel without reboot --config |-c set configuration target --verbose |-v increase verbosity --get-verified-tarball |-gvt cryptographically verify kernel tarball --nproc |-n set the number of processing units to use --enable-debug-info |-edi enable debug info --lowlatency |-low convert generic config to lowlatency --list-installed |-li list installed kernels --default-compression |-dc select default compression algorithm --changelog |-cl view changelog for kernel version --update |-upd check for script update --uninstall |-u uninstall kernel (use with -k option)To use opt --kernel:
./kernel_installer.sh --kernel 5.17.8Else use:
./kernel_installer.sh --stable, --mainline or --longterm separatelyTo use --dir opt:
./kernel_installer.sh --dir /path/to/dirTo load kernel without reboot:
./kernel_installer.sh --kexecTo use --config:
./kernel_installer.sh --config menuconfigdefault is olddefconfig
config - Update current config utilising a line-oriented program nconfig - Update current config utilising a ncurses menu based program menuconfig - Update current config utilising a menu based program xconfig - Update current config utilising a QT based front-end gconfig - Update current config utilising a GTK based front-end oldconfig - Update current config utilising a provided .config as base localmodconfig - Update current config disabling modules not loaded localyesconfig - Update current config converting local mods to core silentoldconfig - Same as oldconfig, but quietly, additionally update deps defconfig - New config with default from ARCH supplied defconfig savedefconfig - Save current config as ./defconfig (minimal config) allnoconfig - New config where all options are answered with no allyesconfig - New config where all options are accepted with yes allmodconfig - New config selecting modules when possible alldefconfig - New config with all symbols set to default randconfig - New config with random answer to all options listnewconfig - List new options olddefconfig - Same as silentoldconfig but sets new symbols to their default value kvmconfig - Enable additional options for guest kernel support tinyconfig - Configure the tiniest possible kernelTo use --get-verified-tarball:
./kernel_installer.sh --get-verified-tarball- Linux kernel releases PGP signatures
- Source script get-verified-tarball
- Installing dependencies
gnupg2andgpgv2if not installed
Used together:
./kernel_installer.sh --stable --config menuconfig --kexec --dir /path/to/dir --get-verified-tarballWatch install log:
tail -f ./kernel_installer.log- installation log in kernel_installer.log
- ./src/slib.sh function script is sourced remotely if not found locally
- This script is a combination of functions for spinners, colors and logging
- Source: Spinner: swelljoe/spinner
- Source: Run ok: swelljoe/run_ok
- Source: Slog: swelljoe/slog
- Source: Slib: virtualmin/slib
- This script is a combination of functions for spinners, colors and logging
Note: you will need to run this script as root
If root password is not set, type:
sudo passwd rootThen:
su rootTo uninstall previously installed kernel:
./kernel_installer.sh --uninstall --kernel 5.17.7- You will be prompted with a yes/no answer
Tested and working on: Debian 12
- PayPal me
- [BTC] : 33mjmoPxqfXnWNsvy8gvMZrrcG3gEa3YDM
*** Use at own risk ***

