A tool to install ubuntu mainline kernels from the console.

Overview

npm version

Ubuntu Kernel Tool

A tool to list, download, and install mainline kernels from the Ubuntu mainline repository.

ULTIMATE DISCLAIMER: DO NOT USE THIS TOOL UNLESS YOU KNOW WHAT YOU'RE DOING. USE AT YOUR OWN RISK!

As stated in the Ubuntu Wiki:

By default, Ubuntu systems run with the Ubuntu kernels provided by the Ubuntu repositories. However it is handy to be able to test with unmodified upstream kernels to help locate problems in Ubuntu kernel patches, or to confirm that upstream has fixed a specific issue. To this end we now offer select upstream kernel builds. These kernels are made from unmodified kernel source but using the Ubuntu kernel configuration files. These are then packaged as Ubuntu .deb files for simple installation, saving you the time of compiling kernels, and debugging build issues.

These kernels are not supported and are not appropriate for production use.

Animated preview

This tool was funded with copious amounts of coffee. If you think it has helped you, and you're feeling generous, you can always buy me another coffee!

Stability

This tool was put together in two days. I've done my utmost to make it easy to use and to not have it butcher your system in any way, but please note that my official statement is that this tool only works on my machine™ until further notice.

Due to the nature of this tool, testing with multiple unique installations (undoubtedly like your own since you're looking into this) is practically impossible. Although I'm always open to suggestions, and your feedback is always welcome.

Requirements:

This tool requires a recent version of Node.js to run.

It has been tested with the current LTS release (v16.13.2) and the latest release (v17.xx).

Running

You need npm on your system.

To run this tool on-the fly, invoke npx kerneltool [command...].

Alternatively, invoke sudo npm install -g kerneltool to install it globally on your system. (not recommended)

Usage

━━━ KernelTool for Ubuntu - 1.0.1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  $ kerneltool <command>

━━━ General commands ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  kerneltool cache clear
    Clears the cache.

  kerneltool cache inspect
    Inspects the cache.

  kerneltool clone [--repo #0] [--git-repo #0] <kernel> <directory>
    Clone the source code for a specific kernel version to a directory.

  kerneltool download [--repo #0] [-v,--variant #0] [-a,--arch #0] [-o,--overwrite] <kernel> [directory]
    Download a specific kernel version to the cache. Will optionally copy the .deb packages to an output directory.

  kerneltool install [--repo #0] [-y,--yes] <kernel> [variant]
    Install a specific kernel version. This command requires root privileges.

  kerneltool list [--repo #0] [-j,--json] [--after #0] [--before #0] [-A,--archs] [-V,--variants] [-l,--limit #0]
    Display available kernels from the mainline repository.

  kerneltool show [--repo #0] [-j,--json] [-a,--arch #0] [--all] <kernel>
    Show the information for a specific kernel version.

You can also print more details about any of these commands by calling them with 
the `-h,--help` flag right after the command name.

Additional notes:

  • The only command to require root privileges is kerneltool install. Everything else can be run by a normal user.
  • The cache is not shared amongst users. Running kerneltool download [kernel] as a user and later running sudo kerneltool install [kernel] (as root) will re-download all files from scratch.

A special note about kernels 5.16.x:

Kernel 5.16.x from the mainline repo will not install automatically. You need the libssl3 package on your system, and that's not currently available for Impish (21.10).

To install the kernel, make sure you install the .deb package manually from jammy first. It works on 21.10 without issue.

A special note for NVIDIA users:

Kernel 5.16.x will not work with the NVIDIA dkms package at the moment. You'll have to edit/patch the NVIDIA dkms files first. See this thread for more details.

As per the suggestion from that thread: adding the following near the top of /usr/src/nvidia-495.46/nvidia-uvm/uvm_migrate.c after all the #include statements fixed it for me.

#ifndef MIGRATE_PFN_LOCKED
#define MIGRATE_PFN_LOCKED 0
#endif

P.S: And yes! It's absolutely worth it. My steam games run so much faster and smoother now.

Contributing

All contributions are welcome. If you find a problem running it on your system and manage to fix it, please submit a PR.

P.S. Any PRs that touch this line of code will be rejected with extreme prejudice.

License (MIT)

Copyright 2022 Abdullah Ali

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
You might also like...

This is a tool that allows you to join servers on console.

This is a tool that allows you to join servers on console.

Friend Connect WARNING BEFORE YOU USE THIS TOOL, PLEASE READ THE FOLLOWING: WE AS CONTRIBUTORS ARE NOT RESPONSIBLE FOR ANY DAMAGE OR LOSS CAUSED BY TH

Dec 28, 2022

A NodeJS Console Logger with superpowers

LogFlake LogFlake is a NodeJS console logger with superpowers. It has the same API as the usual Console but with beautified output, a message header w

Oct 9, 2022

Console log to terminal

Termlog Console log to terminal What it does termlog send the browser console log to your terminal It also comes with a nodejs REPL so you can do some

Jan 21, 2022

NpxCard - Write 'npx hariom' in your console.

npx Card This is my NPX card for connecting with me in console or terminal. ❣️ Just Hit npx hariom Will see you in console in just a minute 👀 Importa

Jul 26, 2022

Console for mobile browsers

Console for mobile browsers

中文 Eruda Console for Mobile Browsers. Demo Browse it on your phone: https://eruda.liriliri.io/ In order to try it for different sites, execute the scr

Jan 1, 2023

Another logger in JS. This one offers a console.log-like API and formatting, colored lines and timestamps (or not if desired), all that with 0 dependencies.

Another logger in JS. This one offers a console.log-like API and formatting, colored lines and timestamps (or not if desired), all that with 0 dependencies.

hellog Your new logger ! hellog is a general-purpose logging library. It offers a console.log-like API and formatting, extensible type-safety colored

Jan 5, 2022

print faceit elo into the console/chat via telnet

Print MM Ranks and FaceIT elo ingame This tool uses telnet to interact with the console in CS:GO Description Gets faceit elo via the official faceit a

Sep 20, 2022

A simple library to draw option menu or other popup inputs and layout on Node.js console.

A simple library to draw option menu or other popup inputs and layout on Node.js console.

console-gui-tools A simple library to draw option menu or other popup inputs and layout on Node.js console. console-gui-tools A simple Node.js library

Dec 24, 2022

Beautiful errors for Remix, both in browser and console

Beautiful errors for Remix, both in browser and console

Rekindled Beautiful errors for Remix, both in browser and console. This project is inspired by php's ignition. I am personally in love with the idea o

Nov 22, 2022
Owner
Abdullah A. Hassan
I like writing interesting code and science fiction stories.
Abdullah A. Hassan
A command-line tool to manage Deno scripts installed via deno install

??️ nublar nublar is a command-line tool to manage your scripts installed via deno install. ??️ Installation deno install --allow-read --allow-write -

Shun Ueda 16 Dec 26, 2022
Instruction how to install laravel echo and pusher without vuejs or even npm

This 2 .js files are used to listen from server broadcasting with laravel-websockets, so that you don't need the use of Vue.js in your laravel app Fol

Muath Assawadi 7 Sep 28, 2022
GitHub action to install Foundry

foundry-toolchain Action This GitHub action installs Foundry. Example workflow on: [push] name: test jobs: check: name: Foundry project ru

Bjerg 128 Jan 5, 2023
Quick programmatically install npm dependencies 📦

qpind Install dependecies quick & programmatically ?? Install # Using npm: npm install qpind # Using pnpm: pnpm add qpind # Using yarn: yarn add qpind

Conner 15 Oct 6, 2022
Open apps directly in GNOME Software by clicking Install from Flathub and apps.gnome.

Flatline Open apps directly in GNOME Software by clicking Install from Flathub and apps.gnome. Load the extension in Firefox Clone the repository Open

Cleo Menezes Jr. 43 Nov 7, 2022
Service Installer for VMware Tanzu is a one-click automation solution that enables VMware field engineers to easily and rapidly install, configure, and operate VMware Tanzu services across a variety of cloud infrastructures.

Service Installer for VMware Tanzu Service Installer for VMware Tanzu seeks to provide a one-click automation solution to enable our VMware engineers

VMware Tanzu 42 Dec 1, 2022
This is a project that is used to execute python codes in the web page. You can install and use it in django projects, You can do any operations that can be performed in python shell with this package.

Django execute code This is a project that is used to execute python codes in the web page. You can install and use it in django projects, You can do

Shinu 5 Nov 12, 2022
🎨 VS Code extension for antd v5 design token. Install it now!👇

antd design token VSCode extension for antd v5 design token. Features Provide the hover hint and editor decorations of antd v5 design token, include c

社长长 12 Dec 30, 2022
Possibly the coolest way to install apps and customize your Mac!

BrewMyMac Possibly the coolest way to install apps and customize your Mac! Introduction This article explains the motivation behind this project. Gett

Alan Tai 38 Dec 6, 2022
Easiest 1-click way to install and use Stable Diffusion on your own computer. Provides a browser UI for generating images from text prompts and images. Just enter your text prompt, and see the generated image.

Stable Diffusion UI Easiest way to install and use Stable Diffusion on your own computer. No dependencies or technical knowledge required. 1-click ins

null 3.5k Dec 30, 2022