You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
toloveru 150a1e2ab5 Fixed tar xf error 3 years ago
LICENSE Changed license 3 years ago Tested on Mate 3 years ago
install Licensing 3 years ago
kernelcheck Fixed tar xf error 3 years ago
notify_all Licensing 3 years ago

Kernel checker


Ever thought of compiling a custom kernel, but held back because of the need for manual tracking, compilation and installation? Well, I say no more. This tool can do it for you.

IMPORTANT: this tool has currently reached the alpha stage. It will likely work as expected on testing systems by now, but you should still be cautious on production systems.

What does it do?

  • Periodically check for updates on
  • Download a new kernel if available
  • Verify the kernel signature
  • Compile and install the kernel
  • Nofity the users about what is going on (tested on Xfce and Mate).
  • Remove a distribution kernel if present (disabled by default).


  1. Clone and navigate to the repository, then run ./install
  2. Copy your existing kernel .config file to /root/.config/kernel/.config.

Gee, I don’t have my own .config file. How can I create one?

The easiest approach (and the one that I used as well), is using the assistance of the Arch Wiki. So, in a nutshell:

  1. Grab the kernel source from and its signature, and put it in a kernel build directory.
  2. Unpack the archive using unxz linux-*.*.*.tar.xz (replace the wildcards with the version number). This will return you a .tar file.
  3. Verify the tarball by running gpg2 --verify linux-*.*.*.tar.sign
  4. Receive the keys if required with gpg2 --recv-keys KEY_ID (for more info check on and verify again.
  5. Unpack the tarball using tar xf linux-*.*.*.tar
  6. Change directory to linux-*.*.*
  7. Clean up the kernel directory using make clean && make mrproper.
  8. Run make localmodconfig to get a basic configuration file.
  9. You can add more features like NTFS support, AppArmor, kernel hardening etc. using make nconfig and navigating to the respective configuration menus.
  10. Don’t forget to copy the config file to /root/.config/kernel/.config!

This script runs as root. Isn’t that unsafe?

In a non-interactive script, it’s much easier to run priveleged by default and drop priveleges as needed, instead of requiring authentication every time. If you know of a fully non-interactive way of achieving on-the-fly enhanced priveleges though, feel free to open a pull request.

I want to use this code in my own projects. What should I be aware of?

If you wish to redistribute, share or otherwise modify the material provided in this project, aside from the license, the following rules also apply and when conflicting with the license override it:

  • You must use it for non-commercial purposes only.
  • Attribution to this project (my name and a link to this repository) are required.
  • In disputes, the previous Creative Commons license is invalid.

By downloading this project you agree to abide by the license and the aforementioned rules.

Contact me

If you have any questions, encountered bugs, feature requests, etc. about this project, please send me a message on Facebook, and I’ll get back to you as soon as possible. If you find this an interesting project, consider following me there also!