changes in build_kernel.sh

Created Diff never expires
#!/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.. ✓";