changes in build_kernel.sh

Created Diff never expires
14 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
401 lines
14 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
402 lines
#!/bin/bash
#!/bin/bash


# Compile the Linux kernel for Ubuntu.
# Compile the Linux kernel for Ubuntu.


set -euo pipefail
set -euo pipefail


KERNEL_BASE_VER=${KERNEL_BASE_VER:-"5.4"}
KERNEL_BASE_VER=${KERNEL_BASE_VER:-"5.4"}
KERNEL_PATCH_VER=${KERNEL_PATCH_VER:-"5.4.135"}
KERNEL_PATCH_VER=${KERNEL_PATCH_VER:-"5.4.136"}
KERNEL_SUB_VER=${KERNEL_SUB_VER:-"0504135"}
KERNEL_SUB_VER=${KERNEL_SUB_VER:-"0504136"}
KERNEL_PATCH_SUB_VER=${KERNEL_PATCH_SUB_VER:-"5.4.0-26.30"}
KERNEL_PATCH_SUB_VER=${KERNEL_PATCH_SUB_VER:-"5.4.0-26.30"}
KERNEL_TYPE=${KERNEL_TYPE:-"idle"} # idle, full, rt
KERNEL_TYPE=${KERNEL_TYPE:-"idle"} # idle, full, rt
KERNEL_SCHEDULER=${KERNEL_SCHEDULER:-"cacule"} # cacule, cfs
KERNEL_SCHEDULER=${KERNEL_SCHEDULER:-"cacule"} # cacule, cfs
KERNEL_VERSION_LABEL=${KERNEL_VERSION_LABEL:-"custom"}
KERNEL_VERSION_LABEL=${KERNEL_VERSION_LABEL:-"custom"}


KERNEL_MAIN_DIR=${KERNEL_MAIN_DIR:-$HOME/kernel_main}
KERNEL_MAIN_DIR=${KERNEL_MAIN_DIR:-$HOME/kernel_main}
KERNEL_BUILD_DIR=${KERNEL_BUILD_DIR:-${KERNEL_MAIN_DIR}/build}
KERNEL_BUILD_DIR=${KERNEL_BUILD_DIR:-${KERNEL_MAIN_DIR}/build}
KERNEL_SOURCES_DIR=${KERNEL_SOURCES_DIR:-${KERNEL_MAIN_DIR}/sources}
KERNEL_SOURCES_DIR=${KERNEL_SOURCES_DIR:-${KERNEL_MAIN_DIR}/sources}
COMPILED_KERNELS_DIR=${COMPILED_KERNELS_DIR:-${KERNEL_MAIN_DIR}/compiled}
COMPILED_KERNELS_DIR=${COMPILED_KERNELS_DIR:-${KERNEL_MAIN_DIR}/compiled}
CONFIG_PATH=${CONFIG_PATH:-${KERNEL_MAIN_DIR}/configs}
CONFIG_PATH=${CONFIG_PATH:-${KERNEL_MAIN_DIR}/configs}
PATCH_PATH=${PATCH_PATH:-${KERNEL_MAIN_DIR}/patches}
PATCH_PATH=${PATCH_PATH:-${KERNEL_MAIN_DIR}/patches}
LUCJAN_PATCH_PATH=${LUCJAN_PATCH_PATH:-${PATCH_PATH}/lucjan-patches}
LUCJAN_PATCH_PATH=${LUCJAN_PATCH_PATH:-${PATCH_PATH}/lucjan-patches}
XANMOD_PATCH_PATH=${XANMOD_PATCH_PATH:-${PATCH_PATH}/xanmod-patches}
XANMOD_PATCH_PATH=${XANMOD_PATCH_PATH:-${PATCH_PATH}/xanmod-patches}
CUSTOM_PATCH_PATH=${CUSTOM_PATCH_PATH:-${PATCH_PATH}/custom-patches}
CUSTOM_PATCH_PATH=${CUSTOM_PATCH_PATH:-${PATCH_PATH}/custom-patches}
KERNEL_SRC_URI=${KERNEL_SRC_URI:-"https://cdn.kernel.org/pub/linux/kernel/v5.x"}
KERNEL_SRC_URI=${KERNEL_SRC_URI:-"https://cdn.kernel.org/pub/linux/kernel/v5.x"}
KERNEL_SRC_EXT=${KERNEL_SRC_EXT:-"tar.xz"}
KERNEL_SRC_EXT=${KERNEL_SRC_EXT:-"tar.xz"}
KERNEL_SRC_URL=${KERNEL_SRC_URL:-${KERNEL_SRC_URI}/linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT}}
KERNEL_SRC_URL=${KERNEL_SRC_URL:-${KERNEL_SRC_URI}/linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT}}


if ! [[ -d ${KERNEL_MAIN_DIR} ]]; then
if ! [[ -d ${KERNEL_MAIN_DIR} ]]; then
echo "*** Creating main directory for our kernel workspace... ✓";
echo "*** Creating main directory for our kernel workspace... ✓";
mkdir -pv ${KERNEL_MAIN_DIR};
mkdir -pv ${KERNEL_MAIN_DIR};
fi
fi


if ! [[ -d ${KERNEL_SOURCES_DIR} ]]; then
if ! [[ -d ${KERNEL_SOURCES_DIR} ]]; then
echo "*** Creating sources directory to store our tarballs... ✓";
echo "*** Creating sources directory to store our tarballs... ✓";
mkdir -pv ${KERNEL_SOURCES_DIR};
mkdir -pv ${KERNEL_SOURCES_DIR};
fi
fi


