39 lines
1.3 KiB
Bash
39 lines
1.3 KiB
Bash
#! /bin/bash
|
|
|
|
YELLOW="\e[33m"
|
|
ENDCOLOR="\e[0m"
|
|
|
|
echo -e "\n${YELLOW}Downloading APT dependencies...${ENDCOLOR}\n"
|
|
sudo apt install build-essential git -y
|
|
sudo apt build-dep linux -y
|
|
|
|
echo -e "\n${YELLOW}Downloading kernel source...${ENDCOLOR}\n"
|
|
mkdir linux-parent && cd linux-parent
|
|
git clone --depth 1 https://github.com/torvalds/linux
|
|
cd linux
|
|
|
|
cp /boot/config-$(uname -r) .config # Copy current kernel config
|
|
make nconfig # Edit the current kernel configuration
|
|
diff /boot/config-$(uname -r) .config # Check your changes
|
|
|
|
# Do not include debugging symbols. Alternatively, use `strip` to remove them. (these configs are working as of 6.14)
|
|
scripts/config --undefine GDB_SCRIPTS
|
|
scripts/config --undefine DEBUG_INFO
|
|
scripts/config --undefine DEBUG_INFO_SPLIT
|
|
scripts/config --undefine DEBUG_INFO_REDUCED
|
|
scripts/config --undefine DEBUG_INFO_COMPRESSED
|
|
scripts/config --set-val DEBUG_INFO_NONE y
|
|
scripts/config --set-val DEBUG_INFO_DWARF5 n
|
|
scripts/config --disable DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT
|
|
|
|
echo -e "\n${YELLOW}Compiling the kernel...${ENDCOLOR}\n"
|
|
make -j$(nproc) deb-pkg LOCALVERSION=-custom
|
|
|
|
echo -e "\n${YELLOW}Installing the generated dpkg packages...${ENDCOLOR}\n"
|
|
sudo dpkg -i ../linux-headers*-custom*.deb
|
|
sudo dpkg -i ../linux-image*-custom*.deb
|
|
|
|
echo -e "\n${YELLOW}Cleaning up...${ENDCOLOR}\n"
|
|
cd ../..
|
|
rm -rf linux-parent
|