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
Quick install with default options:
With Curl:
curl -sSL https://github.com/tmiland/kernel-installer/raw/main/kernel_installer.sh | bash || exit 0
With Wget:
wget -qO - https://github.com/tmiland/kernel-installer/raw/main/kernel_installer.sh | bash || exit 0
For 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.sh
Set execute permission:
chmod +x kernel_installer.sh
For usage, run:
./kernel_installer.sh -h
If 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 5.18
--mainline |-m mainline kernel version 5.18
--longterm |-l longterm kernel version 5.15.41
--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
--changelog |-cl view changelog for kernel version
--update |-upd check for script update
--uninstall |-u uninstall kernel
To use opt --kernel:
./kernel_installer.sh --kernel 5.17.8
Else use:
./kernel_installer.sh --stable, --mainline or --longterm separately
To use --dir opt:
./kernel_installer.sh --dir /path/to/dir
To load kernel without reboot:
./kernel_installer.sh --kexec
To use --config:
./kernel_installer.sh --config menuconfig
default 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 kernel
To use --get-verified-tarball:
./kernel_installer.sh --get-verified-tarball
- Linux kernel releases PGP signatures
- Source script get-verified-tarball
- Installing dependencies
gnupg2
andgpgv2
if not installed
Used together:
./kernel_installer.sh --stable --config menuconfig --kexec --dir /path/to/dir --get-verified-tarball
Watch 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 root
Then:
su root
To 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 11
- PayPal me
- [BTC] : 33mjmoPxqfXnWNsvy8gvMZrrcG3gEa3YDM
Sign up for web hosting using this link, and receive $100 in credit over 60 days.
*** Use at own risk ***