if ! [[ -d ${PATCH_PATH} ]]; then
if ! [[ -d ${PATCH_PATH} ]]; then
echo "*** Copying over the custom patches folder... ✓";
echo "*** Copying over the custom patches folder... ✓";
mkdir -pv ${CUSTOM_PATCH_PATH};
mkdir -pv ${CUSTOM_PATCH_PATH};
cp -r ./patches/* ${CUSTOM_PATCH_PATH};
cp -r ./patches/* ${CUSTOM_PATCH_PATH};
fi
fi


if ! [[ -d ${CONFIG_PATH} ]]; then
if ! [[ -d ${CONFIG_PATH} ]]; then
echo "*** Copying over the custom config folder... ✓"
echo "*** Copying over the custom config folder... ✓"
mkdir -pv ${CONFIG_PATH};
mkdir -pv ${CONFIG_PATH};
cp -r ./configs/* ${CONFIG_PATH};
cp -r ./configs/* ${CONFIG_PATH};
fi
fi


if [[ -d ${KERNEL_BUILD_DIR} ]]; then
if [[ -d ${KERNEL_BUILD_DIR} ]]; then
echo "*** Found previous build dir, removing... ✓";
echo "*** Found previous build dir, removing... ✓";
rm -rf ${KERNEL_BUILD_DIR};
rm -rf ${KERNEL_BUILD_DIR};
fi
fi


if ! [[ -f ${KERNEL_MAIN_DIR}/build_kernel.sh ]]; then
# Note: You can use this copied over script to make your own customized changes
# as time goes on, and then pull from the GitHub repo separately in another dir
# to see what's changed. Another option is to ignore this copied script and just
# use the cloned one from GitHub, but stashing your changes with "git stash" and then
# "git pull origin master" to get latest script, and then "git stash apply" to
# apply your own changes on top of the script
echo "*** Copying over the build script to allow for custom editing... ✓"
cp -r ./build_kernel.sh ${KERNEL_MAIN_DIR};
fi

echo "*** Creating new build dir... ✓";
echo "*** Creating new build dir... ✓";
mkdir -pv ${KERNEL_BUILD_DIR};
mkdir -pv ${KERNEL_BUILD_DIR};
cd ${KERNEL_BUILD_DIR};
cd ${KERNEL_BUILD_DIR};


if ! [[ -f ${KERNEL_SOURCES_DIR}/linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT} ]]; then
if ! [[ -f ${KERNEL_SOURCES_DIR}/linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT} ]]; then
echo "No tarball found for linux-${KERNEL_PATCH_VER}, fetching... ✓";
echo "No tarball found for linux-${KERNEL_PATCH_VER}, fetching... ✓";
wget ${KERNEL_SRC_URL};
wget ${KERNEL_SRC_URL};
cp ./linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT} ${KERNEL_SOURCES_DIR};
cp ./linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT} ${KERNEL_SOURCES_DIR};
fi
fi


echo "Copying over the source tarball and extracting... ✓";
echo "Copying over the source tarball and extracting... ✓";
cp -v ${KERNEL_SOURCES_DIR}/linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT} .;
cp -v ${KERNEL_SOURCES_DIR}/linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT} .;
tar xvf linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT};
tar xvf linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT};
rm -f linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT};
rm -f linux-${KERNEL_PATCH_VER}.${KERNEL_SRC_EXT};
cd linux-${KERNEL_PATCH_VER};
cd linux-${KERNEL_PATCH_VER};


# Deprecated as of 5.4.45 but can still be applied
# Deprecated as of 5.4.45 but can still be applied
# See https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.45/
# See https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.45/
echo "*** Copying and applying Ubuntu patches... ✓";
echo "*** Copying and applying Ubuntu patches... ✓";
cp -v ${CUSTOM_PATCH_PATH}/ubuntu-${KERNEL_BASE_VER}/*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/ubuntu-${KERNEL_BASE_VER}/*.patch .;
patch -p1 < ./0001-base-packaging.patch;
patch -p1 < ./0001-base-packaging.patch;
patch -p1 < ./0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.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;
patch -p1 < ./0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch;
# Update the version in the changelog to latest version since the patches
# 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
# are no longer maintained and because we want to keep our kernel as Ubuntu-like
# as possible (with ABI and all)
# as possible (with ABI and all)
echo "*** Updating version number in changelog... ✓"
echo "*** Updating version number in changelog... ✓"
if [ ${KERNEL_BASE_VER} = "5.4" ]; then
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;
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
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;
sed -i "s/5.7.1-050701/${KERNEL_PATCH_VER}-${KERNEL_SUB_VER}/g" ./0004-debian-changelog.patch;
fi
fi
patch -p1 < ./0004-debian-changelog.patch;
patch -p1 < ./0004-debian-changelog.patch;
patch -p1 < ./0005-configs-based-on-Ubuntu-${KERNEL_PATCH_SUB_VER}.patch;
patch -p1 < ./0005-configs-based-on-Ubuntu-${KERNEL_PATCH_SUB_VER}.patch;
echo "*** Successfully applied Ubuntu patches... ✓"
echo "*** Successfully applied Ubuntu patches... ✓"


# Populate the patches dir with xanmod and lucjan patches
# Populate the patches dir with xanmod and lucjan patches
if ! [[ -d ${PATCH_PATH}/lucjan-patches ]]; then
if ! [[ -d ${PATCH_PATH}/lucjan-patches ]]; then
echo "*** Fetching lucjan patches... ✓"
echo "*** Fetching lucjan patches... ✓"
git clone https://github.com/sirlucjan/kernel-patches.git ${PATCH_PATH}/lucjan-patches;
git clone https://github.com/sirlucjan/kernel-patches.git ${PATCH_PATH}/lucjan-patches;
fi
fi
if ! [[ -d ${PATCH_PATH}/xanmod-patches ]]; then
if ! [[ -d ${PATCH_PATH}/xanmod-patches ]]; then
echo "*** Fetching xanmod patches... ✓"
echo "*** Fetching xanmod patches... ✓"
git clone https://github.com/xanmod/linux-patches.git ${PATCH_PATH}/xanmod-patches;
git clone https://github.com/xanmod/linux-patches.git ${PATCH_PATH}/xanmod-patches;
fi
fi


# Allow support for rt (real-time) kernels
# Allow support for rt (real-time) kernels
# https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt
# https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt
if [ ${KERNEL_TYPE} = "rt" ]; then
if [ ${KERNEL_TYPE} = "rt" ]; then
echo "*** Copying and applying rt patches... ✓"
echo "*** Copying and applying rt patches... ✓"
if [ ${KERNEL_BASE_VER} = "5.4" ]; then
if [ ${KERNEL_BASE_VER} = "5.4" ]; then
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.4.129-rt61.patch .;
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.4.129-rt61.patch .;
patch -p1 < ./patch-5.4.129-rt61.patch;
patch -p1 < ./patch-5.4.129-rt61.patch;
elif [ ${KERNEL_BASE_VER} = "5.13" ]; then
elif [ ${KERNEL_BASE_VER} = "5.13" ]; then
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.13-rt1.patch .;
cp -v ${CUSTOM_PATCH_PATH}/rt/${KERNEL_BASE_VER}/patch-5.13-rt1.patch .;
patch -p1 < ./patch-5.13-rt1.patch;
patch -p1 < ./patch-5.13-rt1.patch;
fi
fi
fi
fi


# Build the 5.4 LTS kernel. Supported until 2025
# Build the 5.4 LTS kernel. Supported until 2025
if [ ${KERNEL_BASE_VER} = "5.4" ]; then
if [ ${KERNEL_BASE_VER} = "5.4" ]; then
echo "*** Copying and applying freesync patches from 5.10.. ✓"
echo "*** Copying and applying freesync patches from 5.10.. ✓"
cp -v ${CUSTOM_PATCH_PATH}/amdgpu/freesync-refresh/*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/amdgpu/freesync-refresh/*.patch .;
patch -p1 < ./01_freesync_refresh.patch;
patch -p1 < ./01_freesync_refresh.patch;
patch -p1 < ./02_freesync_refresh.patch;
patch -p1 < ./02_freesync_refresh.patch;
patch -p1 < ./03_freesync_refresh.patch;
patch -p1 < ./03_freesync_refresh.patch;
patch -p1 < ./04_freesync_refresh.patch;
patch -p1 < ./04_freesync_refresh.patch;
patch -p1 < ./05_freesync_refresh.patch;
patch -p1 < ./05_freesync_refresh.patch;
patch -p1 < ./06_freesync_refresh.patch;
patch -p1 < ./06_freesync_refresh.patch;
echo "*** Copying and applying fsgsbase patches.. ✓"
echo "*** Copying and applying fsgsbase patches.. ✓"
#https://lkml.org/lkml/2019/10/4/725 - v9 is for 5.4 and earlier
#https://lkml.org/lkml/2019/10/4/725 - v9 is for 5.4 and earlier
cp -v ${CUSTOM_PATCH_PATH}/fsgsbase/v9/v9*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/fsgsbase/v9/v9*.patch .;
for i in {1..17}; do
for i in {1..17}; do
patch -p1 < ./v9-${i}.patch;
patch -p1 < ./v9-${i}.patch;
done
done
echo "*** Copying and applying block 5.4 patches.. ✓";
echo "*** Copying and applying block 5.4 patches.. ✓";
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/block-patches-v2-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/block-patches-v2-sep/*.patch .;
patch -p1 < ./0001-block-Kconfig.iosched-set-default-value-of-IOSCHED_B.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 < ./0002-block-Fix-depends-for-BLK_DEV_ZONED.patch;
patch -p1 < ./0003-block-set-rq_affinity-2-for-full-multithreading-I-O-.patch;
patch -p1 < ./0003-block-set-rq_affinity-2-for-full-multithreading-I-O-.patch;
echo "*** Copying and applying block 5.6 patches.. ✓"
echo "*** Copying and applying block 5.6 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.6/block-patches-v3-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.6/block-patches-v3-sep/*.patch .;
patch -p1 < ./0004-blk-mq-remove-the-bio-argument-to-prepare_request.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;
patch -p1 < ./0005-block-Flag-elevators-suitable-for-single-queue.patch;
echo "*** Copying and applying block 5.7 patches.. ✓"
echo "*** Copying and applying block 5.7 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.7/block-patches-v5-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.7/block-patches-v5-sep/*.patch .;
patch -p1 < ./0006-block-bfq-iosched-fix-duplicated-word.patch;
patch -p1 < ./0006-block-bfq-iosched-fix-duplicated-word.patch;
patch -p1 < ./0007-block-bio-delete-duplicated-words.patch;
patch -p1 < ./0007-block-bio-delete-duplicated-words.patch;
patch -p1 < ./0008-block-elevator-delete-duplicated-word-and-fix-typos.patch;
patch -p1 < ./0008-block-elevator-delete-duplicated-word-and-fix-typos.patch;
patch -p1 < ./0009-block-blk-timeout-delete-duplicated-word.patch;
patch -p1 < ./0009-block-blk-timeout-delete-duplicated-word.patch;
echo "*** Copying and applying block 5.8 patches.. ✓"
echo "*** Copying and applying block 5.8 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.8/block-patches-v6-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/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 .;
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-part1.patch;
patch -p1 < ./5.4-block-5.8-0011-block-Convert-to-use-the-preferred-fallthrough-macro-part2.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;
patch -p1 < ./0012-block-bfq-Disable-low_latency-when-blk_iolatency-is-.patch;
echo "*** Copying and applying block 5.10 patches.. ✓"
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 .;
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;
patch -p1 <./5.4-block-5.10-elevator-mq-aware.patch;
echo "*** Copying and applying block 5.12 patches.. ✓"
echo "*** Copying and applying block 5.12 patches.. ✓"
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-block-5.12-0008-block-Remove-unnecessary-elevator-operation-checks*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-block-5.12-0008-block-Remove-unnecessary-elevator-operation-checks*.patch .;
patch -p1 < ./5.4-block-5.12-0008-block-Remove-unnecessary-elevator-operation-checks.patch;
patch -p1 < ./5.4-block-5.12-0008-block-Remove-unnecessary-elevator-operation-checks.patch;
patch -p1 < ./5.4-block-5.12-0008-block-Remove-unnecessary-elevator-operation-checks-part2.patch;
patch -p1 < ./5.4-block-5.12-0008-block-Remove-unnecessary-elevator-operation-checks-part2.patch;
echo "*** Copying and applying BFQ 5.4 patches.. ✓"
echo "*** Copying and applying BFQ 5.4 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/bfq-patches-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/bfq-patches-sep/*.patch .;
patch -p1 < ./0001-blkcg-Make-bfq-disable-iocost-when-enabled.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 < ./0002-block-bfq-present-a-double-cgroups-interface.patch;
patch -p1 < ./0003-block-bfq-Skip-tracing-hooks-if-possible.patch;
patch -p1 < ./0003-block-bfq-Skip-tracing-hooks-if-possible.patch;
echo "*** Copying and applying BFQ 5.7 patches.. ✓"
echo "*** Copying and applying BFQ 5.7 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.7/bfq-patches-v5-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.7/bfq-patches-v5-sep/*.patch .;
patch -p1 < ./0001-bfq-Fix-check-detecting-whether-waker-queue-should-b.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;
patch -p1 < ./0002-bfq-Allow-short_ttime-queues-to-have-waker.patch;
echo "*** Copying and applying BFQ 5.10 patches.. ✓"
echo "*** Copying and applying BFQ 5.10 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.10/bfq-patches-v5-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.10/bfq-patches-v5-sep/*.patch .;
patch -p1 < ./0003-block-bfq-increase-time-window-for-waker-detection.patch;
patch -p1 < ./0003-block-bfq-increase-time-window-for-waker-detection.patch;
patch -p1 < ./0004-block-bfq-do-not-raise-non-default-weights.patch;
patch -p1 < ./0004-block-bfq-do-not-raise-non-default-weights.patch;
patch -p1 < ./0005-block-bfq-avoid-spurious-switches-to-soft_rt-of-inte.patch;
patch -p1 < ./0005-block-bfq-avoid-spurious-switches-to-soft_rt-of-inte.patch;
patch -p1 < ./0006-block-bfq-do-not-expire-a-queue-when-it-is-the-only-.patch;
patch -p1 < ./0006-block-bfq-do-not-expire-a-queue-when-it-is-the-only-.patch;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0007-block-bfq-replace-mechanism-for-evaluating-I-O-inten*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0007-block-bfq-replace-mechanism-for-evaluating-I-O-inten*.patch .;
patch -p1 < ./5.4-0007-block-bfq-replace-mechanism-for-evaluating-I-O-inten-part2.patch;
patch -p1 < ./5.4-0007-block-bfq-replace-mechanism-for-evaluating-I-O-inten-part2.patch;
patch -p1 < ./5.4-0007-block-bfq-replace-mechanism-for-evaluating-I-O-inten-part3.patch;
patch -p1 < ./5.4-0007-block-bfq-replace-mechanism-for-evaluating-I-O-inten-part3.patch;
patch -p1 < ./0008-block-bfq-re-evaluate-convenience-of-I-O-plugging-on.patch;
patch -p1 < ./0008-block-bfq-re-evaluate-convenience-of-I-O-plugging-on.patch;
patch -p1 < ./0009-block-bfq-fix-switch-back-from-soft-rt-weitgh-raisin.patch;
patch -p1 < ./0009-block-bfq-fix-switch-back-from-soft-rt-weitgh-raisin.patch;
patch -p1 < ./0010-block-bfq-save-also-weight-raised-service-on-queue-m.patch;
patch -p1 < ./0010-block-bfq-save-also-weight-raised-service-on-queue-m.patch;
patch -p1 < ./0011-block-bfq-save-also-injection-state-on-queue-merging.patch;
patch -p1 < ./0011-block-bfq-save-also-injection-state-on-queue-merging.patch;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0012-block-bfq-make-waker-queue-detection-more-robust*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0012-block-bfq-make-waker-queue-detection-more-robust*.patch .;
patch -p1 < ./5.4-0012-block-bfq-make-waker-queue-detection-more-robust.patch;
patch -p1 < ./5.4-0012-block-bfq-make-waker-queue-detection-more-robust.patch;
patch -p1 < ./5.4-0012-block-bfq-make-waker-queue-detection-more-robust-part2.patch;
patch -p1 < ./5.4-0012-block-bfq-make-waker-queue-detection-more-robust-part2.patch;
patch -p1 < ./0013-bfq-bfq_check_waker-should-be-static.patch;
patch -p1 < ./0013-bfq-bfq_check_waker-should-be-static.patch;
patch -p1 < ./0014-block-bfq-always-inject-I-O-of-queues-blocked-by-wak.patch;
patch -p1 < ./0014-block-bfq-always-inject-I-O-of-queues-blocked-by-wak.patch;
patch -p1 < ./0015-block-bfq-put-reqs-of-waker-and-woken-in-dispatch-li.patch;
patch -p1 < ./0015-block-bfq-put-reqs-of-waker-and-woken-in-dispatch-li.patch;
patch -p1 < ./0016-block-bfq-make-shared-queues-inherit-wakers.patch;
patch -p1 < ./0016-block-bfq-make-shared-queues-inherit-wakers.patch;
patch -p1 < ./0017-block-bfq-fix-weight-raising-resume-with-low_latency.patch;
patch -p1 < ./0017-block-bfq-fix-weight-raising-resume-with-low_latency.patch;
patch -p1 < ./0018-block-bfq-keep-shared-queues-out-of-the-waker-mechan.patch;
patch -p1 < ./0018-block-bfq-keep-shared-queues-out-of-the-waker-mechan.patch;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0019-block-bfq-merge-bursts-of-newly-created-queues*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0019-block-bfq-merge-bursts-of-newly-created-queues*.patch .;
patch -p1 < ./5.4-0019-block-bfq-merge-bursts-of-newly-created-queues.patch;
patch -p1 < ./5.4-0019-block-bfq-merge-bursts-of-newly-created-queues.patch;
patch -p1 < ./5.4-0019-block-bfq-merge-bursts-of-newly-created-queues-part2.patch;
patch -p1 < ./5.4-0019-block-bfq-merge-bursts-of-newly-created-queues-part2.patch;
patch -p1 < ./0020-bfq-don-t-duplicate-code-for-different-paths.patch;
patch -p1 < ./0020-bfq-don-t-duplicate-code-for-different-paths.patch;
patch -p1 < ./0022-bfq-Use-ttime-local-variable.patch;
patch -p1 < ./0022-bfq-Use-ttime-local-variable.patch;
patch -p1 < ./0023-bfq-Use-only-idle-IO-periods-for-think-time-calculat.patch;
patch -p1 < ./0023-bfq-Use-only-idle-IO-periods-for-think-time-calculat.patch;
patch -p1 < ./0024-bfq-Remove-stale-comment.patch;
patch -p1 < ./0024-bfq-Remove-stale-comment.patch;
patch -p1 < ./0025-Revert-bfq-Remove-stale-comment.patch;
patch -p1 < ./0025-Revert-bfq-Remove-stale-comment.patch;
echo "*** Copying and applying BFQ 5.11 patches.. ✓"
echo "*** Copying and applying BFQ 5.11 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.11/bfq-patches-v7-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.11/bfq-patches-v7-sep/*.patch .;
patch -p1 < ./0023-block-bfq-update-comments-and-default-value-in-docs-.patch;
patch -p1 < ./0023-block-bfq-update-comments-and-default-value-in-docs-.patch;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0027-Revert-block-bfq-make-shared-queues-inherit-wakers*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0027-Revert-block-bfq-make-shared-queues-inherit-wakers*.patch .;
patch -p1 < ./5.4-0027-Revert-block-bfq-make-shared-queues-inherit-wakers.patch;
patch -p1 < ./5.4-0027-Revert-block-bfq-make-shared-queues-inherit-wakers.patch;
patch -p1 < ./5.4-0027-Revert-block-bfq-make-shared-queues-inherit-wakers-part2.patch;
patch -p1 < ./5.4-0027-Revert-block-bfq-make-shared-queues-inherit-wakers-part2.patch;
patch -p1 < ./0028-Revert-block-bfq-put-reqs-of-waker-and-woken-in-disp.patch;
patch -p1 < ./0028-Revert-block-bfq-put-reqs-of-waker-and-woken-in-disp.patch;
patch -p1 < ./0029-Revert-block-bfq-always-inject-I-O-of-queues-blocked.patch;
patch -p1 < ./0029-Revert-block-bfq-always-inject-I-O-of-queues-blocked.patch;
patch -p1 < ./0030-block-bfq-always-inject-I-O-of-queues-blocked-by-wak.patch;
patch -p1 < ./0030-block-bfq-always-inject-I-O-of-queues-blocked-by-wak.patch;
patch -p1 < ./0031-block-bfq-put-reqs-of-waker-and-woken-in-dispatch-li.patch;
patch -p1 < ./0031-block-bfq-put-reqs-of-waker-and-woken-in-dispatch-li.patch;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0032-block-bfq-make-shared-queues-inherit-wakers*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-0032-block-bfq-make-shared-queues-inherit-wakers*.patch .;
patch -p1 < ./5.4-0032-block-bfq-make-shared-queues-inherit-wakers.patch;
patch -p1 < ./5.4-0032-block-bfq-make-shared-queues-inherit-wakers.patch;
patch -p1 < ./5.4-0032-block-bfq-make-shared-queues-inherit-wakers-part2.patch;
patch -p1 < ./5.4-0032-block-bfq-make-shared-queues-inherit-wakers-part2.patch;
patch -p1 < ./0037-block-bfq-fix-the-timeout-calculation-in-bfq_bfqq_ch.patch;
patch -p1 < ./0037-block-bfq-fix-the-timeout-calculation-in-bfq_bfqq_ch.patch;
patch -p1 < ./0038-blk-mq-bypass-IO-scheduler-s-limit_depth-for-passthr.patch;
patch -p1 < ./0038-blk-mq-bypass-IO-scheduler-s-limit_depth-for-passthr.patch;
patch -p1 < ./0039-bfq-mq-deadline-remove-redundant-check-for-passthrou.patch;
patch -p1 < ./0039-bfq-mq-deadline-remove-redundant-check-for-passthrou.patch;
echo "*** Copying and applying BFQ 5.12 patches.. ✓"
echo "*** Copying and applying BFQ 5.12 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.12/bfq-patches-v15-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.12/bfq-patches-v15-sep/*.patch .;
patch -p1 < ./0024-block-bfq-remove-the-repeated-declaration.patch;
patch -p1 < ./0024-block-bfq-remove-the-repeated-declaration.patch;
patch -p1 < ./0030-block-bfq-let-also-stably-merged-queues-enjoy-weight.patch;
patch -p1 < ./0030-block-bfq-let-also-stably-merged-queues-enjoy-weight.patch;
patch -p1 < ./0031-block-bfq-fix-delayed-stable-merge-check.patch;
patch -p1 < ./0031-block-bfq-fix-delayed-stable-merge-check.patch;
patch -p1 < ./0032-block-bfq-consider-also-creation-time-in-delayed-sta.patch;
patch -p1 < ./0032-block-bfq-consider-also-creation-time-in-delayed-sta.patch;
patch -p1 < ./0033-block-bfq-boost-throughput-by-extending-queue-mergin.patch;
patch -p1 < ./0033-block-bfq-boost-throughput-by-extending-queue-mergin.patch;
patch -p1 < ./0034-block-bfq-avoid-delayed-merge-of-async-queues.patch;
patch -p1 < ./0034-block-bfq-avoid-delayed-merge-of-async-queues.patch;
patch -p1 < ./0035-block-bfq-check-waker-only-for-queues-with-no-in-fli.patch;
patch -p1 < ./0035-block-bfq-check-waker-only-for-queues-with-no-in-fli.patch;
patch -p1 < ./0036-block-bfq-reset-waker-pointer-with-shared-queues.patch;
patch -p1 < ./0036-block-bfq-reset-waker-pointer-with-shared-queues.patch;
echo "*** Copying and applying Valve fsync/futex patches.. ✓"
echo "*** Copying and applying Valve fsync/futex patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.10/futex-patches/0001-futex-patches.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.10/futex-patches/0001-futex-patches.patch .;
patch -p1 < ./0001-futex-patches.patch;
patch -p1 < ./0001-futex-patches.patch;
echo "*** Copying and applying misc fixes patches.. ✓"
echo "*** Copying and applying misc fixes patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/fixes-miscellaneous-v5/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/fixes-miscellaneous-v5/*.patch .;
patch -p1 < ./0001-fixes-miscellaneous.patch;
patch -p1 < ./0001-fixes-miscellaneous.patch;
echo "*** Copying and applying cve patches.. ✓"
echo "*** Copying and applying cve patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/cve-patches-v8-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/cve-patches-v8-sep/*.patch .;
patch -p1 < ./0001-consolemap-Fix-a-memory-leaking-bug-in-drivers-tty-v.patch;
patch -p1 < ./0001-consolemap-Fix-a-memory-leaking-bug-in-drivers-tty-v.patch;
echo "*** Copying and applying exfat patches.. ✓"
echo "*** Copying and applying exfat patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/exfat-patches/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/exfat-patches/*.patch .;
patch -p1 < ./0001-exfat-patches.patch;
patch -p1 < ./0001-exfat-patches.patch;
echo "*** Copying and applying SCSI patches.. ✓"
echo "*** Copying and applying SCSI patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/scsi-patches/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/scsi-patches/*.patch .;
patch -p1 < ./0001-scsi-patches.patch;
patch -p1 < ./0001-scsi-patches.patch;
echo "*** Copying and applying ll patches.. ✓"
echo "*** Copying and applying ll patches.. ✓"
cp -v ${CUSTOM_PATCH_PATH}/ll-patches/*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/ll-patches/*.patch .;
patch -p1 < ./0001-LL-kconfig-add-500Hz-timer-interrupt-kernel-config-o.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 < ./0002-LL-elevator-set-default-scheduler-to-bfq-for-blk-mq.patch;
patch -p1 < ./mm-set-8MB.patch;
patch -p1 < ./mm-set-8MB.patch;
echo "*** Copying and applying xanmod patches.. ✓";
echo "*** Copying and applying xanmod patches.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/tweaks/0001-sched-autogroup-Add-kernel-parameter-and-config-opti.patch .;
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;
patch -p1 < ./0001-sched-autogroup-Add-kernel-parameter-and-config-opti.patch;
echo "*** Copying and applying cfs xanmod energy tweaks patch.. ✓";
echo "*** Copying and applying cfs xanmod energy tweaks patch.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/tweaks/5.4-cfs-xanmod-tweaks.patch .;
cp -v ${CUSTOM_PATCH_PATH}/tweaks/5.4-cfs-xanmod-tweaks.patch .;
patch -p1 < ./5.4-cfs-xanmod-tweaks.patch;
patch -p1 < ./5.4-cfs-xanmod-tweaks.patch;
echo "*** Copying and applying intel_cpufreq patches.. ✓"
echo "*** Copying and applying intel_cpufreq patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.6/xanmod-patches/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.6/xanmod-patches/*.patch .;
patch -p1 < ./0001-cpufreq-intel_pstate-Set-default-cpufreq_driver-to-i.patch;
patch -p1 < ./0001-cpufreq-intel_pstate-Set-default-cpufreq_driver-to-i.patch;
# https://github.com/zen-kernel/zen-kernel/commit/7de2596b35ac1dbf55fb384f3d668a7315635c0b
# https://github.com/zen-kernel/zen-kernel/commit/7de2596b35ac1dbf55fb384f3d668a7315635c0b
echo "*** Copying and applying cfs zen tweaks patch.. ✓";
echo "*** Copying and applying cfs zen tweaks patch.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/tweaks/cfs-zen-tweaks.patch .;
cp -v ${CUSTOM_PATCH_PATH}/tweaks/cfs-zen-tweaks.patch .;
patch -p1 < ./cfs-zen-tweaks.patch;
patch -p1 < ./cfs-zen-tweaks.patch;
echo "*** Copying and applying force irq threads patch.. ✓";
echo "*** Copying and applying force irq threads patch.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/tweaks/force-irq-threads.patch .;
cp -v ${CUSTOM_PATCH_PATH}/tweaks/force-irq-threads.patch .;
patch -p1 < ./force-irq-threads.patch;
patch -p1 < ./force-irq-threads.patch;
echo "*** Copying and applying increase writeback threshold patch.. ✓";
echo "*** Copying and applying increase writeback threshold patch.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/tweaks/increase-default-writeback-thresholds.patch .;
cp -v ${CUSTOM_PATCH_PATH}/tweaks/increase-default-writeback-thresholds.patch .;
patch -p1 < ./increase-default-writeback-thresholds.patch;
patch -p1 < ./increase-default-writeback-thresholds.patch;
echo "*** Copying and applying enable background reclaim hugepages patch.. ✓";
echo "*** Copying and applying enable background reclaim hugepages patch.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/tweaks/enable-background-reclaim-hugepages.patch .;
cp -v ${CUSTOM_PATCH_PATH}/tweaks/enable-background-reclaim-hugepages.patch .;
patch -p1 < ./enable-background-reclaim-hugepages.patch;
patch -p1 < ./enable-background-reclaim-hugepages.patch;
echo "*** Copying and applying graysky's GCC patch.. ✓"
echo "*** Copying and applying graysky's GCC patch.. ✓"
cp -v ${CUSTOM_PATCH_PATH}/graysky/graysky-gcc9-5.4.patch .;
cp -v ${CUSTOM_PATCH_PATH}/graysky/graysky-gcc9-5.4.patch .;
patch -p1 < ./graysky-gcc9-5.4.patch;
patch -p1 < ./graysky-gcc9-5.4.patch;
echo "*** Copying and applying O3 patches.. ✓"
echo "*** Copying and applying O3 patches.. ✓"
cp -v ${CUSTOM_PATCH_PATH}/O3-optimization/O3-v5.4+.patch .;
cp -v ${CUSTOM_PATCH_PATH}/O3-optimization/O3-v5.4+.patch .;
patch -p1 < ./O3-v5.4+.patch;
patch -p1 < ./O3-v5.4+.patch;
echo "*** Copying and applying O3 fix 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 .;
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;
patch -p1 < ./0004-Makefile-Turn-off-loop-vectorization-for-GCC-O3-opti.patch;
echo "*** Copying and applying arch 5.7 patches.. ✓"
echo "*** Copying and applying arch 5.7 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.7/arch-patches-v9-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.7/arch-patches-v9-sep/*.patch .;
patch -p1 < ./0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch;
patch -p1 < ./0004-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch;
echo "*** Copying and applying arch 5.9 patches.. ✓"
echo "*** Copying and applying arch 5.9 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.9/arch-patches-v9-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/5.9/arch-patches-v9-sep/*.patch .;
patch -p1 < ./0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch;
patch -p1 < ./0004-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch;
echo "*** Copying and applying arch 5.12 patches.. ✓"
echo "*** Copying and applying arch 5.12 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/5.12/arch-patches-v7-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/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 .;
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 < ./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 < ./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 < ./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;
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 .;
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 < ./5.4-from-5.12-arch-reserve_bios_regions.patch;
patch -p1 < ./0007-x86-crash-remove-crash_reserve_low_1M.patch;
patch -p1 < ./0007-x86-crash-remove-crash_reserve_low_1M.patch;
echo "*** Copying and applying Clear Linux patches.. ✓"
echo "*** Copying and applying Clear Linux patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/clearlinux-patches-v6-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/clearlinux-patches-v6-sep/*.patch .;
patch -p1 < ./0006-intel_idle-tweak-cpuidle-cstates.patch;
patch -p1 < ./0006-intel_idle-tweak-cpuidle-cstates.patch;
patch -p1 < ./0009-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.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 < ./0016-Add-boot-option-to-allow-unsigned-modules.patch;
patch -p1 < ./0020-use-lfence-instead-of-rep-and-nop.patch;
patch -p1 < ./0020-use-lfence-instead-of-rep-and-nop.patch;
echo "*** Copying and applying Clear Linux patches from 5.10.. ✓"
echo "*** Copying and applying Clear Linux patches from 5.10.. ✓"
cp -v ${CUSTOM_PATCH_PATH}/clearlinux/*.patch .;
cp -v ${CUSTOM_PATCH_PATH}/clearlinux/*.patch .;
patch -p1 < ./0001-i8042-decrease-debug-message-level-to-info.patch;
patch -p1 < ./0001-i8042-decrease-debug-message-level-to-info.patch;
patch -p1 < ./0002-Increase-the-ext4-default-commit-age.patch;
patch -p1 < ./0002-Increase-the-ext4-default-commit-age.patch;
patch -p1 < ./0003-silence-rapl.patch;
patch -p1 < ./0003-silence-rapl.patch;
patch -p1 < ./0004-pci-pme-wakeups.patch;
patch -p1 < ./0004-pci-pme-wakeups.patch;
patch -p1 < ./0005-ksm-wakeups.patch;
patch -p1 < ./0005-ksm-wakeups.patch;
patch -p1 < ./0007-bootstats-add-printk-s-to-measure-boot-time-in-more-.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 < ./0008-smpboot-reuse-timer-calibration.patch;
patch -p1 < ./0009-Initialize-ata-before-graphics.patch;
patch -p1 < ./0009-Initialize-ata-before-graphics.patch;
patch -p1 < ./0010-give-rdrand-some-credit.patch;
patch -p1 < ./0010-give-rdrand-some-credit.patch;
patch -p1 < ./0011-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.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 < ./0012-kernel-time-reduce-ntp-wakeups.patch;
patch -p1 < ./0013-init-wait-for-partition-and-retry-scan.patch;
patch -p1 < ./0013-init-wait-for-partition-and-retry-scan.patch;
patch -p1 < ./0014-print-fsync-count-for-bootchart.patch;
patch -p1 < ./0014-print-fsync-count-for-bootchart.patch;
patch -p1 < ./0016-Enable-stateless-firmware-loading.patch;
patch -p1 < ./0016-Enable-stateless-firmware-loading.patch;
patch -p1 < ./0017-Migrate-some-systemd-defaults-to-the-kernel-defaults.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 < ./0018-xattr-allow-setting-user.-attributes-on-symlinks-by-.patch;
if [ ${KERNEL_TYPE} = "rt" ]; then
if [ ${KERNEL_TYPE} = "rt" ]; then
patch -p1 < ./0020-do-accept-in-LIFO-order-for-cache-efficiency-rt.patch;
patch -p1 < ./0020-do-accept-in-LIFO-order-for-cache-efficiency-rt.patch;
patch -p1 < ./include-linux-wait-h-merge-fix-rt.patch;
patch -p1 < ./include-linux-wait-h-merge-fix-rt.patch;
else
else
patch -p1 < ./0020-do-accept-in-LIFO-order-for-cache-efficiency.patch;
patch -p1 < ./0020-do-accept-in-LIFO-order-for-cache-efficiency.patch;
patch -p1 < ./include-linux-wait-h-merge-fix.patch;
patch -p1 < ./include-linux-wait-h-merge-fix.patch;
fi
fi
patch -p1 < ./0021-locking-rwsem-spin-faster.patch;
patch -p1 < ./0021-locking-rwsem-spin-faster.patch;
patch -p1 < ./0022-ata-libahci-ignore-staggered-spin-up.patch;
patch -p1 < ./0022-ata-libahci-ignore-staggered-spin-up.patch;
patch -p1 < ./0023-print-CPU-that-faults.patch;
patch -p1 < ./0023-print-CPU-that-faults.patch;
patch -p1 < ./0025-nvme-workaround.patch;
patch -p1 < ./0025-nvme-workaround.patch;
patch -p1 < ./0026-Don-t-report-an-error-if-PowerClamp-run-on-other-CPU.patch;
patch -p1 < ./0026-Don-t-report-an-error-if-PowerClamp-run-on-other-CPU.patch;
if [ ${KERNEL_TYPE} = "rt" ]; then
if [ ${KERNEL_TYPE} = "rt" ]; then
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/arch-patches-rt-v3-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/arch-patches-rt-v3-sep/*.patch .;
patch -p1 < ./0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.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 < ./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 < ./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 < ./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 < ./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 < ./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;
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;
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.. ✓"
echo "*** Copying and applying arch-rt 5.4 patches.. ✓"
else
else
patch -p1 < ./0003-sched-core-nr_migrate-256-increases-number-of-tasks-.patch;
patch -p1 < ./0003-sched-core-nr_migrate-256-increases-number-of-tasks-.patch;
echo "*** Copying and applying arch 5.4 patches.. ✓"
echo "*** Copying and applying arch 5.4 patches.. ✓"
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/arch-patches-v25-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/arch-patches-v25-sep/*.patch .;
patch -p1 < ./0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.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 < ./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 < ./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 < ./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 < ./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 < ./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;
patch -p1 < ./0010-drm-amdgpu-Add-DC-feature-mask-to-disable-fractional.patch;
fi
fi
echo "*** Copying and applying swap patches.. ✓";
echo "*** Copying and applying swap patches.. ✓";
cp -v ${CUSTOM_PATCH_PATH}/backports/${KERNEL_BASE_VER}/5.4-from-5.13-swap-*.patch .;
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-0001-swap-patches.patch;
patch -p1 < ./5.4-from-5.13-swap-merge-fix-new.patch;
patch -p1 < ./5.4-from-5.13-swap-merge-fix-new.patch;
echo "*** Copying and applying ck-hrtimer patches.. ✓";
echo "*** Copying and applying ck-hrtimer patches.. ✓";
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/ck-hrtimer/*.patch .;
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/ck-hrtimer/*.patch .;
patch -p1 < ./0001-Create-highres-timeout-variants-of-schedule_timeout-.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 < ./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 < ./0003-Convert-msleep-to-use-hrtimers-when-active.patch;
patch -p1 < ./0005-Replace-all-calls-to-schedule_timeout_interruptible-.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 < ./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 < ./0007-Don-t-use-hrtimer-overlay-when-pm_freezing-since-som.patch;
patch -p1 < ./0008-clockevents-hrtimer-Make-hrtimer-granularity-and-min.patch;
patch -p1 < ./0008-clockevents-hrtimer-Make-hrtimer-granularity-and-min.patch;
echo "*** Copying and applying pciacso patches.. ✓";
echo "*** Copying and applying pciacso patches.. ✓";
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/pci_acso/*.patch .;
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/pci_acso/*.patch .;
patch -p1 < ./0001-add-acs-overrides_iommu.patch;
patch -p1 < ./0001-add-acs-overrides_iommu.patch;
echo "*** Copying and applying modules patches.. ✓";
echo "*** Copying and applying modules patches.. ✓";
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/modules/*.patch .;
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/modules/*.patch .;
patch -p1 < ./0001-modules-disinherit-taint-proprietary-module.patch;
patch -p1 < ./0001-modules-disinherit-taint-proprietary-module.patch;
echo "*** Copying and applying xanmod patches.. ✓";
echo "*** Copying and applying xanmod patches.. ✓";
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/xanmod/*.patch .;
cp -v ${XANMOD_PATCH_PATH}/linux-5.10.y-xanmod/xanmod/*.patch .;
if ! [ ${KERNEL_TYPE} = "rt" ]; then
if ! [ ${KERNEL_TYPE} = "rt" ]; then
patch -p1 < ./0005-kconfig-set-PREEMPT-and-RCU_BOOST-without-delay-by-d.patch;
patch -p1 < ./0005-kconfig-set-PREEMPT-and-RCU_BOOST-without-delay-by-d.patch;
fi
fi
patch -p1 < ./0006-dcache-cache_pressure-50-decreases-the-rate-at-which.patch;
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 < ./0009-cpufreq-tunes-ondemand-and-conservative-governor-for.patch;
patch -p1 < ./0010-scripts-disable-the-localversion-tag-of-a-git-repo.patch;
patch -p1 < ./0010-scripts-disable-the-localversion-tag-of-a-git-repo.patch;
elif [ ${KERNEL_BASE_VER} = "5.13" ]; then
elif [ ${KERNEL_BASE_VER} = "5.13" ]; then
echo "*** Copying and applying alsa patches.. ✓";
echo "*** Copying and applying alsa patches.. ✓";
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/alsa-patches-v2/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/alsa-patches-v2/*.patch .;
patch -p1 < ./0001-alsa-patches.patch;
patch -p1 < ./0001-alsa-patches.patch;
echo "*** Copying and applying bbr2 patches.. ✓";
echo "*** Copying and applying bbr2 patches.. ✓";
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/bbr2-patches-v2/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/bbr2-patches-v2/*.patch .;
patch -p1 < ./0001-bbr2-patches.patch;
patch -p1 < ./0001-bbr2-patches.patch;
echo "*** Copying and applying bfq patches.. ✓";
echo "*** Copying and applying bfq patches.. ✓";
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/bfq-patches-v3-sep/*.patch .;
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/bfq-patches-v3-sep/*.patch .;
patch -p1 < ./0001-block-bfq-let-also-stably-merged-queues-enjoy-weight.patch;
patch -p1 < ./0001-block-bfq-let-also-stably-merged-queues-enjoy-weight.patch;
if ! [ ${KERNEL_TYPE} = "rt" ]; then
if ! [ ${KERNEL_TYPE} = "rt" ]; then
patch -p1 < ./0002-block-bfq-consider-also-creation-time-in-delayed-sta.patch;
patch -p1 < ./0002-block-bfq-consider-also-creation-time-in-delayed-sta.patch;
patch -p1 < ./0003-block-bfq-boost-throughput-by-extending-queue-mergin.patch;
patch -p1 < ./0003-block-bfq-boost-throughput-by-extending-queue-mergin.patch;
fi
fi
patch -p1 < ./0004-block-bfq-check-waker-only-for-queues-with-no-in-fli.patch;
patch -p1 < ./0004-block-bfq-check-waker-only-for-queues-with-no-in-fli.patch;
patch -p1 < ./0005-block-Do-not-pull-requests-from-the-scheduler-when-w.patch;
patch -p1 < ./000
patch -p1 < ./0006-block-Remove-unnecessary-elevator-operation-checks.patch;
patch -p1 < ./0007-bfq-Remove-merged-request-already-in-bfq_requests_me.patch;
patch -p1 < ./0008-blk-Fix-lock-inversion-between-ioc-lock-and-bfqd-loc.patch;
patch -p1 < ./0009-block-bfq-remove-the-repeated-declaration.patch;
echo "*** Copying and applying block patches.. ✓";
cp -v ${LUCJAN_PATCH_PATH}/$KERNEL_BASE_VER/block-patches-v2/*.patch .;
patch -p1 < ./0001-block-patches.patch;
if ! [ ${KERNEL_TYPE} = "rt" ]; then
echo "*** Copying and applying btrfs patches.. ✓";