mirror of
https://github.com/arvin-foroutan/build-ubuntu-kernel.git
synced 2025-07-24 12:22:42 +00:00

To build 6.16-rc6: KERNEL_SRC_URI="https://git.kernel.org/torvalds/t" KERNEL_SRC_EXT="tar.gz" KERNEL_BASE_VER=6.16 KERNEL_PATCH_VER=6.16-rc6 KERNEL_SUB_VER=061600rc6 ./build_kernel.sh
1087 lines
66 KiB
Bash
Executable File
1087 lines
66 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Compile the Linux kernel for Ubuntu.
|
|
|
|
set -euo pipefail
|
|
|
|
KERNEL_MAJOR_VER=${KERNEL_MAJOR_VER:-"6"}
|
|
KERNEL_BASE_VER=${KERNEL_BASE_VER:-"6.15"}
|
|
KERNEL_PATCH_VER=${KERNEL_PATCH_VER:-"6.15.6"}
|
|
KERNEL_SUB_VER=${KERNEL_SUB_VER:-"061506"}
|
|
KERNEL_TYPE=${KERNEL_TYPE:-"idle"}
|
|
KERNEL_VERSION_LABEL=${KERNEL_VERSION_LABEL:-"custom"}
|
|
|
|
KERNEL_MAIN_DIR=${KERNEL_MAIN_DIR:-$HOME/kernel_main}
|
|
KERNEL_BUILD_DIR=${KERNEL_BUILD_DIR:-${KERNEL_MAIN_DIR}/build}
|
|
KERNEL_SOURCES_DIR=${KERNEL_SOURCES_DIR:-${KERNEL_MAIN_DIR}/sources}
|
|
COMPILED_KERNELS_DIR=${COMPILED_KERNELS_DIR:-${KERNEL_MAIN_DIR}/compiled}
|
|
CONFIG_PATH=${CONFIG_PATH:-${KERNEL_MAIN_DIR}/configs}
|
|
PATCH_PATH=${PATCH_PATH:-${KERNEL_MAIN_DIR}/patches}
|
|
LUCJAN_PATCH_PATH=${LUCJAN_PATCH_PATH:-${PATCH_PATH}/lucjan-patches}
|
|
XANMOD_PATCH_PATH=${XANMOD_PATCH_PATH:-${PATCH_PATH}/xanmod-patches}
|
|
CUSTOM_PATCH_PATH=${CUSTOM_PATCH_PATH:-${PATCH_PATH}/custom-patches}
|
|
KERNEL_SRC_URI=${KERNEL_SRC_URI:-"https://cdn.kernel.org/pub/linux/kernel/v${KERNEL_MAJOR_VER}.x"}
|
|
KERNEL_SRC_EXT=${KERNEL_SRC_EXT:-"tar.xz"}
|
|
KERNEL_SRC_NAME=${KERNEL_SRC_NAME:-"linux-${KERNEL_PATCH_VER}"}
|
|
KERNEL_SRC_URL=${KERNEL_SRC_URL:-${KERNEL_SRC_URI}/${KERNEL_SRC_NAME}.${KERNEL_SRC_EXT}}
|
|
|
|
echo "*** Creating kernel workspace if it doesn't already exist... ✓";
|
|
mkdir -pv ${KERNEL_MAIN_DIR};
|
|
|
|
echo "*** Creating sources directory if it doesn't already exist... ✓";
|
|
mkdir -pv ${KERNEL_SOURCES_DIR};
|
|
|
|
echo "*** Creating patches directory if it doesn't already exist... ✓";
|
|
mkdir -pv ${CUSTOM_PATCH_PATH};
|
|
|
|
echo "*** Creating configs directory if it doesn't already exist... ✓";
|
|
mkdir -pv ${CONFIG_PATH};
|
|
|
|
# Set the relative path so we can run the script from any directory
|
|
# i.e. instead of $ cd build-ubuntu-kernel && ./build_kernel.sh
|
|
# We can now do ./build-ubuntu-kernel/build_kernel.sh, for example
|
|
PARENT_PATH=$(cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P)
|
|
cd ${PARENT_PATH};
|
|
|
|
if [ ${PARENT_PATH} != ${KERNEL_MAIN_DIR} ]; then
|
|
# Handle the case where we allow for building a modified build script
|
|
# in $KERNEL_MAIN_DIR (~/kernel_main) as opposed to the location where
|
|
# we cloned the repo.
|
|
#
|
|
# For the code below, if we are running this script in ~/kernel_main,
|
|
# $PARENT_PATH will equal $KERNEL_MAIN_DIR, so we can just safely ignore it.
|
|
#
|
|
# Lastly, for making changes to this original script, you can make them in
|
|
# ~/kernel_main/build_kernel.sh, and ignore the build_kernel.sh from the
|
|
# directory where repo was cloned, as it's technically only needed the
|
|
# first time you run the script to set things up. But can also be repeatedly
|
|
# run from the cloned directory or ~/kernel_main.
|
|
#
|
|
# Another option is to ignore ~/kernel_main/build_kernel.sh, and just make your
|
|
# changes in the directory where you cloned the repo, but first stashing
|
|
# your changes with "git stash", then pulling the latest script with
|
|
# "git pull origin master", and then apply back your changes with "git stash apply".
|
|
# Probably the easiest way to stay updated while applying your own special sauce.
|
|
|
|
cp --no-clobber --recursive ./configs/* ${CONFIG_PATH};
|
|
cp --update --recursive ./patches/* ${CUSTOM_PATCH_PATH};
|
|
|
|
SCRIPT_NAME=${SCRIPT_NAME:-"build_kernel"}
|
|
BACKUP_SCRIPT_NAME=${BACKUP_SCRIPT_NAME:-"${SCRIPT_NAME}-backup"}
|
|
SCRIPT_EXT=${SCRIPT_EXT:-"sh"}
|
|
SCRIPT_FILE=${KERNEL_MAIN_DIR}/${SCRIPT_NAME}.${SCRIPT_EXT}
|
|
BACKUP_SCRIPT_FILE=${KERNEL_MAIN_DIR}/${BACKUP_SCRIPT_NAME}.${SCRIPT_EXT}
|
|
SHOW_BACKUP_PROMPT=${SHOW_BACKUP_PROMPT:-"yes"}
|
|
if [ ${SHOW_BACKUP_PROMPT} == "yes" ]; then
|
|
if [ -f ${SCRIPT_FILE} ]; then
|
|
echo -n "Found existing build script. Overwrite? [y/N]: ";
|
|
read yno;
|
|
case $yno in
|
|
[yY] | [yY][Ee][Ss] )
|
|
if [ -f ${BACKUP_SCRIPT_FILE} ]; then
|
|
echo "Removing the old backup ${SCRIPT_NAME} script... ✓";
|
|
rm -f ${BACKUP_SCRIPT_FILE};
|
|
fi
|
|
echo "*** Backing up the current ${SCRIPT_NAME} script... ✓";
|
|
cp ${SCRIPT_FILE} ${BACKUP_SCRIPT_FILE};
|
|
echo "*** Copying over the updated ${SCRIPT_NAME} script... ✓";
|
|
cp --update ./${SCRIPT_NAME}.${SCRIPT_EXT} ${KERNEL_MAIN_DIR};
|
|
;;
|
|
[nN] | [n|N][O|o] )
|
|
;&
|
|
*)
|
|
echo "*** Keeping existing ${SCRIPT_NAME} script.";
|
|
;;
|
|
esac
|
|
else
|
|
echo "*** Copying ${SCRIPT_NAME}.${SCRIPT_EXT} to ${KERNEL_MAIN_DIR}"
|
|
echo " to allow for custom editing... ✓";
|
|
cp ./${SCRIPT_NAME}.${SCRIPT_EXT} ${KERNEL_MAIN_DIR};
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echo "*** Removing previous build directory if it exists... ✓";
|
|
rm -rf ${KERNEL_BUILD_DIR};
|
|
mkdir -pv ${KERNEL_BUILD_DIR};
|
|
cd ${KERNEL_BUILD_DIR};
|
|
|
|
if ! [ -f ${KERNEL_SOURCES_DIR}/${KERNEL_SRC_NAME}.${KERNEL_SRC_EXT} ]; then
|
|
echo "*** No tarball found for ${KERNEL_SRC_NAME}, fetching... ✓";
|
|
wget ${KERNEL_SRC_URL} -P ${KERNEL_SOURCES_DIR};
|
|
fi
|
|
|
|
echo "*** Copying over the source tarball... ✓";
|
|
cp -v ${KERNEL_SOURCES_DIR}/${KERNEL_SRC_NAME}.${KERNEL_SRC_EXT} .;
|
|
|
|
TAR_VERBOSE=${TAR_VERBOSE:-"no"}
|
|
echo "*** Extracting the kernel source tarball. Please wait... ";
|
|
[ ${TAR_VERBOSE} == "no" ] && TAR_FLAGS=${TAR_FLAGS:-"xf"} || TAR_FLAGS=${TAR_FLAGS:-"xvf"};
|
|
tar ${TAR_FLAGS} ${KERNEL_SRC_NAME}.${KERNEL_SRC_EXT};
|
|
echo "*** Finished extracting source tarball. ✓";
|
|
rm -f ${KERNEL_SRC_NAME}.${KERNEL_SRC_EXT};
|
|
cd ${KERNEL_SRC_NAME};
|
|
|
|
if [ -d ${PATCH_PATH}/lucjan-patches ]; then
|
|
echo "*** Found lucjan-patches, pulling latest... ✓";
|
|
git -C ${PATCH_PATH}/lucjan-patches pull https://github.com/sirlucjan/kernel-patches.git;
|
|
else
|
|
echo "*** Fetching lucjan patches... ✓";
|
|
git clone https://github.com/sirlucjan/kernel-patches.git ${PATCH_PATH}/lucjan-patches;
|
|
fi
|
|
|
|
if [ -d ${PATCH_PATH}/xanmod-patches ]; then
|
|
echo "*** Found xanmod-patches, pulling latest... ✓";
|
|
git -C ${PATCH_PATH}/xanmod-patches pull https://gitlab.com/xanmod/linux-patches.git;
|
|
else
|
|
echo "*** Fetching xanmod patches... ✓";
|
|
git clone https://github.com/xanmod/linux-patches.git ${PATCH_PATH}/xanmod-patches;
|
|
fi
|
|
|
|
UBUNTU_PATCHES=${UBUNTU_PATCHES:-"yes"}
|
|
if [ ${UBUNTU_PATCHES} == "yes" ]; then
|
|
# Deprecated as of 5.4.45 but can still be applied
|
|
# See https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.45/
|
|
echo "*** Copying and applying Ubuntu patches... 1/4 ✓";
|
|
if [ ${KERNEL_BASE_VER} == "5.4" ]; then
|
|
KERNEL_BASE_VER_OVERRIDE=5.4;
|
|
elif [ ${KERNEL_BASE_VER} == "6.12" ]; then
|
|
KERNEL_BASE_VER_OVERRIDE=6.10+;
|
|
elif [ ${KERNEL_BASE_VER} == "6.15" ] ||
|
|
[ ${KERNEL_BASE_VER} == "6.16" ]; then
|
|
KERNEL_BASE_VER_OVERRIDE=6.15+;
|
|
else
|
|
KERNEL_BASE_VER_OVERRIDE=5.7+;
|
|
fi
|
|
cp -v ${CUSTOM_PATCH_PATH}/ubuntu-${KERNEL_BASE_VER_OVERRIDE}/*.patch .;
|
|
patch -p1 < ./0001-base-packaging.patch;
|
|
patch -p1 < ./0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch;
|
|
patch -p1 < ./0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch;
|
|
|
|
echo "*** Updating version number in changelog... 2/4 ✓";
|
|
# Update the version in the changelog to latest version since the patches
|
|
# are no longer maintained and because we want to keep our kernel as Ubuntu-like
|
|
# as possible (with ABI and all)
|
|
if [ ${KERNEL_BASE_VER} == "5.4" ]; then
|
|
sed -i "s/5.4.45-050445/${KERNEL_PATCH_VER}-${KERNEL_SUB_VER}/g" ./0004-debian-changelog.patch;
|
|
else # for all kernels > 5.4. The 5.7.1 kernel was last to supply patches
|
|
sed -i "s/5.7.1-050701/${KERNEL_PATCH_VER}-${KERNEL_SUB_VER}/g" ./0004-debian-changelog.patch;
|
|
fi
|
|
patch -p1 < ./0004-debian-changelog.patch;
|
|
|
|
echo "*** Updating patch version number... 3/4 ✓";
|
|
[ ${KERNEL_BASE_VER} == "5.4" ] && KERNEL_PATCH_SUB_VER=5.4.0-26.30 || KERNEL_PATCH_SUB_VER=5.7.0-6.7;
|
|
patch -p1 < ./0005-configs-based-on-Ubuntu-${KERNEL_PATCH_SUB_VER}.patch;
|
|
|
|
echo "*** Update debian compat level from 9 to 10... 4/4 ✓";
|
|
# Solves the following:
|
|
# dh_installdeb: warning: Compatibility levels before 10 are deprecated (level 9 in use)
|
|
sed -i "s/9/10/g" ./debian/compat;
|
|
echo "*** Successfully applied all Ubuntu patches. ✓";
|
|
fi
|
|
|
|
# Allow support for rt (real-time) kernels (this is now mainlined in 6.12+)
|
|
# https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt
|
|
if [ ${KERNEL_TYPE} == "rt" ]; then
|
|
echo "*** Copying and applying rt patches... ✓";
|
|
if [ ${KERNEL_BASE_VER} == "6.6" ]; then
|
|
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-6.6.87-rt54.patch .;
|
|
patch -p1 < ./patch-6.6.87-rt54.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "6.1" ]; then
|
|
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-6.1.134-rt51.patch .;
|
|
patch -p1 < ./patch-6.1.134-rt51.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "5.15" ]; then
|
|
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.15.183-rt85.patch .;
|
|
patch -p1 < ./patch-5.15.183-rt85.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "5.10" ]; then
|
|
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.10.237-rt131.patch .;
|
|
patch -p1 < ./patch-5.10.237-rt131.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "5.4" ]; then
|
|
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.4.290-rt96.patch .;
|
|
patch -p1 < ./patch-5.4.290-rt96.patch;
|
|
fi
|
|
fi
|
|
|
|
if [ ${KERNEL_BASE_VER} == "6.16" ]; then # Latest rc
|
|
echo "*** Copying and applying adios io patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/adios-iosched-patches-v9/*.patch .;
|
|
patch -p1 < ./0001-iosched-6.16-introduce-ADIOS-I-O-scheduler.patch;
|
|
echo "*** Copying and applying arch patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/arch-patches-v3-sep/*.patch .;
|
|
patch -p1 < ./0001-drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch;
|
|
patch -p1 < ./0002-add-sysctl-to-allow-disabling-unprivileged-CLONE_NEW.patch;
|
|
echo "*** Copying and applying asus patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/asus-patches-v4/*.patch .;
|
|
patch -p1 < ./0001-asus-patches.patch;
|
|
echo "*** Copying and applying async patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/async-patches/*.patch .;
|
|
patch -p1 < ./0001-async-patches.patch;
|
|
echo "*** Copying and applying bbr3 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/bbr3-patches/*.patch .;
|
|
patch -p1 < ./0001-tcp-bbr3-initial-import.patch;
|
|
echo "*** Copying and applying block patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/block-patches-all/*.patch .;
|
|
patch -p1 < ./0001-block-patches.patch;
|
|
echo "*** Copying and applying cpuidle patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/cpuidle-patches/*.patch .;
|
|
patch -p1 < ./0001-cpuidle-Prefer-teo-over-menu-governor.patch;
|
|
echo "*** Copying and applying cpu cachyos patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/cpu-cachyos-patches/*.patch .;
|
|
patch -p1 < ./0001-CACHY-Add-x86_64-ISA-and-Zen4-compiler-optimizations.patch;
|
|
echo "*** Copying and applying cachyos fixes patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/cachyos-fixes-patches-v8-sep/*.patch .;
|
|
patch -p1 < ./0001-kbuild-add-resolve_btfids-to-pacman-PKGBUILD.patch;
|
|
patch -p1 < ./0002-drm-xe-Reapply-drm-i915-Disable-DSB-in-Xe-KMD.patch;
|
|
patch -p1 < ./0004-Bluetooth-btusb-Add-new-VID-PID-0489-e14e-for-MT7925.patch;
|
|
patch -p1 < ./0005-drm-amd-display-disable-CRTC-degamma-LUT-for-DCN401.patch;
|
|
echo "*** Copying and applying clearlinux patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/6.13/clearlinux-patches-sep/*.patch .;
|
|
patch -p1 < ./0002-pci-pme-wakeups.patch;
|
|
patch -p1 < ./0003-smpboot-reuse-timer-calibration.patch;
|
|
patch -p1 < ./0005-migrate-some-systemd-defaults-to-the-kernel-defaults.patch;
|
|
patch -p1 < ./0006-itmt_epb-use-epb-to-scale-itmt.patch;
|
|
patch -p1 < ./0007-itmt2-ADL-fixes.patch;
|
|
patch -p1 < ./0008-add-a-per-cpu-minimum-high-watermark-an-tune-batch-s.patch;
|
|
patch -p1 < ./0009-md-raid6-algorithms-scale-test-duration-for-speedier.patch;
|
|
patch -p1 < ./0010-clocksource-only-perform-extended-clocksource-checks.patch;
|
|
patch -p1 < ./0011-ACPI-align-slab-for-improved-memory-performance.patch;
|
|
patch -p1 < ./0012-net-sock-increase-default-number-of-_SK_MEM_PACKETS-.patch;
|
|
patch -p1 < ./0013-clear-sched-fair-Tweak-idle-balance-calculation.patch;
|
|
patch -p1 < ./0014-clear-fs-binfmt_elf-Properly-handle-memory-mapping-f.patch;
|
|
patch -p1 < ./0015-clear-net-sock-Introduce-64KB-reclaim-threshold.patch;
|
|
patch -p1 < ./0016-clear-init-init_task-Tweak-timer_slack-value.patch;
|
|
echo "*** Copying and applying drm patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/drm-patches-v2-all/*.patch .;
|
|
patch -p1 < ./0001-drm-patches.patch;
|
|
echo "*** Copying and applying futex patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/futex-patches/*.patch .;
|
|
patch -p1 < ./0001-futex-6.16-Add-entry-point-for-FUTEX_WAIT_MULTIPLE-o.patch;
|
|
echo "*** Copying and applying O3 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/kbuild-cachyos-patches/*.patch .;
|
|
patch -p1 < ./0001-Cachy-Allow-O3.patch;
|
|
echo "*** Copying and applying le9 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/le9uo-patches/*.patch .;
|
|
patch -p1 < ./0001-mm-6.16-add-le9uo.patch;
|
|
echo "*** Copying and applying zblock patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/mm-zblock-patches/*.patch .;
|
|
patch -p1 < ./0001-mm-add-zblock-allocator.patch;
|
|
echo "*** Copying and applying rt patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/rt-patches-all/*.patch .;
|
|
patch -p1 < ./0001-rt-patches.patch;
|
|
echo "*** Copying and applying s5 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/s5-patches/*.patch .;
|
|
patch -p1 < ./0001-s5-patches.patch;
|
|
echo "*** Copying and applying v4l2loopback patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}-rc/v4l2loopback-patches-v3/*.patch .;
|
|
patch -p1 < ./0001-media-v4l2-core-add-v4l2loopback-driver.patch;
|
|
echo "*** Copying and applying xanmod patches.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/linux-6.15.y-xanmod/xanmod/*.patch .;
|
|
patch -p1 < ./0001-XANMOD-x86-build-Add-more-CFLAGS-optimizations.patch;
|
|
patch -p1 < ./0002-XANMOD-kbuild-Add-GCC-SMS-based-modulo-scheduling-fl.patch;
|
|
patch -p1 < ./0003-kbuild-Re-add-.config-file-required-to-sign-external.patch;
|
|
patch -p1 < ./0004-kbuild-Remove-GCC-minimal-function-alignment.patch;
|
|
patch -p1 < ./0005-XANMOD-fair-Set-scheduler-tunable-latencies-to-unsca.patch;
|
|
patch -p1 < ./0007-XANMOD-block-mq-deadline-Increase-write-priority-to-.patch;
|
|
patch -p1 < ./0008-XANMOD-block-mq-deadline-Disable-front_merges-by-def.patch;
|
|
patch -p1 < ./0009-XANMOD-block-Set-rq_affinity-to-force-complete-I-O-r.patch;
|
|
patch -p1 < ./0010-XANMOD-blk-wbt-Set-wbt_default_latency_nsec-to-2msec.patch;
|
|
patch -p1 < ./0011-XANMOD-kconfig-add-500Hz-timer-interrupt-kernel-conf.patch;
|
|
patch -p1 < ./0013-XANMOD-mm-Raise-max_map_count-default-value.patch;
|
|
patch -p1 < ./0014-XANMOD-mm-vmscan-Reduce-amount-of-swapping.patch;
|
|
patch -p1 < ./0015-XANMOD-sched-autogroup-Add-kernel-parameter-and-conf.patch;
|
|
patch -p1 < ./0016-XANMOD-cpufreq-tunes-ondemand-and-conservative-gover.patch;
|
|
patch -p1 < ./0017-XANMOD-lib-kconfig.debug-disable-default-SYMBOLIC_ER.patch;
|
|
patch -p1 < ./0018-XANMOD-scripts-setlocalversion-remove-tag-for-git-re.patch;
|
|
patch -p1 < ./0019-XANMOD-scripts-setlocalversion-Move-localversion-fil.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "6.15" ]; then # Latest stable
|
|
echo "*** Copying and applying adios io patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/adios-iosched-patches-v8/*.patch .;
|
|
patch -p1 < ./0001-iosched-6.15-introduce-ADIOS-I-O-scheduler.patch;
|
|
echo "*** Copying and applying amd pstate patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/amd-pstate-patches-all/*.patch .;
|
|
patch -p1 < ./0001-amd-pstate-patches.patch;
|
|
echo "*** Copying and applying arch patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/arch-patches-v6/*.patch .;
|
|
patch -p1 < ./0001-arch-patches.patch;
|
|
echo "*** Copying and applying asus patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/asus-patches-v3/*.patch .;
|
|
patch -p1 < ./0001-asus-patches.patch;
|
|
echo "*** Copying and applying aufs patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/aufs-patches/*.patch .;
|
|
patch -p1 < ./0001-aufs-6.15-merge-v20250602.patch;
|
|
echo "*** Copying and applying async patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/async-patches/*.patch .;
|
|
patch -p1 < ./0001-async-patches.patch;
|
|
echo "*** Copying and applying block patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/block-patches-all/*.patch .;
|
|
patch -p1 < ./0001-block-patches.patch;
|
|
echo "*** Copying and applying cpuidle patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/cpuidle-patches/*.patch .;
|
|
patch -p1 < ./0001-cpuidle-Prefer-teo-over-menu-governor.patch;
|
|
echo "*** Copying and applying cpu cachyos patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/cpu-cachyos-patches-all/*.patch .;
|
|
patch -p1 < ./0001-cpu-cachyos-patches.patch;
|
|
echo "*** Copying and applying cachyos fixes patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/cachyos-fixes-patches-v13-sep/*.patch .;
|
|
patch -p1 < ./0002-i2c-piix4-Make-CONFIG_I2C_PIIX4-dependent-on-CONFIG_.patch;
|
|
patch -p1 < ./0003-i2c-piix4-x86-platform-Move-the-SB800-PIIX4-FCH-defi.patch;
|
|
patch -p1 < ./0004-platform-x86-amd-pmc-Use-FCH_PM_BASE-definition.patch;
|
|
patch -p1 < ./0005-Documentation-Add-AMD-Zen-debugging-document.patch;
|
|
patch -p1 < ./0006-x86-CPU-AMD-Print-the-reason-for-the-last-reset.patch;
|
|
patch -p1 < ./0007-drm-xe-Reapply-drm-i915-Disable-DSB-in-Xe-KMD.patch;
|
|
patch -p1 < ./0009-Bluetooth-btusb-Add-new-VID-PID-0489-e14e-for-MT7925.patch;
|
|
patch -p1 < ./0010-HID-quirks-Add-HID_QUIRK_IGNORE_MOUSE-quirk.patch;
|
|
patch -p1 < ./0011-zen-documentation-Revert-the-svg-s.patch;
|
|
patch -p1 < ./0012-drm-amd-display-disable-CRTC-degamma-LUT-for-DCN401.patch;
|
|
patch -p1 < ./0013-Revert-kbuild-remove-EXTRA_-FLAGS-support.patch;
|
|
patch -p1 < ./0014-drm-amdgpu-Fix-Illegal-opcode-in-command-stream-Erro.patch;
|
|
patch -p1 < ./0015-Revert-drm-amdgpu-Fix-Illegal-opcode-in-command-stre.patch;
|
|
echo "*** Copying and applying clearlinux patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/6.13/clearlinux-patches-sep/*.patch .;
|
|
patch -p1 < ./0002-pci-pme-wakeups.patch;
|
|
patch -p1 < ./0003-smpboot-reuse-timer-calibration.patch;
|
|
patch -p1 < ./0004-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch;
|
|
patch -p1 < ./0005-migrate-some-systemd-defaults-to-the-kernel-defaults.patch;
|
|
patch -p1 < ./0006-itmt_epb-use-epb-to-scale-itmt.patch;
|
|
patch -p1 < ./0007-itmt2-ADL-fixes.patch;
|
|
patch -p1 < ./0008-add-a-per-cpu-minimum-high-watermark-an-tune-batch-s.patch;
|
|
patch -p1 < ./0009-md-raid6-algorithms-scale-test-duration-for-speedier.patch;
|
|
patch -p1 < ./0010-clocksource-only-perform-extended-clocksource-checks.patch;
|
|
patch -p1 < ./0011-ACPI-align-slab-for-improved-memory-performance.patch;
|
|
patch -p1 < ./0012-net-sock-increase-default-number-of-_SK_MEM_PACKETS-.patch;
|
|
patch -p1 < ./0013-clear-sched-fair-Tweak-idle-balance-calculation.patch;
|
|
patch -p1 < ./0014-clear-fs-binfmt_elf-Properly-handle-memory-mapping-f.patch;
|
|
patch -p1 < ./0015-clear-net-sock-Introduce-64KB-reclaim-threshold.patch;
|
|
patch -p1 < ./0016-clear-init-init_task-Tweak-timer_slack-value.patch;
|
|
echo "*** Copying and applying futex patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/futex-patches/*.patch .;
|
|
patch -p1 < ./0001-futex-6.15-Add-entry-point-for-FUTEX_WAIT_MULTIPLE-o.patch;
|
|
echo "*** Copying and applying O3 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/kbuild-cachyos-patches/*.patch .;
|
|
patch -p1 < ./0001-Cachy-Allow-O3.patch;
|
|
echo "*** Copying and applying le9 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/le9uo-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-mm-6.15-add-le9uo.patch;
|
|
echo "*** Copying and applying zblock patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/mm-zblock-patches/*.patch .;
|
|
patch -p1 < ./0001-mm-add-zblock-allocator.patch;
|
|
echo "*** Copying and applying openvpn dco patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/openvpn-dco-patches-v4-all/*.patch .;
|
|
patch -p1 < ./0001-openvpn-dco-patches.patch;
|
|
echo "*** Copying and applying pf patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/pf-fixes-patches-v14/*.patch .;
|
|
patch -p1 < ./0001-pf-fixes-patches.patch;
|
|
echo "*** Copying and applying rt patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/rt-patches-all/*.patch .;
|
|
patch -p1 < ./0001-rt-patches.patch;
|
|
echo "*** Copying and applying v4l2loopback patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/v4l2loopback-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-v4l2loopback-patches.patch;
|
|
echo "*** Copying and applying xanmod patches.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/linux-6.15.y-xanmod/xanmod/*.patch .;
|
|
patch -p1 < ./0001-XANMOD-x86-build-Add-more-CFLAGS-optimizations.patch;
|
|
patch -p1 < ./0002-XANMOD-kbuild-Add-GCC-SMS-based-modulo-scheduling-fl.patch;
|
|
patch -p1 < ./0003-kbuild-Re-add-.config-file-required-to-sign-external.patch;
|
|
patch -p1 < ./0004-kbuild-Remove-GCC-minimal-function-alignment.patch;
|
|
patch -p1 < ./0005-XANMOD-fair-Set-scheduler-tunable-latencies-to-unsca.patch;
|
|
patch -p1 < ./0007-XANMOD-block-mq-deadline-Increase-write-priority-to-.patch;
|
|
patch -p1 < ./0008-XANMOD-block-mq-deadline-Disable-front_merges-by-def.patch;
|
|
patch -p1 < ./0009-XANMOD-block-Set-rq_affinity-to-force-complete-I-O-r.patch;
|
|
patch -p1 < ./0010-XANMOD-blk-wbt-Set-wbt_default_latency_nsec-to-2msec.patch;
|
|
patch -p1 < ./0011-XANMOD-kconfig-add-500Hz-timer-interrupt-kernel-conf.patch;
|
|
patch -p1 < ./0013-XANMOD-mm-Raise-max_map_count-default-value.patch;
|
|
patch -p1 < ./0014-XANMOD-mm-vmscan-Reduce-amount-of-swapping.patch;
|
|
patch -p1 < ./0015-XANMOD-sched-autogroup-Add-kernel-parameter-and-conf.patch;
|
|
patch -p1 < ./0016-XANMOD-cpufreq-tunes-ondemand-and-conservative-gover.patch;
|
|
patch -p1 < ./0017-XANMOD-lib-kconfig.debug-disable-default-SYMBOLIC_ER.patch;
|
|
patch -p1 < ./0018-XANMOD-scripts-setlocalversion-remove-tag-for-git-re.patch;
|
|
patch -p1 < ./0019-XANMOD-scripts-setlocalversion-Move-localversion-fil.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "6.12" ]; then # LTS kernel, supported until 2030
|
|
echo "*** Copying and applying amd cache optimizer patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/amd-cache-optimizer-patches/*.patch .;
|
|
patch -p1 < ./0001-amd-cache-optimizer-patches.patch;
|
|
echo "*** Copying and applying arch patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/arch-patches/*.patch .;
|
|
patch -p1 < ./0001-arch-patches.patch;
|
|
echo "*** Copying and applying bbr3 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/bbr3-patches/*.patch .;
|
|
patch -p1 < ./0001-tcp-bbr3-initial-import.patch;
|
|
echo "*** Copying and applying cachyos fixes patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/cachyos-fixes-patches-v21-sep/*.patch .;
|
|
patch -p1 < ./0001-drm-amd-Taint-the-kernel-when-enabling-overdrive.patch;
|
|
patch -p1 < ./0002-drm-edid-add-a-quirk-for-two-240Hz-Samsung-monitors.patch;
|
|
patch -p1 < ./0003-kbuild-add-resolve_btfids-to-pacman-PKGBUILD.patch;
|
|
patch -p1 < ./0004-fs-ntfs3-Add-more-checks-in-mi_enum_attr-part-2.patch;
|
|
patch -p1 < ./0005-fs-ntfs3-Add-check-in-ntfs_extend_initialized_size.patch;
|
|
patch -p1 < ./0006-fs-ntfs3-Switch-to-folio-to-release-resources.patch;
|
|
patch -p1 < ./0007-fs-ntfs3-Accumulated-refactoring-changes.patch;
|
|
patch -p1 < ./0008-workqueue-Reduce-expensive-locks-for-unbound-workque.patch;
|
|
patch -p1 < ./0009-Reapply-x86-tlb-put-cpumask_test_cpu-in-prev-next-un.patch;
|
|
patch -p1 < ./0011-kprobes-Reduce-preempt-disable-scope-in-check_kprobe.patch;
|
|
patch -p1 < ./0012-futex-improve-user-space-accesses.patch;
|
|
patch -p1 < ./0013-Input-xpad-add-support-for-ASUS-ROG-RAIKIRI-PRO.patch;
|
|
patch -p1 < ./0015-drm-amd-Invert-APU-check-for-amdgpu_device_evict_res.patch;
|
|
patch -p1 < ./0017-sched_ext-Include-remaining-task-time-slice-in-error.patch;
|
|
echo "*** Copying and applying clang patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/clang-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-clang-patches.patch;
|
|
echo "*** Copying and applying clearlinux patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/clearlinux-patches-sep/*.patch .;
|
|
patch -p1 < ./0002-pci-pme-wakeups.patch;
|
|
patch -p1 < ./0003-smpboot-reuse-timer-calibration.patch;
|
|
patch -p1 < ./0004-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch;
|
|
patch -p1 < ./0005-migrate-some-systemd-defaults-to-the-kernel-defaults.patch;
|
|
patch -p1 < ./0006-itmt_epb-use-epb-to-scale-itmt.patch;
|
|
patch -p1 < ./0007-itmt2-ADL-fixes.patch;
|
|
patch -p1 < ./0008-add-a-per-cpu-minimum-high-watermark-an-tune-batch-s.patch;
|
|
patch -p1 < ./0009-md-raid6-algorithms-scale-test-duration-for-speedier.patch;
|
|
patch -p1 < ./0010-clocksource-only-perform-extended-clocksource-checks.patch;
|
|
patch -p1 < ./0011-ACPI-align-slab-for-improved-memory-performance.patch;
|
|
patch -p1 < ./0012-net-sock-increase-default-number-of-_SK_MEM_PACKETS-.patch;
|
|
patch -p1 < ./0013-clear-sched-fair-Tweak-idle-balance-calculation.patch;
|
|
patch -p1 < ./0014-clear-fs-binfmt_elf-Properly-handle-memory-mapping-f.patch;
|
|
patch -p1 < ./0015-clear-net-sock-Introduce-64KB-reclaim-threshold.patch;
|
|
patch -p1 < ./0016-clear-init-init_task-Tweak-timer_slack-value.patch;
|
|
echo "*** Copying and applying cpuidle patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/cpuidle-patches/*.patch .;
|
|
patch -p1 < ./0001-cpuidle-patches.patch;
|
|
echo "*** Copying and applying cpu cachyos patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/cpu-cachyos-patches-v3/*.patch .;
|
|
patch -p1 < ./0001-cpu-cachyos-patches.patch;
|
|
echo "*** Copying and applying crypto patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/crypto-patches-v2-all/*.patch .;
|
|
patch -p1 < ./0001-crypto-patches.patch;
|
|
echo "*** Copying and applying futex patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/futex-patches/*.patch .;
|
|
patch -p1 < ./0001-futex-6.12-Add-entry-point-for-FUTEX_WAIT_MULTIPLE-o.patch;
|
|
echo "*** Copying and applying O3 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/kbuild-cachyos-patches/*.patch .;
|
|
patch -p1 < ./0001-Cachy-Allow-O3.patch;
|
|
echo "*** Copying and applying lrng patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/lrng-patches-all/*.patch .;
|
|
patch -p1 < ./0001-lrng-patches.patch;
|
|
echo "*** Copying and applying ntsync patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/ntsync-patches-v3-all/*.patch .;
|
|
patch -p1 < ./0001-ntsync-patches.patch;
|
|
echo "*** Copying and applying apple t2 patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/t2-patches/*.patch .;
|
|
patch -p1 < ./0001-t2-patches.patch;
|
|
echo "*** Copying and applying v4l2loopback patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/v4l2loopback-patches/*.patch .;
|
|
patch -p1 < ./0001-media-v4l2-core-add-v4l2loopback-driver.patch;
|
|
echo "*** Copying and applying zstd cachyos patches.. ✓";
|
|
cp -v ${LUCJAN_PATCH_PATH}/${KERNEL_BASE_VER}/zstd-cachyos-patches/*.patch .;
|
|
patch -p1 < ./0001-zstd-cachyos-patches.patch;
|
|
echo "*** Copying and applying xanmod patches.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/linux-6.12.y-xanmod/xanmod/*.patch .;
|
|
patch -p1 < ./0001-XANMOD-x86-build-Add-more-CFLAGS-optimizations.patch;
|
|
patch -p1 < ./0002-XANMOD-kbuild-Add-GCC-SMS-based-modulo-scheduling-fl.patch;
|
|
patch -p1 < ./0003-kbuild-Remove-GCC-minimal-function-alignment.patch;
|
|
patch -p1 < ./0004-XANMOD-fair-Set-scheduler-tunable-latencies-to-unsca.patch;
|
|
patch -p1 < ./0006-XANMOD-block-mq-deadline-Increase-write-priority-to-.patch;
|
|
patch -p1 < ./0007-XANMOD-block-mq-deadline-Disable-front_merges-by-def.patch;
|
|
patch -p1 < ./0008-XANMOD-block-Set-rq_affinity-to-force-complete-I-O-r.patch;
|
|
patch -p1 < ./0009-XANMOD-blk-wbt-Set-wbt_default_latency_nsec-to-2msec.patch;
|
|
patch -p1 < ./0010-XANMOD-kconfig-add-500Hz-timer-interrupt-kernel-conf.patch;
|
|
patch -p1 < ./0011-XANMOD-dcache-cache_pressure-50-decreases-the-rate-a.patch;
|
|
patch -p1 < ./0012-XANMOD-mm-Raise-max_map_count-default-value.patch;
|
|
patch -p1 < ./0013-XANMOD-mm-vmscan-Set-minimum-amount-of-swapping.patch;
|
|
patch -p1 < ./0014-XANMOD-sched-autogroup-Add-kernel-parameter-and-conf.patch;
|
|
patch -p1 < ./0015-XANMOD-cpufreq-tunes-ondemand-and-conservative-gover.patch;
|
|
patch -p1 < ./0016-XANMOD-lib-kconfig.debug-disable-default-SYMBOLIC_ER.patch;
|
|
patch -p1 < ./0017-XANMOD-scripts-setlocalversion-remove-tag-for-git-re.patch;
|
|
patch -p1 < ./0018-XANMOD-scripts-setlocalversion-Move-localversion-fil.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "6.6" ]; then # LTS kernel, supported until 2029
|
|
echo "*** Copying and applying graysky cpu patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/graysky/graysky-gcc-6.1.79-6.8-rc3.patch .;
|
|
patch -p1 < ./graysky-gcc-6.1.79-6.8-rc3.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "6.1" ]; then # LTS kernel, supported until 2028
|
|
echo "*** Copying and applying graysky cpu patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/graysky/graysky-gcc-6.1.79-6.8-rc3.patch .;
|
|
patch -p1 < ./graysky-gcc-6.1.79-6.8-rc3.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "5.15" ]; then # LTS kernel, supported until 2027
|
|
echo "*** Copying and applying amd64 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/amd64-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-amd64-patches.patch;
|
|
echo "*** Copying and applying arch patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/arch-patches-v11-sep/*.patch .;
|
|
patch -p1 < ./0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch;
|
|
patch -p1 < ./0003-iommu-intel-do-deep-dma-unmapping-to-avoid-kernel-fl.patch;
|
|
patch -p1 < ./0005-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch;
|
|
patch -p1 < ./0006-lg-laptop-Recognize-more-models.patch;
|
|
echo "*** Copying and applying block patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/block-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-block-patches.patch;
|
|
echo "*** Copying and applying clearlinux patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/clearlinux-patches-v2-sep/*.patch .;
|
|
patch -p1 < ./0001-i8042-decrease-debug-message-level-to-info.patch;
|
|
patch -p1 < ./0002-increase-the-ext4-default-commit-age.patch;
|
|
patch -p1 < ./0003-silence-rapl.patch;
|
|
patch -p1 < ./0004-pci-pme-wakeups.patch;
|
|
patch -p1 < ./0005-ksm-wakeups.patch;
|
|
patch -p1 < ./0006-intel_idle-tweak-cpuidle-cstates.patch;
|
|
patch -p1 < ./0007-port-print-fsync-count-for-bootchart.patch;
|
|
patch -p1 < ./0008-bootstats-add-printk-s-to-measure-boot-time-in-more-.patch;
|
|
patch -p1 < ./0009-smpboot-reuse-timer-calibration.patch;
|
|
patch -p1 < ./0010-port-initialize-ata-before-graphics.patch;
|
|
patch -p1 < ./0012-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch;
|
|
patch -p1 < ./0013-init-wait-for-partition-and-retry-scan.patch;
|
|
patch -p1 < ./0014-add-boot-option-to-allow-unsigned-modules.patch;
|
|
patch -p1 < ./0015-enable-stateless-firmware-loading.patch;
|
|
patch -p1 < ./0016-migrate-some-systemd-defaults-to-the-kernel-defaults.patch;
|
|
patch -p1 < ./0017-xattr-allow-setting-user.-attributes-on-symlinks-by-.patch;
|
|
patch -p1 < ./0018-use-lfence-instead-of-rep-and-nop.patch;
|
|
patch -p1 < ./0019-do-accept-in-LIFO-order-for-cache-efficiency.patch;
|
|
patch -p1 < ./0020-locking-rwsem-spin-faster.patch;
|
|
patch -p1 < ./0021-ata-libahci-ignore-staggered-spin-up.patch;
|
|
patch -p1 < ./0022-print-CPU-that-faults.patch;
|
|
patch -p1 < ./0024-nvme-workaround.patch;
|
|
patch -p1 < ./0025-don-t-report-an-error-if-PowerClamp-run-on-other-CPU.patch;
|
|
patch -p1 < ./0026-Port-microcode-patches.patch;
|
|
patch -p1 < ./0027-clearlinux-5.15-backport-patches-from-clearlinux-rep.patch;
|
|
echo "*** Copying an applying graysky patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/cpu-patches-v2-sep/*.patch .;
|
|
patch -p1 < ./0002-init-Kconfig-enable-O3-for-all-arches.patch;
|
|
patch -p1 < ./0003-init-Kconfig-add-O1-flag.patch;
|
|
patch -p1 < ./0004-Makefile-Turn-off-loop-vectorization-for-GCC-O3-opti.patch;
|
|
echo "*** Copying and applying fixes misc patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/fixes-miscellaneous-v9-sep/*.patch .;
|
|
patch -p1 < ./0001-net-sched-allow-configuring-cake-qdisc-as-default.patch;
|
|
patch -p1 < ./0002-infiniband-Fix-__read_overflow2-error-with-O3-inlini.patch;
|
|
patch -p1 < ./0004-scsi-sd-Optimal-I-O-size-should-be-a-multiple-of-rep.patch;
|
|
patch -p1 < ./0005-iomap-avoid-deadlock-if-memory-reclaim-is-triggered-.patch;
|
|
patch -p1 < ./0007-i2c-busses-Add-SMBus-capability-to-work-with-OpenRGB.patch;
|
|
patch -p1 < ./0008-nvme-don-t-memset-the-normal-read-write-command.patch;
|
|
patch -p1 < ./0009-mm-Stop-kswapd-early-when-nothing-s-waiting-for-it-t.patch;
|
|
patch -p1 < ./0010-mm-Fully-disable-watermark-boosting-when-it-isn-t-us.patch;
|
|
patch -p1 < ./0011-mm-Don-t-stop-kswapd-on-a-per-node-basis-when-there-.patch;
|
|
patch -p1 < ./0012-mm-Disable-watermark-boosting-by-default.patch;
|
|
patch -p1 < ./0013-Disable-stack-conservation-for-GCC.patch;
|
|
patch -p1 < ./0015-x86-csum-rewrite-csum_partial.patch;
|
|
patch -p1 < ./0016-x86-csum-Fix-compilation-error-for-UM.patch;
|
|
patch -p1 < ./0017-x86-csum-Fix-initial-seed-for-odd-buffers.patch;
|
|
echo "*** Copying and applying hwmon patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/hwmon-patches-v9/*.patch .;
|
|
patch -p1 < ./0001-hwmon-patches.patch;
|
|
echo "*** Copying and applying intel patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/intel-patches-sep/*.patch .;
|
|
patch -p1 < ./0001-x86-sched-Decrease-further-the-priorities-of-SMT-sib.patch;
|
|
patch -p1 < ./0002-sched-topology-Introduce-sched_group-flags.patch;
|
|
patch -p1 < ./0003-sched-fair-Optimize-checking-for-group_asym_packing.patch;
|
|
patch -p1 < ./0004-sched-fair-Provide-update_sg_lb_stats-with-sched-dom.patch;
|
|
patch -p1 < ./0005-sched-fair-Carve-out-logic-to-mark-a-group-for-asymm.patch;
|
|
patch -p1 < ./0006-sched-fair-Consider-SMT-in-ASYM_PACKING-load-balance.patch;
|
|
echo "*** Copying and applying lqx patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/lqx-patches-v5-sep/*.patch .;
|
|
patch -p1 < ./0001-zen-Allow-MSR-writes-by-default.patch;
|
|
patch -p1 < ./0002-PCI-Add-Intel-remapped-NVMe-device-support.patch;
|
|
patch -p1 < ./0003-Input-evdev-use-call_rcu-when-detaching-client.patch;
|
|
echo "*** Copying and applying sbitmap patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/sbitmap-patches-v3/*.patch .;
|
|
patch -p1 < ./0001-sbitmap-patches.patch;
|
|
echo "*** Copying and applying v4l2loopback patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/v4l2loopback-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-v4l2loopback-patches.patch;
|
|
echo "*** Copying and applying lucjan's xanmod patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/xanmod-patches-v5-sep/*.patch .;
|
|
patch -p1 < ./0002-netfilter-Add-full-cone-NAT-support.patch;
|
|
patch -p1 < ./0003-drm-i915-Add-workaround-numbers-to-GEN7_COMMON_SLICE.patch;
|
|
patch -p1 < ./0004-Revert-netfilter-Add-full-cone-NAT-support.patch;
|
|
patch -p1 < ./0005-Revert-drm-i915-Add-workaround-numbers-to-GEN7_COMMO.patch;
|
|
patch -p1 < ./0006-netfilter-Add-full-cone-NAT-support.patch;
|
|
patch -p1 < ./0007-wait-Add-EXPORT_SYMBOL-for-__wake_up_pollfree.patch;
|
|
echo "*** Copying and applying lucjan's zen patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/zen-patches-sep/*.patch .;
|
|
patch -p1 < ./0001-ZEN-Add-VHBA-driver.patch;
|
|
patch -p1 < ./0002-ZEN-intel-pstate-Implement-enable-parameter.patch;
|
|
patch -p1 < ./0003-ZEN-Update-VHBA-driver.patch;
|
|
echo "*** Copying and applying zstd patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/zstd-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-zstd-patches.patch;
|
|
echo "*** Copying and applying zstd upstream patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/zstd-upstream-patches-v4/*.patch .;
|
|
patch -p1 < ./0001-zstd-upstream-patches.patch;
|
|
echo "*** Copying and applying misc xanmod tweaks.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/eol/linux-${KERNEL_BASE_VER}.y-xanmod/xanmod/*.patch .;
|
|
patch -p1 < ./0004-XANMOD-dcache-cache_pressure-50-decreases-the-rate-a.patch;
|
|
patch -p1 < ./0006-XANMOD-mm-vmscan-vm_swappiness-30-decreases-the-amou.patch;
|
|
patch -p1 < ./0007-XANMOD-cpufreq-tunes-ondemand-and-conservative-gover.patch;
|
|
patch -p1 < ./0008-XANMOD-scripts-disable-the-localversion-tag-of-a-git.patch;
|
|
patch -p1 < ./0009-XANMOD-lib-kconfig.debug-disable-default-CONFIG_SYMB.patch;
|
|
echo "*** Copying and applying cfs zen tweaks patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/cfs-zen-tweaks.patch .;
|
|
patch -p1 < ./cfs-zen-tweaks.patch;
|
|
echo "*** Copying and applying disable memory compaction patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/5.13-disable-compaction-on-unevictable-pages.patch .;
|
|
patch -p1 < ./5.13-disable-compaction-on-unevictable-pages.patch;
|
|
echo "*** Copying and applying increase writeback threshold patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/increase-default-writeback-thresholds.patch .;
|
|
patch -p1 < ./increase-default-writeback-thresholds.patch;
|
|
echo "*** Copying and applying enable background reclaim hugepages patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/enable-background-reclaim-hugepages.patch .;
|
|
patch -p1 < ./enable-background-reclaim-hugepages.patch;
|
|
echo "*** Copying and applying pkill on warn.. (requires pkill_on_warn=1) ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/pkill-on-warn.patch .;
|
|
patch -p1 < ./pkill-on-warn.patch;
|
|
echo "*** Copying and applying lucjan custom patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/ll-patches/*.patch .;
|
|
patch -p1 < ./0001-LL-kconfig-add-500Hz-timer-interrupt-kernel-config-o.patch;
|
|
sed -i 's/sched_nr_migrate = 32/sched_nr_migrate = 256/g' ./kernel/sched/core.c;
|
|
patch -p1 < ./0004-mm-set-8-megabytes-for-address_space-level-file-read.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "5.10" ]; then # LTS kernel, supported until 2026
|
|
echo "*** Copying and applying pkill on warn.. (requires pkill_on_warn=1) ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/pkill-on-warn.patch .;
|
|
patch -p1 < ./pkill-on-warn.patch;
|
|
echo "*** Copying and applying arch patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/arch-patches-v14/*.patch .;
|
|
patch -p1 < ./0001-arch-patches.patch;
|
|
echo "*** Copying and applying block patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/block-patches-v3/*.patch .;
|
|
patch -p1 < ./0001-block-patches.patch;
|
|
echo "*** Copying and applying clearlinux patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/clearlinux-patches-sep/*.patch .;
|
|
patch -p1 < ./0001-i8042-decrease-debug-message-level-to-info.patch;
|
|
patch -p1 < ./0002-Increase-the-ext4-default-commit-age.patch;
|
|
patch -p1 < ./0003-silence-rapl.patch;
|
|
patch -p1 < ./0004-pci-pme-wakeups.patch;
|
|
patch -p1 < ./0005-ksm-wakeups.patch;
|
|
patch -p1 < ./0006-intel_idle-tweak-cpuidle-cstates.patch;
|
|
patch -p1 < ./0007-bootstats-add-printk-s-to-measure-boot-time-in-more-.patch;
|
|
patch -p1 < ./0008-smpboot-reuse-timer-calibration.patch;
|
|
patch -p1 < ./0009-Initialize-ata-before-graphics.patch;
|
|
patch -p1 < ./0011-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch;
|
|
patch -p1 < ./0012-kernel-time-reduce-ntp-wakeups.patch;
|
|
patch -p1 < ./0013-init-wait-for-partition-and-retry-scan.patch;
|
|
patch -p1 < ./0014-print-fsync-count-for-bootchart.patch;
|
|
patch -p1 < ./0015-Add-boot-option-to-allow-unsigned-modules.patch;
|
|
patch -p1 < ./0016-Enable-stateless-firmware-loading.patch;
|
|
patch -p1 < ./0017-Migrate-some-systemd-defaults-to-the-kernel-defaults.patch;
|
|
patch -p1 < ./0018-xattr-allow-setting-user.-attributes-on-symlinks-by-.patch;
|
|
patch -p1 < ./0019-use-lfence-instead-of-rep-and-nop.patch;
|
|
patch -p1 < ./0021-locking-rwsem-spin-faster.patch;
|
|
patch -p1 < ./0022-ata-libahci-ignore-staggered-spin-up.patch;
|
|
patch -p1 < ./0023-print-CPU-that-faults.patch;
|
|
patch -p1 < ./0025-nvme-workaround.patch;
|
|
patch -p1 < ./0026-Don-t-report-an-error-if-PowerClamp-run-on-other-CPU.patch;
|
|
patch -p1 < ./0028-clearlinux-Add-pageflip-patches.patch;
|
|
echo "*** Copying and applying fixes misc patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/fixes-miscellaneous-v11-sep/*.patch .;
|
|
patch -p1 < ./0001-net-sched-allow-configuring-cake-qdisc-as-default.patch;
|
|
patch -p1 < ./0002-infiniband-Fix-__read_overflow2-error-with-O3-inlini.patch;
|
|
patch -p1 < ./0004-mm-Disable-watermark-boosting-by-default.patch;
|
|
patch -p1 < ./0005-mm-Stop-kswapd-early-when-nothing-s-waiting-for-it-t.patch;
|
|
patch -p1 < ./0006-mm-Fully-disable-watermark-boosting-when-it-isn-t-us.patch;
|
|
patch -p1 < ./0007-mm-Don-t-stop-kswapd-on-a-per-node-basis-when-there-.patch;
|
|
patch -p1 < ./0008-kbuild-Disable-stack-conservation-for-GCC.patch;
|
|
patch -p1 < ./0010-ZEN-Add-OpenRGB-patches.patch;
|
|
patch -p1 < ./0012-scsi-sd-Optimal-I-O-size-should-be-a-multiple-of-rep.patch;
|
|
patch -p1 < ./0016-iomap-avoid-deadlock-if-memory-reclaim-is-triggered-.patch;
|
|
echo "*** Copying and applying hwmon patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.14/hwmon-patches/*.patch .;
|
|
patch -p1 < ./0001-hwmon-patches.patch;
|
|
echo "*** Copying and applying lqx patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/lqx-patches-v4/*.patch .;
|
|
patch -p1 < ./0001-lqx-patches.patch;
|
|
echo "*** Copying and applying ntfs3 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/ntfs3-patches-v7/*.patch .;
|
|
patch -p1 < ./0001-ntfs3-patches.patch;
|
|
echo "*** Copying and applying pf patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/pf-patches-v9-sep/*.patch .;
|
|
patch -p1 < ./0001-genirq-i2c-Provide-and-use-generic_dispatch_irq.patch;
|
|
patch -p1 < ./0002-genirq-i2c-export-generic_dispatch_irq.patch;
|
|
echo "*** Copying and applying rapl patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/rapl-patches/*.patch .;
|
|
patch -p1 < ./0001-rapl-patches.patch;
|
|
echo "*** Copying and applying v4l2loopback patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/v4l2loopback-patches-v2/*.patch .;
|
|
patch -p1 < ./0001-v4l2loopback-patches.patch;
|
|
echo "*** Copying and applying xanmod patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/xanmod-patches/*.patch .;
|
|
patch -p1 < ./0001-sched-autogroup-Add-kernel-parameter-and-config-opti.patch;
|
|
echo "*** Copying and applying zstd patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/zstd-patches-v3/*.patch .;
|
|
patch -p1 < ./0001-init-add-support-for-zstd-compressed-modules.patch;
|
|
echo "*** Copying and applying zstd upstream patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/zstd-upstream-patches/*.patch .;
|
|
patch -p1 < ./0001-zstd-upstream-patches.patch;
|
|
echo "*** Copying and applying ll patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/ll-patches/*.patch .;
|
|
patch -p1 < ./0001-LL-kconfig-add-500Hz-timer-interrupt-kernel-config-o.patch;
|
|
patch -p1 < ./0004-mm-set-8-megabytes-for-address_space-level-file-read.patch;
|
|
echo "*** Copying and applying misc xanmod tweaks patch.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/eol/linux-5.10.y-xanmod/xanmod/*.patch .;
|
|
if [ ${KERNEL_TYPE} != "rt" ]; then
|
|
patch -p1 < ./0005-kconfig-set-PREEMPT-and-RCU_BOOST-without-delay-by-d.patch;
|
|
fi
|
|
patch -p1 < ./0006-dcache-cache_pressure-50-decreases-the-rate-at-which.patch;
|
|
patch -p1 < ./0008-mm-vmscan-vm_swappiness-30-decreases-the-amount-of-s.patch;
|
|
patch -p1 < ./0009-cpufreq-tunes-ondemand-and-conservative-governor-for.patch;
|
|
patch -p1 < ./0011-lib-kconfig.debug-disable-default-CONFIG_SYMBOLIC_ER.patch;
|
|
patch -p1 < ./0014-XANMOD-Makefile-Turn-off-loop-vectorization-for-GCC-.patch;
|
|
echo "*** Copying and applying disable memory compaction patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/5.13-disable-compaction-on-unevictable-pages.patch .;
|
|
patch -p1 < ./5.13-disable-compaction-on-unevictable-pages.patch;
|
|
echo "*** Copying and applying force irq threads patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/force-irq-threads.patch .;
|
|
patch -p1 < ./force-irq-threads.patch;
|
|
echo "*** Copying and applying increase writeback threshold patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/increase-default-writeback-thresholds.patch .;
|
|
patch -p1 < ./increase-default-writeback-thresholds.patch;
|
|
echo "*** Copying and applying enable background reclaim hugepages patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/enable-background-reclaim-hugepages.patch .;
|
|
patch -p1 < ./enable-background-reclaim-hugepages.patch;
|
|
if [ ${KERNEL_TYPE} == "rt" ]; then
|
|
sed -i 's/sched_nr_migrate = 32/sched_nr_migrate = 256/g' ./kernel/sched/core.c;
|
|
else
|
|
patch -p1 < ./0003-sched-core-nr_migrate-256-increases-number-of-tasks-.patch;
|
|
fi
|
|
echo "*** Copying and applying cfs zen tweaks patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/cfs-zen-tweaks.patch .;
|
|
patch -p1 < ./cfs-zen-tweaks.patch;
|
|
elif [ ${KERNEL_BASE_VER} == "5.4" ]; then # LTS kernel, supported until 2025
|
|
echo "*** Copying and applying block 5.4 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/block-patches-v2-sep/*.patch .;
|
|
patch -p1 < ./0001-block-Kconfig.iosched-set-default-value-of-IOSCHED_B.patch;
|
|
patch -p1 < ./0002-block-Fix-depends-for-BLK_DEV_ZONED.patch;
|
|
patch -p1 < ./0003-block-set-rq_affinity-2-for-full-multithreading-I-O-.patch;
|
|
echo "*** Copying and applying block 5.6 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.6/block-patches-v3-sep/*.patch .;
|
|
patch -p1 < ./0004-blk-mq-remove-the-bio-argument-to-prepare_request.patch;
|
|
patch -p1 < ./0005-block-Flag-elevators-suitable-for-single-queue.patch;
|
|
echo "*** Copying and applying block 5.7 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.7/block-patches-v5-sep/*.patch .;
|
|
patch -p1 < ./0006-block-bfq-iosched-fix-duplicated-word.patch;
|
|
patch -p1 < ./0007-block-bio-delete-duplicated-words.patch;
|
|
patch -p1 < ./0008-block-elevator-delete-duplicated-word-and-fix-typos.patch;
|
|
patch -p1 < ./0009-block-blk-timeout-delete-duplicated-word.patch;
|
|
echo "*** Copying and applying block 5.8 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.8/block-patches-v6-sep/*.patch .;
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-block-5.8-0011-block-Convert-to-use-the-preferred-fallthrough-macro*.patch .;
|
|
patch -p1 < ./5.4-block-5.8-0011-block-Convert-to-use-the-preferred-fallthrough-macro-part1.patch;
|
|
patch -p1 < ./5.4-block-5.8-0011-block-Convert-to-use-the-preferred-fallthrough-macro-part2.patch;
|
|
patch -p1 < ./0012-block-bfq-Disable-low_latency-when-blk_iolatency-is-.patch;
|
|
echo "*** Copying and applying block 5.10 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-block-5.10-elevator-mq-aware.patch .;
|
|
patch -p1 <./5.4-block-5.10-elevator-mq-aware.patch;
|
|
echo "*** Copying and applying BFQ 5.4 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/bfq-patches-sep/*.patch .;
|
|
patch -p1 < ./0001-blkcg-Make-bfq-disable-iocost-when-enabled.patch;
|
|
patch -p1 < ./0002-block-bfq-present-a-double-cgroups-interface.patch;
|
|
patch -p1 < ./0003-block-bfq-Skip-tracing-hooks-if-possible.patch;
|
|
echo "*** Copying and applying BFQ 5.7 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.7/bfq-patches-v5-sep/*.patch .;
|
|
patch -p1 < ./0001-bfq-Fix-check-detecting-whether-waker-queue-should-b.patch;
|
|
patch -p1 < ./0002-bfq-Allow-short_ttime-queues-to-have-waker.patch;
|
|
echo "*** Copying and applying Valve fsync/futex patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.10/futex-patches/0001-futex-patches.patch .;
|
|
patch -p1 < ./0001-futex-patches.patch;
|
|
echo "*** Copying and applying misc fixes patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/fixes-miscellaneous-v5/*.patch .;
|
|
patch -p1 < ./0001-fixes-miscellaneous.patch;
|
|
echo "*** Copying and applying misc fixes 5.14 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/0004-mm-Stop-kswapd-early-when-nothing-s-waiting-for-it-t.patch .;
|
|
patch -p1 < ./0004-mm-Stop-kswapd-early-when-nothing-s-waiting-for-it-t.patch;
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.14/fixes-miscellaneous-sep/*.patch .;
|
|
patch -p1 < ./0005-mm-Fully-disable-watermark-boosting-when-it-isn-t-us.patch;
|
|
patch -p1 < ./0007-kbuild-Disable-stack-conservation-for-GCC.patch;
|
|
patch -p1 < ./0009-ZEN-Add-OpenRGB-patches.patch;
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/0010-scsi-sd-Optimal-I-O-size-should-be-a-multiple-of-rep.patch .;
|
|
patch -p1 < ./0010-scsi-sd-Optimal-I-O-size-should-be-a-multiple-of-rep.patch;
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-from-5.14-0010-scsi-sd-Optimal-I-O-size-merge-fix.patch .;
|
|
patch -p1 < ./5.4-from-5.14-0010-scsi-sd-Optimal-I-O-size-merge-fix.patch;
|
|
echo "*** Copying and applying cve patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/cve-patches-v8-sep/*.patch .;
|
|
patch -p1 < ./0001-consolemap-Fix-a-memory-leaking-bug-in-drivers-tty-v.patch;
|
|
echo "*** Copying and applying exfat patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/exfat-patches/*.patch .;
|
|
patch -p1 < ./0001-exfat-patches.patch;
|
|
echo "*** Copying and applying SCSI patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/scsi-patches/*.patch .;
|
|
patch -p1 < ./0001-scsi-patches.patch;
|
|
echo "*** Copying and applying ll patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/ll-patches/*.patch .;
|
|
patch -p1 < ./0001-LL-kconfig-add-500Hz-timer-interrupt-kernel-config-o.patch;
|
|
patch -p1 < ./0002-LL-elevator-set-default-scheduler-to-bfq-for-blk-mq.patch;
|
|
patch -p1 < ./mm-set-8MB.patch;
|
|
echo "*** Copying and applying xanmod patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/0001-sched-autogroup-Add-kernel-parameter-and-config-opti.patch .;
|
|
patch -p1 < ./0001-sched-autogroup-Add-kernel-parameter-and-config-opti.patch;
|
|
echo "*** Copying and applying cfs xanmod energy tweaks patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/5.4-cfs-xanmod-tweaks.patch .;
|
|
patch -p1 < ./5.4-cfs-xanmod-tweaks.patch;
|
|
echo "*** Copying and applying intel_cpufreq patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.6/0001-cpufreq*.patch .;
|
|
patch -p1 < ./0001-cpufreq-intel_pstate-Set-default-cpufreq_driver-to-i.patch;
|
|
# https://github.com/zen-kernel/zen-kernel/commit/7de2596b35ac1dbf55fb384f3d668a7315635c0b
|
|
echo "*** Copying and applying cfs zen tweaks patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/cfs-zen-tweaks.patch .;
|
|
patch -p1 < ./cfs-zen-tweaks.patch;
|
|
echo "*** Copying and applying force irq threads patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/force-irq-threads.patch .;
|
|
patch -p1 < ./force-irq-threads.patch;
|
|
echo "*** Copying and applying increase writeback threshold patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/increase-default-writeback-thresholds.patch .;
|
|
patch -p1 < ./increase-default-writeback-thresholds.patch;
|
|
echo "*** Copying and applying enable background reclaim hugepages patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/tweaks/enable-background-reclaim-hugepages.patch .;
|
|
patch -p1 < ./enable-background-reclaim-hugepages.patch;
|
|
echo "*** Copying and applying graysky's GCC patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/graysky/graysky-gcc-4.19-through-5.4.patch .;
|
|
patch -p1 < ./graysky-gcc-4.19-through-5.4.patch;
|
|
echo "*** Copying and applying O3 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/O3-optimization/O3-v5.4+.patch .;
|
|
patch -p1 < ./O3-v5.4+.patch;
|
|
echo "*** Copying and applying O3 fix patch.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/O3-optimization/0004-Makefile-Turn-off-loop-vectorization-for-GCC-O3-opti.patch .;
|
|
patch -p1 < ./0004-Makefile-Turn-off-loop-vectorization-for-GCC-O3-opti.patch;
|
|
echo "*** Copying and applying arch 5.7 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.7/arch-patches-v9-sep/*.patch .;
|
|
patch -p1 < ./0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch;
|
|
echo "*** Copying and applying arch 5.9 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.9/arch-patches-v9-sep/*.patch .;
|
|
patch -p1 < ./0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch;
|
|
echo "*** Copying and applying arch 5.12 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/5.12/arch-patches-v7-sep/*.patch .;
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-from-5.12-arch-0002-x86-setup-Consolidate-early-memory-reservations.patch .;
|
|
patch -p1 < ./5.4-from-5.12-arch-0002-x86-setup-Consolidate-early-memory-reservations.patch;
|
|
patch -p1 < ./0003-x86-setup-Merge-several-reservations-of-start-of-mem.patch;
|
|
patch -p1 < ./0004-x86-setup-Move-trim_snb_memory-later-in-setup_arch-t.patch;
|
|
patch -p1 < ./0005-x86-setup-always-reserve-the-first-1M-of-RAM.patch;
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-from-5.12-arch-reserve_bios_regions.patch .;
|
|
patch -p1 < ./5.4-from-5.12-arch-reserve_bios_regions.patch;
|
|
patch -p1 < ./0007-x86-crash-remove-crash_reserve_low_1M.patch;
|
|
echo "*** Copying and applying Clear Linux patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/clearlinux-patches-v6-sep/*.patch .;
|
|
patch -p1 < ./0006-intel_idle-tweak-cpuidle-cstates.patch;
|
|
patch -p1 < ./0009-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch;
|
|
patch -p1 < ./0016-Add-boot-option-to-allow-unsigned-modules.patch;
|
|
patch -p1 < ./0020-use-lfence-instead-of-rep-and-nop.patch;
|
|
echo "*** Copying and applying Clear Linux patches from 5.10.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/clearlinux/*.patch .;
|
|
patch -p1 < ./0001-i8042-decrease-debug-message-level-to-info.patch;
|
|
patch -p1 < ./0002-Increase-the-ext4-default-commit-age.patch;
|
|
patch -p1 < ./0003-silence-rapl.patch;
|
|
patch -p1 < ./0004-pci-pme-wakeups.patch;
|
|
patch -p1 < ./0005-ksm-wakeups.patch;
|
|
patch -p1 < ./0007-bootstats-add-printk-s-to-measure-boot-time-in-more-.patch;
|
|
patch -p1 < ./0008-smpboot-reuse-timer-calibration.patch;
|
|
patch -p1 < ./0009-Initialize-ata-before-graphics.patch;
|
|
patch -p1 < ./0011-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch;
|
|
patch -p1 < ./0012-kernel-time-reduce-ntp-wakeups.patch;
|
|
patch -p1 < ./0013-init-wait-for-partition-and-retry-scan.patch;
|
|
patch -p1 < ./0014-print-fsync-count-for-bootchart.patch;
|
|
patch -p1 < ./0016-Enable-stateless-firmware-loading.patch;
|
|
patch -p1 < ./0017-Migrate-some-systemd-defaults-to-the-kernel-defaults.patch;
|
|
patch -p1 < ./0018-xattr-allow-setting-user.-attributes-on-symlinks-by-.patch;
|
|
patch -p1 < ./0020-do-accept-in-LIFO-order-for-cache-efficiency.patch;
|
|
patch -p1 < ./include-linux-wait-h-merge-fix.patch;
|
|
patch -p1 < ./0021-locking-rwsem-spin-faster.patch;
|
|
patch -p1 < ./0022-ata-libahci-ignore-staggered-spin-up.patch;
|
|
patch -p1 < ./0023-print-CPU-that-faults.patch;
|
|
patch -p1 < ./0025-nvme-workaround.patch;
|
|
patch -p1 < ./0026-Don-t-report-an-error-if-PowerClamp-run-on-other-CPU.patch;
|
|
if [ ${KERNEL_TYPE} == "rt" ]; then
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/arch-patches-rt-v3-sep/*.patch .;
|
|
patch -p1 < ./0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch;
|
|
patch -p1 < ./0007-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch;
|
|
patch -p1 < ./0008-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch;
|
|
patch -p1 < ./0010-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch;
|
|
patch -p1 < ./0011-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch;
|
|
patch -p1 < ./0012-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch;
|
|
patch -p1 < ./0016-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch;
|
|
sed -i 's/sched_nr_migrate = 32/sched_nr_migrate = 256/g' ./kernel/sched/core.c;
|
|
echo "*** Copying and applying arch-rt 5.4 patches.. ✓";
|
|
else
|
|
patch -p1 < ./0003-sched-core-nr_migrate-256-increases-number-of-tasks-.patch;
|
|
echo "*** Copying and applying arch 5.4 patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/lucjan/${KERNEL_BASE_VER}/arch-patches-v25-sep/*.patch .;
|
|
patch -p1 < ./0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch;
|
|
patch -p1 < ./0005-iwlwifi-pcie-restore-support-for-Killer-Qu-C0-NICs.patch;
|
|
patch -p1 < ./0006-drm-i915-save-AUD_FREQ_CNTRL-state-at-audio-domain-s.patch;
|
|
patch -p1 < ./0007-drm-i915-Fix-audio-power-up-sequence-for-gen10-displ.patch;
|
|
patch -p1 < ./0008-drm-i915-extend-audio-CDCLK-2-BCLK-constraint-to-mor.patch;
|
|
patch -p1 < ./0009-drm-i915-Limit-audio-CDCLK-2-BCLK-constraint-back-to.patch;
|
|
patch -p1 < ./0010-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch;
|
|
fi
|
|
echo "*** Copying and applying swap patches.. ✓";
|
|
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-from-5.13-swap-*.patch .;
|
|
patch -p1 < ./5.4-from-5.13-swap-0001-swap-patches.patch;
|
|
patch -p1 < ./5.4-from-5.13-swap-merge-fix-new.patch;
|
|
echo "*** Copying and applying ck-hrtimer patches.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/eol/linux-5.10.y-xanmod/ck-hrtimer/*.patch .;
|
|
patch -p1 < ./0001-Create-highres-timeout-variants-of-schedule_timeout-.patch;
|
|
patch -p1 < ./0002-Special-case-calls-of-schedule_timeout-1-to-use-the-.patch;
|
|
patch -p1 < ./0003-Convert-msleep-to-use-hrtimers-when-active.patch;
|
|
patch -p1 < ./0005-Replace-all-calls-to-schedule_timeout_interruptible-.patch;
|
|
patch -p1 < ./0006-Replace-all-calls-to-schedule_timeout_uninterruptibl.patch;
|
|
patch -p1 < ./0007-Don-t-use-hrtimer-overlay-when-pm_freezing-since-som.patch;
|
|
patch -p1 < ./0008-clockevents-hrtimer-Make-hrtimer-granularity-and-min.patch;
|
|
echo "*** Copying and applying modules patches.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/eol/linux-5.10.y-xanmod/modules/*.patch .;
|
|
patch -p1 < ./0001-modules-disinherit-taint-proprietary-module.patch;
|
|
echo "*** Copying and applying misc xanmod tweaks.. ✓";
|
|
cp -v ${XANMOD_PATCH_PATH}/eol/linux-5.10.y-xanmod/xanmod/*.patch .;
|
|
if [ ${KERNEL_TYPE} != "rt" ]; then
|
|
patch -p1 < ./0005-kconfig-set-PREEMPT-and-RCU_BOOST-without-delay-by-d.patch;
|
|
fi
|
|
patch -p1 < ./0006-dcache-cache_pressure-50-decreases-the-rate-at-which.patch;
|
|
patch -p1 < ./0009-cpufreq-tunes-ondemand-and-conservative-governor-for.patch;
|
|
patch -p1 < ./0010-scripts-disable-the-localversion-tag-of-a-git-repo.patch;
|
|
fi
|
|
|
|
# Examples:
|
|
# 6.12.3-061203+customidle-generic
|
|
# 6.12.3-061203+customfull-generic
|
|
# 6.12.3-061203+customrt-generic
|
|
# Note: A hyphen between label and type (e.g. customidle -> custom-idle) causes problems with some parsers
|
|
# Because the final version name becomes: 6.12.3-061203+custom-idle-generic, so just keep it combined
|
|
echo "*** Updating version in changelog (necessary for Ubuntu)... ✓";
|
|
sed -i "s/${KERNEL_SUB_VER}/${KERNEL_SUB_VER}+${KERNEL_VERSION_LABEL}${KERNEL_TYPE}/g" ./debian.master/changelog;
|
|
|
|
USE_LLVM=${USE_LLVM:-"no"}
|
|
if [ ${USE_LLVM} == "yes" ]; then
|
|
echo "*** Disable KBUILD_CFLAGS for LLVM... ✓";
|
|
sed -i "s/KBUILD_CFLAGS += -fno-inline-functions-called-once/KBUILD_CFLAGS +=/g" ./Makefile;
|
|
fi
|
|
|
|
ZFS_SUPPORT=${ZFS_SUPPORT:-"no"}
|
|
if [ ${ZFS_SUPPORT} == "no" ]; then
|
|
echo "*** Disabling zfs by default (can cause issues during compilation)... ✓";
|
|
sed -i 's/do_zfs/#do_zfs/g' ./debian.master/rules.d/amd64.mk;
|
|
fi
|
|
|
|
DKMS_VBOX=${DKMS_VBOX:-"no"}
|
|
if [ ${DKMS_VBOX} == "no" ]; then
|
|
echo "*** Disabling dkms for vbox... ✓";
|
|
sed -i 's/do_dkms_vbox = true/do_dkms_vbox = false/g' ./debian.master/rules.d/amd64.mk;
|
|
fi
|
|
|
|
DKMS_NVIDIA=${DKMS_NVIDIA:-"no"}
|
|
if [ ${DKMS_NVIDIA} == "no" ]; then
|
|
echo "*** Disabling dkms for nvidia... ✓";
|
|
sed -i 's/do_dkms_nvidia = true/do_dkms_nvidia = false/g' ./debian.master/rules.d/amd64.mk;
|
|
fi
|
|
|
|
DKMS_WIREGUARD=${DKMS_WIREGUARD:-"no"}
|
|
if [ ${DKMS_WIREGUARD} == "no" ]; then
|
|
echo "*** Disabling dkms for wireguard... ✓";
|
|
sed -i 's/do_dkms_wireguard = true/do_dkms_wireguard = false/g' ./debian.master/rules.d/amd64.mk;
|
|
fi
|
|
|
|
BUILD_ARCHS=${BUILD_ARCHS:-"amd64"}
|
|
echo "*** Removing unnecessary arch's and building for ${BUILD_ARCHS}... ✓";
|
|
sed -i "s/archs=\"amd64 i386 armhf arm64 ppc64el s390x\"/archs=\"${BUILD_ARCHS}\"/g" ./debian.master/etc/kernelconfig;
|
|
|
|
echo "*** Making scripts executable... ✓";
|
|
chmod a+x debian/rules;
|
|
chmod a+x debian/scripts/*;
|
|
chmod a+x debian/scripts/misc/*;
|
|
|
|
echo "*** Create symlink for kernel ABI... ✓";
|
|
[ ${KERNEL_BASE_VER} == "5.4" ] && ABI_VERSION=5.4.0-25.29 || ABI_VERSION=5.7.0-5.6;
|
|
ln -rsv ./debian.master/abi/${ABI_VERSION} ./debian.master/abi/${KERNEL_PATCH_VER}-0.0;
|
|
|
|
echo "*** Running fakeroot debian/rules clean... ✓";
|
|
fakeroot debian/rules clean;
|
|
|
|
echo "*** Copying over our custom configs... ✓";
|
|
cp -fv ${CONFIG_PATH}/ubuntu-${KERNEL_BASE_VER}/ubuntu-${KERNEL_BASE_VER}-${KERNEL_TYPE}/config.common.amd64 ./debian.master/config/amd64;
|
|
cp -fv ${CONFIG_PATH}/ubuntu-${KERNEL_BASE_VER}/ubuntu-${KERNEL_BASE_VER}-${KERNEL_TYPE}/config.flavour.generic ./debian.master/config/amd64;
|
|
cp -fv ${CONFIG_PATH}/ubuntu-${KERNEL_BASE_VER}/ubuntu-${KERNEL_BASE_VER}-${KERNEL_TYPE}/config.flavour.lowlatency ./debian.master/config/amd64;
|
|
cp -fv ${CONFIG_PATH}/ubuntu-${KERNEL_BASE_VER}/ubuntu-${KERNEL_BASE_VER}-${KERNEL_TYPE}/config.common.ubuntu ./debian.master/config;
|
|
|
|
echo -n "[${KERNEL_PATCH_VER} ${KERNEL_TYPE}] Do you need to run editconfigs? [Y/n]: ";
|
|
read yno;
|
|
case $yno in
|
|
[nN] | [n|N][O|o] )
|
|
echo "*** Okay, moving on.";
|
|
;;
|
|
[yY] | [yY][Ee][Ss] )
|
|
;&
|
|
*)
|
|
if [ ${USE_LLVM} == "yes" ]; then
|
|
LLVM=1 fakeroot debian/rules editconfigs;
|
|
else
|
|
fakeroot debian/rules editconfigs;
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
echo -n "[${KERNEL_PATCH_VER} ${KERNEL_TYPE}] Copy over the new config changes? [y/N]: ";
|
|
read yno;
|
|
case $yno in
|
|
[yY] | [yY][Ee][Ss] )
|
|
echo "*** Copying configs... ✓";
|
|
cp -fv ./debian.master/config/amd64/config.* ${CONFIG_PATH}/ubuntu-${KERNEL_BASE_VER}/ubuntu-${KERNEL_BASE_VER}-${KERNEL_TYPE};
|
|
cp -fv ./debian.master/config/config.common.ubuntu ${CONFIG_PATH}/ubuntu-${KERNEL_BASE_VER}/ubuntu-${KERNEL_BASE_VER}-${KERNEL_TYPE};
|
|
;;
|
|
[nN] | [n|N][O|o] )
|
|
;&
|
|
*)
|
|
echo "*** Okay, moving on.";
|
|
;;
|
|
esac
|
|
|
|
echo -n "[${KERNEL_PATCH_VER} ${KERNEL_TYPE}] Do you want to start building? [Y/n]: ";
|
|
read yno;
|
|
case $yno in
|
|
[nN] | [n|N][O|o] )
|
|
echo "*** All good. Exiting.";
|
|
exit 0;
|
|
;;
|
|
[yY] | [yY][Ee][Ss] )
|
|
;&
|
|
*)
|
|
echo "*** Starting build... ✓";
|
|
if [ ${USE_LLVM} == "yes" ]; then
|
|
LLVM=1 CONCURRENCY_LEVEL=$(nproc) NO_JEVENTS=1 NO_LIBTRACEEVENT=1 fakeroot debian/rules binary-headers binary-generic binary-perarch;
|
|
else
|
|
CONCURRENCY_LEVEL=$(nproc) NO_JEVENTS=1 NO_LIBTRACEEVENT=1 fakeroot debian/rules binary-headers binary-generic binary-perarch;
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
echo "*** Finished compiling the kernel, installing... ✓";
|
|
COMPILED_KERNEL_VER=${KERNEL_PATCH_VER}-${KERNEL_SUB_VER}+${KERNEL_VERSION_LABEL}${KERNEL_TYPE}
|
|
TIME_BUILT=$(date +%s)
|
|
sudo dpkg -i ../*.deb;
|
|
mkdir -pv ${COMPILED_KERNELS_DIR};
|
|
mkdir -pv ../${COMPILED_KERNEL_VER}-${TIME_BUILT};
|
|
mv -v ../*.deb ../${COMPILED_KERNEL_VER}-${TIME_BUILT};
|
|
mv -v ../${COMPILED_KERNEL_VER}-${TIME_BUILT} ${COMPILED_KERNELS_DIR};
|
|
|
|
# The latest VirtualBox (6.1.25-r145887) requires this missing module.lds to work
|
|
# To use: Pass VBOX_SUPPORT=yes to the build script
|
|
#
|
|
# Also note: If you're running VirtualBox while the kernel is compiling
|
|
# and it tries to run this command, it will fail. Just a heads up. You can
|
|
# always run it afterwards manually to get VirtualBox support going.
|
|
#
|
|
# Another note: -rt kernels can't use VirtualBox, so keep that in mind when
|
|
# deciding on a kernel to use as your daily driver.
|
|
VBOX_SUPPORT=${VBOX_SUPPORT:-"no"}
|
|
if [ ${VBOX_SUPPORT} == "yes" ] && [ "${KERNEL_TYPE}" != "rt" ]; then
|
|
echo "*** Enabling VirtualBox support... ✓";
|
|
sudo cp -v ${CUSTOM_PATCH_PATH}/virtualbox-support/module.lds /usr/src/linux-headers-${KERNEL_PATCH_VER}-${KERNEL_SUB_VER}+${KERNEL_VERSION_LABEL}${KERNEL_TYPE}-generic/scripts/module.lds;
|
|
sudo /sbin/vboxconfig;
|
|
fi
|
|
|
|
echo "*** Finished installing kernel, cleaning up build directory... ✓";
|
|
rm -rf ${KERNEL_BUILD_DIR};
|
|
|
|
# To list your installed kernels: sudo update-grub2
|
|
# To uninstall a kernel: sudo apt purge *6.12.3-061203+customidle-generic*
|
|
# Also, keep an eye out for the directories below as they build up over time.
|
|
echo "ls -alh /usr/src"
|
|
ls -alh /usr/src;
|
|
echo "ls -alh /lib/modules"
|
|
ls -alh /lib/modules;
|
|
echo "ls -alh ${COMPILED_KERNELS_DIR}"
|
|
ls -alh ${COMPILED_KERNELS_DIR};
|
|
echo "ls -alh ${COMPILED_KERNELS_DIR}/${COMPILED_KERNEL_VER}-${TIME_BUILT}"
|
|
ls -alh ${COMPILED_KERNELS_DIR}/${COMPILED_KERNEL_VER}-${TIME_BUILT};
|
|
|
|
cd;
|
|
echo "*** All done. ✓";
|
|
echo "*** You can now reboot and select ${COMPILED_KERNEL_VER}-generic in GRUB.";
|