Skip to content

Lean and simple performance oriented build of the Linux kernel ⚡

Notifications You must be signed in to change notification settings

keicodes/iodine-kernel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ Iodine Kernel

Lean and simple performance oriented build of the Linux kernel.

Every change aims to maintain - or, possibly, optimize - the power usage-to-performance ratio.

license: WTFPL

Features

  • Kernel compression mode LZ4
  • BMQ Process Scheduler
  • No I/O Scheduler (suited for better SSD performance)
  • Swap Pages LZ4/z3fold
  • Westwood+ TCP Congestion Control + FQ_CODEL Queue Scheduler
  • Disabled several hardening and debugging options
  • Low swappiness value
  • GCC optimization -O3, graysky2's patch
  • LLVM/Clang build facility

Releases

Pre-built releases no more provided

Build

Optionally, before jumping to the actual build, you may wish to edit the iodine.sh to set your personal configs under Configurations.

To build a DEB package (you could omit --deb as it's the default option), use:

./iodine.sh -gpc --deb --build

for a RPM package, use:

./iodine.sh -gpc --rpm --build

Append --generic to build a generic kernel.

Complete usage ./iodine.sh -h:

  -h, --help
  Print these options

  -g, --get-kernel
  Clone the Linux repository only

  -p, --apply-patches
  Apply patches only

  -c, --set-config
  Generate the kernel config with the selected options

  -b, --build
  Run over all the commands to build the kernel

  --llvm
  Use LLVM

  --deb, --rpm
  Package to either DEB or RPM

  --generic
  Optimize for generic x86_64 CPUs

  --sign-modules
  Signing facility

To sign the modules, proceed to update the option in the iodine.sh file to IODINE_SIGNING="y" and use IODINE_SIGNING_KEY to assign the signing key path.

Requirements

Since the kernel is compressed using LZ4, be sure to have it installed!

$ sudo apt install lz4

For a faster, less safe, experience you could disable the security mitigations editing the GRUB default (/etc/default/grub), appending mitigations=off to the GRUB_CMDLINE_LINUX_DEFAULT option:

GRUB_CMDLINE_LINUX_DEFAULT="quiet mitigations=off"