Skip to content

SangwoonYun/Spidermine-kernel

Repository files navigation

GitHub last commit GitHub contributors GitHub code size in bytes

Spidermine Kernel

Project Reference

J. Won§, J. Ahn§, S. Yun, J. Kim, and K. Kang*, "Spidermine: Low Overhead User-Level Prefetching," in Proc. 38th ACM/SIGAPP Symp. on Applied Computing (SAC), 2023.

Kernel Build

Preparing to Build

Update the system and the available packages to the latest versions

sudo apt update
sudo apt upgrade -y

Check the current Linux Kernel

uname -r

Install the required packages and build tools

sudo apt install build-essential dwarves python3 libncurses-dev flex bison libssl-dev bc libelf-dev zstd gnupg2 wget git -y

Download Linux Kernel

The linux Kernel can be gotten from the kernel.org I use the Linux kernel 6.2.10

Download

wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.10.tar.xz

Extract

tar xvf linux-6.2.10.tar.xz
cd linux-6.2.10/

Configuration

Copy config file to our project

cp -v /boot/config-$(uname -r) .config
make menuconfig

And then Save and Exit

Modify the created config by disabling SYSTEM_REVOCATION_KEYS

scripts/config --disable SYSTEM_REVOCATION_KEYS
make localmodconfig

Compile

Compile the Linux Kernel

make bzImage -j$(nproc)

It's gonna take a long time

Compile the Linux Kernel modules

make modules -j$(nproc)

Optional Step

Enable Kernel Selection

sudo vi /etc/default/grub

Make the below line to comment

GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0

Update grub

sudo update-grub

Install

Install kernel modules

sudo make modules_install -j$(nproc)

Install kernel

sudo make install -j$(nproc)

And then reboot

sudo reboot -i