This commit is contained in:
P. Jung 2021-10-17 10:08:56 +00:00
parent d16b39bb04
commit 3a3a7c5b33
No known key found for this signature in database
GPG Key ID: AFC052D06215E148
2 changed files with 334 additions and 327 deletions

View File

@ -1,7 +1,7 @@
pkgbase = linux-cachyos pkgbase = linux-cachyos
pkgdesc = Linux cfs scheduler Kernel by CachyOS and with some other patches and other improvements pkgdesc = Linux cfs scheduler Kernel by CachyOS and with some other patches and other improvements
pkgver = 5.14.12 pkgver = 5.14.13
pkgrel = 2 pkgrel = 1
url = https://github.com/CachyOS/linux-cachyos url = https://github.com/CachyOS/linux-cachyos
arch = x86_64 arch = x86_64
arch = x86_64_v3 arch = x86_64_v3
@ -19,7 +19,7 @@ pkgbase = linux-cachyos
makedepends = tar makedepends = tar
makedepends = xz makedepends = xz
options = !strip options = !strip
source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.12.tar.xz source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.13.tar.xz
source = config source = config
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/0001-CK-TIMER.patch source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/0001-CK-TIMER.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/arch-patches-v10/0001-arch-patches.patch source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/arch-patches-v10/0001-arch-patches.patch
@ -51,7 +51,7 @@ pkgbase = linux-cachyos
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/0001-winesync.patch source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/0001-winesync.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/0001-v4l2loopback.patch source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14/0001-v4l2loopback.patch
source = auto-cpu-optimization.sh source = auto-cpu-optimization.sh
md5sums = a52286fe206a3f7664ca5a6c5995b9ed md5sums = dd8c7efa62d69eb9a50806f2b0d6da01
md5sums = 6918c6961e213ae5ee0c9d374bb9a06b md5sums = 6918c6961e213ae5ee0c9d374bb9a06b
md5sums = 04c5865e765e07cff0649824c2a8d810 md5sums = 04c5865e765e07cff0649824c2a8d810
md5sums = 581faf85cd625c41bbdd0cadbd0e451e md5sums = 581faf85cd625c41bbdd0cadbd0e451e

653
PKGBUILD
View File

@ -108,12 +108,12 @@ _makenconfig=
if [ -n "$_use_llvm_lto" ]; then if [ -n "$_use_llvm_lto" ]; then
pkgbase=linux-cachyos-lto pkgbase=linux-cachyos-lto
else else
pkgbase=linux-cachyos pkgbase=linux-cachyos
fi fi
pkgver=5.14.12 pkgver=5.14.13
pkgrel=2 pkgrel=1
arch=(x86_64 x86_64_v3) arch=(x86_64 x86_64_v3)
pkgdesc='Linux cfs scheduler Kernel by CachyOS and with some other patches and other improvements' pkgdesc='Linux cfs scheduler Kernel by CachyOS and with some other patches and other improvements'
_gittag=v${pkgver%.*}-${pkgver##*.} _gittag=v${pkgver%.*}-${pkgver##*.}
@ -122,60 +122,59 @@ url="https://github.com/CachyOS/linux-cachyos"
license=('GPL2') license=('GPL2')
options=('!strip') options=('!strip')
makedepends=('kmod' 'bc' 'libelf' 'python-sphinx' 'python-sphinx_rtd_theme' makedepends=('kmod' 'bc' 'libelf' 'python-sphinx' 'python-sphinx_rtd_theme'
'graphviz' 'imagemagick' 'pahole' 'cpio' 'perl' 'tar' 'xz') 'graphviz' 'imagemagick' 'pahole' 'cpio' 'perl' 'tar' 'xz')
if [ -n "$_use_llvm_lto" ]; then if [ -n "$_use_llvm_lto" ]; then
makedepends+=(clang llvm lld python) makedepends+=(clang llvm lld python)
fi fi
_patchsource="https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14" _patchsource="https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.14"
source=("https://cdn.kernel.org/pub/linux/kernel/v${pkgver:0:1}.x/linux-${pkgver}.tar.xz" source=("https://cdn.kernel.org/pub/linux/kernel/v${pkgver:0:1}.x/linux-${pkgver}.tar.xz"
"config" "config"
# "${_patchsource}/arch-patches/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch" "${_patchsource}/0001-CK-TIMER.patch"
"${_patchsource}/0001-CK-TIMER.patch" "${_patchsource}/arch-patches-v10/0001-arch-patches.patch"
"${_patchsource}/arch-patches-v10/0001-arch-patches.patch" "${_patchsource}/0001-preempt-hz-cfs.patch"
"${_patchsource}/0001-preempt-hz-cfs.patch" "${_patchsource}/misc/amd/0006-amd-cppc.patch"
"${_patchsource}/misc/amd/0006-amd-cppc.patch" "${_patchsource}/misc/0008-remove-LightNVM.patch"
"${_patchsource}/misc/0008-remove-LightNVM.patch" "${_patchsource}/ll-patches/0004-mm-set-8-megabytes-for-address_space-level-file-read.patch"
"${_patchsource}/ll-patches/0004-mm-set-8-megabytes-for-address_space-level-file-read.patch" "${_patchsource}/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch"
"${_patchsource}/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch" "${_patchsource}/bbr2-patches/0001-bbr2-5.14-introduce-BBRv2.patch"
"${_patchsource}/bbr2-patches/0001-bbr2-5.14-introduce-BBRv2.patch" "${_patchsource}/block-patches/0001-block-patches.patch"
"${_patchsource}/block-patches/0001-block-patches.patch" "${_patchsource}/btrfs-patches-v7/0001-btrfs-patches.patch"
"${_patchsource}/btrfs-patches-v7/0001-btrfs-patches.patch" "${_patchsource}/fixes-miscellaneous-v6/0001-fixes-miscellaneous.patch"
"${_patchsource}/fixes-miscellaneous-v6/0001-fixes-miscellaneous.patch" "${_patchsource}/futex-xanmod-patches-v2/0001-futex-resync-from-gitlab.collabora.com.patch"
"${_patchsource}/futex-xanmod-patches-v2/0001-futex-resync-from-gitlab.collabora.com.patch" "${_patchsource}/futex2-xanmod-patches-v2/0001-futex2-resync-from-gitlab.collabora.com.patch"
"${_patchsource}/futex2-xanmod-patches-v2/0001-futex2-resync-from-gitlab.collabora.com.patch" "${_patchsource}/ksmbd-patches-v18/0001-ksmbd-patches.patch"
"${_patchsource}/ksmbd-patches-v18/0001-ksmbd-patches.patch" "${_patchsource}/hwmon-patches-v5/0001-hwmon-patches.patch"
"${_patchsource}/hwmon-patches-v5/0001-hwmon-patches.patch" "${_patchsource}/lqx-patches/0001-lqx-patches.patch"
"${_patchsource}/lqx-patches/0001-lqx-patches.patch" "${_patchsource}/lrng-patches-v2/0001-lrng-patches.patch"
"${_patchsource}/lrng-patches-v2/0001-lrng-patches.patch" "${_patchsource}/lru-patches-v4/0001-lru-patches.patch"
"${_patchsource}/lru-patches-v4/0001-lru-patches.patch" "${_patchsource}/pf-patches-v9/0001-pf-patches.patch"
"${_patchsource}/pf-patches-v9/0001-pf-patches.patch" "${_patchsource}/xanmod-patches-v2/0001-xanmod-patches.patch"
"${_patchsource}/xanmod-patches-v2/0001-xanmod-patches.patch" "${_patchsource}/zen-patches-v3/0001-zen-patches.patch"
"${_patchsource}/zen-patches-v3/0001-zen-patches.patch" "${_patchsource}/zstd-patches-v2/0001-zstd-patches.patch"
"${_patchsource}/zstd-patches-v2/0001-zstd-patches.patch" "${_patchsource}/security-patches/0001-security-patches.patch"
"${_patchsource}/security-patches/0001-security-patches.patch" "${_patchsource}/zstd-upstream-patches-v6/0001-zstd-upstream-patches.patch"
"${_patchsource}/zstd-upstream-patches-v6/0001-zstd-upstream-patches.patch" "${_patchsource}/ntfs3-patches-v14/0001-ntfs3-patches.patch"
"${_patchsource}/ntfs3-patches-v14/0001-ntfs3-patches.patch" "${_patchsource}/0001-ksm.patch"
"${_patchsource}/0001-ksm.patch" "${_patchsource}/0001-cpu-patches.patch"
"${_patchsource}/0001-cpu-patches.patch" "${_patchsource}/0001-winesync.patch"
"${_patchsource}/0001-winesync.patch" "${_patchsource}/0001-v4l2loopback.patch"
"${_patchsource}/0001-v4l2loopback.patch" "auto-cpu-optimization.sh"
"auto-cpu-optimization.sh" )
) if [ -n "$_use_cfi" ]; then
if [ -n "$_use_cfi" ]; then source+=("${_patchsource}/0002-clang-cfi.patch")
source+=("${_patchsource}/0002-clang-cfi.patch") fi
fi
if [ -n "$_use_pgo" ]; then if [ -n "$_use_pgo" ]; then
source+=("${_patchsource}/0001-PGO.patch") source+=("${_patchsource}/0001-PGO.patch")
fi fi
if [ -n "$_use_llvm_lto" ]; then if [ -n "$_use_llvm_lto" ]; then
BUILD_FLAGS=( BUILD_FLAGS=(
LLVM=1 LLVM=1
LLVM_IAS=1 LLVM_IAS=1
) )
fi fi
export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_USER=$pkgbase
@ -195,286 +194,294 @@ prepare() {
echo "${pkgbase#linux}" > localversion.20-pkgname echo "${pkgbase#linux}" > localversion.20-pkgname
local src local src
for src in "${source[@]}"; do for src in "${source[@]}"; do
src="${src%%::*}" src="${src%%::*}"
src="${src##*/}" src="${src##*/}"
[[ $src = *.patch ]] || continue [[ $src = *.patch ]] || continue
echo "Applying patch $src..." echo "Applying patch $src..."
patch -Np1 < "../$src" patch -Np1 < "../$src"
done done
echo "Setting config..." echo "Setting config..."
cp ../config .config cp ../config .config
if [ -n "$_use_cfi" ]; then if [ -n "$_use_cfi" ]; then
scripts/config --enable CONFIG_ARCH_SUPPORTS_CFI_CLANG scripts/config --enable CONFIG_ARCH_SUPPORTS_CFI_CLANG
scripts/config --enable CONFIG_CFI_CLANG scripts/config --enable CONFIG_CFI_CLANG
fi fi
if [ -n "$_use_pgo" ]; then if [ -n "$_use_pgo" ]; then
scripts/config --enable CONFIG_ARCH_SUPPORTS_PGO_CLANG scripts/config --enable CONFIG_ARCH_SUPPORTS_PGO_CLANG
scripts/config --enable DEBUG_FS scripts/config --enable DEBUG_FS
scripts/config --enable CONFIG_PGO_CLANG scripts/config --enable CONFIG_PGO_CLANG
fi fi
### Microarchitecture Optimization (GCC/CLANG) ### Microarchitecture Optimization (GCC/CLANG)
if [ -n "$_use_auto_optimization" ]; then if [ -n "$_use_auto_optimization" ]; then
"${srcdir}"/auto-cpu-optimization.sh "${srcdir}"/auto-cpu-optimization.sh
fi fi
if [ -n "$_use_optimization_select" ]; then if [ -n "$_use_optimization_select" ]; then
source "${startdir}"/configure source "${startdir}"/configure
cpu_arch cpu_arch
fi fi
### Optionally set tickrate to 2000HZ ### Optionally set tickrate to 2000HZ
if [ -n "$_2k_HZ_ticks" ]; then if [ -n "$_2k_HZ_ticks" ]; then
echo "Setting tick rate to 2k..." echo "Setting tick rate to 2k..."
scripts/config --disable CONFIG_HZ_300 scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_2000 scripts/config --enable CONFIG_HZ_2000
scripts/config --set-val CONFIG_HZ 2000 scripts/config --set-val CONFIG_HZ 2000
fi fi
### Optionally set tickrate to 1000 ### Optionally set tickrate to 1000
if [ -n "$_1k_HZ_ticks" ]; then if [ -n "$_1k_HZ_ticks" ]; then
echo "Setting tick rate to 1k..." echo "Setting tick rate to 1k..."
scripts/config --disable CONFIG_HZ_300 scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_1000 scripts/config --enable CONFIG_HZ_1000
scripts/config --set-val CONFIG_HZ 1000 scripts/config --set-val CONFIG_HZ 1000
fi fi
### Optionally set tickrate to 750HZ ### Optionally set tickrate to 750HZ
if [ -n "$_750_HZ_ticks" ]; then if [ -n "$_750_HZ_ticks" ]; then
echo "Setting tick rate to 750HZ..." echo "Setting tick rate to 750HZ..."
scripts/config --disable CONFIG_HZ_300 scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_750 scripts/config --enable CONFIG_HZ_750
scripts/config --set-val CONFIG_HZ 750 scripts/config --set-val CONFIG_HZ 750
fi fi
### Optionally set tickrate to 500HZ ### Optionally set tickrate to 750HZ
if [ -n "$_500_HZ_ticks" ]; then if [ -n "$_750_HZ_ticks" ]; then
echo "Setting tick rate to 500HZ..." echo "Setting tick rate to 750HZ..."
scripts/config --disable CONFIG_HZ_300 scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_500 scripts/config --enable CONFIG_HZ_750
scripts/config --set-val CONFIG_HZ 500 scripts/config --set-val CONFIG_HZ 750
fi fi
### Optionally disable NUMA for 64-bit kernels only ### Optionally set tickrate to 500HZ
# (x86 kernels do not support NUMA) if [ -n "$_500_HZ_ticks" ]; then
if [ -n "$_NUMAdisable" ]; then echo "Setting tick rate to 500HZ..."
echo "Disabling NUMA from kernel config..." scripts/config --disable CONFIG_HZ_300
scripts/config --disable CONFIG_NUMA scripts/config --enable CONFIG_HZ_500
fi scripts/config --set-val CONFIG_HZ 500
fi
if [ -n "$_fsync" ]; then ### Optionally disable NUMA for 64-bit kernels only
echo "Enable Fsync support" # (x86 kernels do not support NUMA)
scripts/config --enable CONFIG_FUTEX if [ -n "$_NUMAdisable" ]; then
scripts/config --enable CONFIG_FUTEX_PI echo "Disabling NUMA from kernel config..."
fi scripts/config --disable CONFIG_NUMA
fi
if [ -n "$_futex2" ]; then if [ -n "$_fsync" ]; then
echo "Enable Futex2 support" echo "Enable Fsync support"
scripts/config --enable CONFIG_FUTEX2 scripts/config --enable CONFIG_FUTEX
fi scripts/config --enable CONFIG_FUTEX_PI
fi
if [ -n "$_winesync" ]; then if [ -n "$_futex2" ]; then
echo "Enable winesync support" echo "Enable Futex2 support"
scripts/config --module CONFIG_WINESYNC scripts/config --enable CONFIG_FUTEX2
fi fi
### Disable MQ-Deadline I/O scheduler if [ -n "$_winesync" ]; then
if [ -n "$_mq_deadline_disable" ]; then echo "Enable winesync support"
echo "Disabling MQ-Deadline I/O scheduler..." scripts/config --module CONFIG_WINESYNC
scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE fi
fi
### Disable Kyber I/O scheduler ### Disable MQ-Deadline I/O scheduler
if [ -n "$_kyber_disable" ]; then if [ -n "$_mq_deadline_disable" ]; then
echo "Disabling Kyber I/O scheduler..." echo "Disabling MQ-Deadline I/O scheduler..."
scripts/config --disable CONFIG_MQ_IOSCHED_KYBER scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE
fi fi
### Enable protect file mappings under memory pressure ### Disable Kyber I/O scheduler
if [ -n "$_mm_protect" ]; then if [ -n "$_kyber_disable" ]; then
echo "Enabling protect file mappings under memory pressure..." echo "Disabling Kyber I/O scheduler..."
scripts/config --enable CONFIG_UNEVICTABLE_FILE scripts/config --disable CONFIG_MQ_IOSCHED_KYBER
scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144 fi
scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_MIN 131072
scripts/config --enable CONFIG_UNEVICTABLE_ANON
scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_LOW 65536
scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_MIN 32768
fi
### Enable multigenerational LRU ### Enable protect file mappings under memory pressure
if [ -n "$_lru_enable" ]; then if [ -n "$_mm_protect" ]; then
echo "Enabling multigenerational LRU..." echo "Enabling protect file mappings under memory pressure..."
scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG scripts/config --enable CONFIG_UNEVICTABLE_FILE
scripts/config --enable CONFIG_LRU_GEN scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144
scripts/config --set-val CONFIG_NR_LRU_GENS 7 scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_MIN 131072
scripts/config --set-val CONFIG_TIERS_PER_GEN 4 scripts/config --enable CONFIG_UNEVICTABLE_ANON
scripts/config --enable CONFIG_LRU_GEN_ENABLED scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_LOW 65536
scripts/config --disable CONFIG_LRU_GEN_STATS scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_MIN 32768
fi fi
### Enable Linux Random Number Generator ### Enable multigenerational LRU
if [ -n "$_lrng_enable" ]; then if [ -n "$_lru_enable" ]; then
echo "Enabling Linux Random Number Generator ..." echo "Enabling multigenerational LRU..."
scripts/config --enable CONFIG_LRNG scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG
scripts/config --enable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES scripts/config --enable CONFIG_LRU_GEN
scripts/config --set-val CONFIG_CONFIG_LRNG_OVERSAMPLE_ES_BITS 64 scripts/config --set-val CONFIG_NR_LRU_GENS 7
scripts/config --set-val CONFIG_LRNG_SEED_BUFFER_INIT_ADD_BITS 128 scripts/config --set-val CONFIG_TIERS_PER_GEN 4
scripts/config --enable CONFIG_LRNG_CONTINUOUS_COMPRESSION_ENABLED scripts/config --enable CONFIG_LRU_GEN_ENABLED
scripts/config --disable CONFIG_LRNG_CONTINUOUS_COMPRESSION_DISABLED scripts/config --disable CONFIG_LRU_GEN_STATS
scripts/config --enable CONFIG_LRNG_ENABLE_CONTINUOUS_COMPRESSION fi
scripts/config --enable CONFIG_LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_512
scripts/config --enable CONFIG_LRNG_COLLECTION_SIZE_1024
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_2048
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_4096
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_8192
scripts/config --set-val CONFIG_LRNG_COLLECTION_SIZE 1024
scripts/config --enable CONFIG_LRNG_HEALTH_TESTS
scripts/config --set-val CONFIG_LRNG_RCT_CUTOFF 31
scripts/config --set-val CONFIG_LRNG_APT_CUTOFF 325
scripts/config --set-val CONFIG_LRNG_IRQ_ENTROPY_RATE 256
scripts/config --enable CONFIG_LRNG_JENT
scripts/config --set-val CONFIG_LRNG_JENT_ENTROPY_RATE 16
scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8
scripts/config --enable CONFIG_LRNG_DRNG_SWITCH
scripts/config --enable CONFIG_LRNG_KCAPI_HASH
scripts/config --module CONFIG_LRNG_DRBG
scripts/config --module CONFIG_LRNG_KCAPI
scripts/config --enable CONFIG_LRNG_TESTING_MENU
scripts/config --disable CONFIG_LRNG_RAW_HIRES_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_JIFFIES_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_IRQ_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_IRQFLAGS_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_RETIP_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_REGS_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_ARRAY
scripts/config --disable CONFIG_LRNG_IRQ_PERF
scripts/config --disable CONFIG_LRNG_ACVT_HASH
scripts/config --enable CONFIG_LRNG_RUNTIME_ES_CONFIG
scripts/config --disable CONFIG_LRNG_RUNTIME_MAX_WO_RESEED_CONFIG
scripts/config --enable CONFIG_LRNG_SELFTEST
scripts/config --disable CONFIG_LRNG_SELFTEST_PANIC
fi
echo "Enable LLVM LTO"
if [ -n "$_use_llvm_lto" ]; then
scripts/config --disable CONFIG_LTO_NONE
fi
### Enable SMB3 Kernel Server ### Enable Linux Random Number Generator
if [ -n "$_ksmbd_enable" ]; then if [ -n "$_lrng_enable" ]; then
echo "Enabling SMB3 Kernel Server..." echo "Enabling Linux Random Number Generator ..."
scripts/config --module CONFIG_SMB_SERVER scripts/config --enable CONFIG_LRNG
scripts/config --enable CONFIG_SMB_SERVER_SMBDIRECT scripts/config --enable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES
scripts/config --enable CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN scripts/config --set-val CONFIG_CONFIG_LRNG_OVERSAMPLE_ES_BITS 64
scripts/config --enable CONFIG_SMB_SERVER_KERBEROS5 scripts/config --set-val CONFIG_LRNG_SEED_BUFFER_INIT_ADD_BITS 128
fi scripts/config --enable CONFIG_LRNG_CONTINUOUS_COMPRESSION_ENABLED
scripts/config --disable CONFIG_LRNG_CONTINUOUS_COMPRESSION_DISABLED
scripts/config --enable CONFIG_LRNG_ENABLE_CONTINUOUS_COMPRESSION
scripts/config --enable CONFIG_LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_512
scripts/config --enable CONFIG_LRNG_COLLECTION_SIZE_1024
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_2048
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_4096
scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_8192
scripts/config --set-val CONFIG_LRNG_COLLECTION_SIZE 1024
scripts/config --enable CONFIG_LRNG_HEALTH_TESTS
scripts/config --set-val CONFIG_LRNG_RCT_CUTOFF 31
scripts/config --set-val CONFIG_LRNG_APT_CUTOFF 325
scripts/config --set-val CONFIG_LRNG_IRQ_ENTROPY_RATE 256
scripts/config --enable CONFIG_LRNG_JENT
scripts/config --set-val CONFIG_LRNG_JENT_ENTROPY_RATE 16
scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8
scripts/config --enable CONFIG_LRNG_DRNG_SWITCH
scripts/config --enable CONFIG_LRNG_KCAPI_HASH
scripts/config --module CONFIG_LRNG_DRBG
scripts/config --module CONFIG_LRNG_KCAPI
scripts/config --enable CONFIG_LRNG_TESTING_MENU
scripts/config --disable CONFIG_LRNG_RAW_HIRES_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_JIFFIES_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_IRQ_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_IRQFLAGS_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_RETIP_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_REGS_ENTROPY
scripts/config --disable CONFIG_LRNG_RAW_ARRAY
scripts/config --disable CONFIG_LRNG_IRQ_PERF
scripts/config --disable CONFIG_LRNG_ACVT_HASH
scripts/config --enable CONFIG_LRNG_RUNTIME_ES_CONFIG
scripts/config --disable CONFIG_LRNG_RUNTIME_MAX_WO_RESEED_CONFIG
scripts/config --enable CONFIG_LRNG_SELFTEST
scripts/config --disable CONFIG_LRNG_SELFTEST_PANIC
fi
echo "Enable LLVM LTO"
if [ -n "$_use_llvm_lto" ]; then
scripts/config --disable CONFIG_LTO_NONE
fi
### Selecting the ZSTD compression level ### Enable SMB3 Kernel Server
if [ "$_zstd_level" = "ultra" ]; then if [ -n "$_ksmbd_enable" ]; then
echo "Enabling highest ZSTD compression ratio..." echo "Enabling SMB3 Kernel Server..."
scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19 scripts/config --module CONFIG_SMB_SERVER
scripts/config --enable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA scripts/config --enable CONFIG_SMB_SERVER_SMBDIRECT
elif [ "$_zstd_level" = "normal" ]; then scripts/config --enable CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN
echo "Enabling standard ZSTD compression ratio..." scripts/config --enable CONFIG_SMB_SERVER_KERBEROS5
scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19 fi
scripts/config --disable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA
else
if [ -n "$_zstd_level" ]; then
error "The value $_zstd_level is invalid. Choose the correct one again."
else
error "The value is empty. Choose the correct one again."
fi
error "Selecting the ZSTD compression level failed!"
exit
fi
### Selecting the ZSTD module compression level ### Selecting the ZSTD compression level
if [ "$_zstd_module_level" = "ultra" ]; then if [ "$_zstd_level" = "ultra" ]; then
echo "Enabling highest ZSTD module compression ratio..." echo "Enabling highest ZSTD compression ratio..."
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19 scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19
scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA scripts/config --enable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL_ULTRA 22 elif [ "$_zstd_level" = "normal" ]; then
elif [ "$_zstd_module_level" = "normal" ]; then echo "Enabling standard ZSTD compression ratio..."
echo "Enabling standard ZSTD module compression ratio..." scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19 scripts/config --disable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA
scripts/config --disable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA else
else if [ -n "$_zstd_level" ]; then
if [ -n "$_zstd_module_level" ]; then error "The value $_zstd_level is invalid. Choose the correct one again."
error "The value $_zstd_module_level is invalid. Choose the correct one again." else
else error "The value is empty. Choose the correct one again."
error "The value is empty. Choose the correct one again."
fi
error "Selecting the ZSTD module compression level failed!"
exit
fi fi
error "Selecting the ZSTD compression level failed!"
exit
fi
echo "Disabling TCP_CONG_CUBIC..." ### Selecting the ZSTD module compression level
scripts/config --module CONFIG_TCP_CONG_CUBIC if [ "$_zstd_module_level" = "ultra" ]; then
scripts/config --disable CONFIG_DEFAULT_CUBIC echo "Enabling highest ZSTD module compression ratio..."
echo "Enabling TCP_CONG_BBR2..." scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19
scripts/config --enable CONFIG_TCP_CONG_BBR2 scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA
scripts/config --enable CONFIG_DEFAULT_BBR2 scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL_ULTRA 22
scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2 elif [ "$_zstd_module_level" = "normal" ]; then
echo "Enabling FULLCONENAT..." echo "Enabling standard ZSTD module compression ratio..."
scripts/config --module CONFIG_IP_NF_TARGET_FULLCONENAT scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19
scripts/config --module CONFIG_NETFILTER_XT_TARGET_FULLCONENAT scripts/config --disable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA
echo "Setting performance governor..." else
scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if [ -n "$_zstd_module_level" ]; then
scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE error "The value $_zstd_module_level is invalid. Choose the correct one again."
scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND else
scripts/config --enable CONFIG_CPU_FREQ_GOV_CONSERVATIVE error "The value is empty. Choose the correct one again."
scripts/config --enable CONFIG_CPU_FREQ_GOV_USERSPACE
scripts/config --enable CONFIG_CPU_FREQ_GOV_SCHEDUTIL
echo "Enable AMD PSTATE v3 driver"
scripts/config --enable CONFIG_X86_AMD_PSTATE
### Optionally disable NUMA for 64-bit kernels only
# (x86 kernels do not support NUMA)
if [ -n "$_NUMAdisable" ]; then
echo "Disabling NUMA from kernel config..."
scripts/config --disable CONFIG_NUMA
fi
### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
if [ -n "$_use_current" ]; then
if [[ -s /proc/config.gz ]]; then
echo "Extracting config from /proc/config.gz..."
# modprobe configs
zcat /proc/config.gz > ./.config
else
warning "Your kernel was not compiled with IKCONFIG_PROC!"
warning "You cannot read the current config!"
warning "Aborting!"
exit
fi
fi fi
error "Selecting the ZSTD module compression level failed!"
exit
fi
### Optionally load needed modules for the make localmodconfig echo "Disabling TCP_CONG_CUBIC..."
# See https://aur.archlinux.org/packages/modprobed-db scripts/config --module CONFIG_TCP_CONG_CUBIC
if [ -n "$_localmodcfg" ]; then scripts/config --disable CONFIG_DEFAULT_CUBIC
if [ -e "$HOME"/.config/modprobed.db ]; then echo "Enabling TCP_CONG_BBR2..."
echo "Running Steven Rostedt's make localmodconfig now" scripts/config --enable CONFIG_TCP_CONG_BBR2
make ${BUILD_FLAGS[*]} LSMOD="$HOME"/.config/modprobed.db localmodconfig scripts/config --enable CONFIG_DEFAULT_BBR2
else scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2
echo "No modprobed.db data found" echo "Enabling FULLCONENAT..."
exit scripts/config --module CONFIG_IP_NF_TARGET_FULLCONENAT
fi scripts/config --module CONFIG_NETFILTER_XT_TARGET_FULLCONENAT
echo "Setting performance governor..."
scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND
scripts/config --enable CONFIG_CPU_FREQ_GOV_CONSERVATIVE
scripts/config --enable CONFIG_CPU_FREQ_GOV_USERSPACE
scripts/config --enable CONFIG_CPU_FREQ_GOV_SCHEDUTIL
echo "Enable AMD PSTATE v3 driver"
scripts/config --enable CONFIG_X86_AMD_PSTATE
### Optionally disable NUMA for 64-bit kernels only
# (x86 kernels do not support NUMA)
if [ -n "$_NUMAdisable" ]; then
echo "Disabling NUMA from kernel config..."
scripts/config --disable CONFIG_NUMA
fi
### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
if [ -n "$_use_current" ]; then
if [[ -s /proc/config.gz ]]; then
echo "Extracting config from /proc/config.gz..."
# modprobe configs
zcat /proc/config.gz > ./.config
else
warning "Your kernel was not compiled with IKCONFIG_PROC!"
warning "You cannot read the current config!"
warning "Aborting!"
exit
fi fi
fi
echo "Applying default config..." ### Optionally load needed modules for the make localmodconfig
make ${BUILD_FLAGS[*]} olddefconfig # See https://aur.archlinux.org/packages/modprobed-db
make ${BUILD_FLAGS[*]} -s kernelrelease > version if [ -n "$_localmodcfg" ]; then
echo "Prepared $pkgbase version $(<version)" if [ -e "$HOME"/.config/modprobed.db ]; then
echo "Running Steven Rostedt's make localmodconfig now"
make ${BUILD_FLAGS[*]} LSMOD="$HOME"/.config/modprobed.db localmodconfig
else
echo "No modprobed.db data found"
exit
fi
fi
[[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig echo "Applying default config..."
make ${BUILD_FLAGS[*]} olddefconfig
make ${BUILD_FLAGS[*]} -s kernelrelease > version
echo "Prepared $pkgbase version $(<version)"
### Save configuration for later reuse [[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig
cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}"
### Save configuration for later reuse
cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}"
} }
build() { build() {
@ -482,16 +489,16 @@ build() {
echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Build failed! \E[0m" echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Build failed! \E[0m"
exit 1 exit 1
) )
make ${BUILD_FLAGS[*]} -j$(nproc) all make ${BUILD_FLAGS[*]} -j$(nproc) all
} }
_package() { _package() {
pkgdesc="The $pkgdesc kernel and modules" pkgdesc="The $pkgdesc kernel and modules"
depends=('coreutils' 'kmod' 'initramfs') depends=('coreutils' 'kmod' 'initramfs')
optdepends=('crda: to set the correct wireless channels of your country' optdepends=('crda: to set the correct wireless channels of your country'
'linux-firmware: firmware images needed for some devices' 'linux-firmware: firmware images needed for some devices'
'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig') 'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig')
provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE)
cd "${srcdir:?}/linux-${pkgver}" || ( cd "${srcdir:?}/linux-${pkgver}" || (
echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Package linux kernel failed! \E[0m" echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Package linux kernel failed! \E[0m"
@ -584,14 +591,14 @@ _package-headers() {
local file local file
while read -rd '' file; do while read -rd '' file; do
case "$(file -bi "$file")" in case "$(file -bi "$file")" in
application/x-sharedlib\;*) # Libraries (.so) application/x-sharedlib\;*) # Libraries (.so)
strip -v "${STRIP_SHARED}" "$file" ;; strip -v "${STRIP_SHARED}" "$file" ;;
application/x-archive\;*) # Libraries (.a) application/x-archive\;*) # Libraries (.a)
strip -v "${STRIP_STATIC}" "$file" ;; strip -v "${STRIP_STATIC}" "$file" ;;
application/x-executable\;*) # Binaries application/x-executable\;*) # Binaries
strip -v "${STRIP_BINARIES}" "$file" ;; strip -v "${STRIP_BINARIES}" "$file" ;;
application/x-pie-executable\;*) # Relocatable binaries application/x-pie-executable\;*) # Relocatable binaries
strip -v "${STRIP_SHARED}" "$file" ;; strip -v "${STRIP_SHARED}" "$file" ;;
esac esac
done < <(find "${builddir}" -type f -perm -u+x ! -name vmlinux -print0) done < <(find "${builddir}" -type f -perm -u+x ! -name vmlinux -print0)
@ -604,7 +611,7 @@ _package-headers() {
} }
md5sums=('a52286fe206a3f7664ca5a6c5995b9ed' md5sums=('dd8c7efa62d69eb9a50806f2b0d6da01'
'6918c6961e213ae5ee0c9d374bb9a06b' '6918c6961e213ae5ee0c9d374bb9a06b'
'04c5865e765e07cff0649824c2a8d810' '04c5865e765e07cff0649824c2a8d810'
'581faf85cd625c41bbdd0cadbd0e451e' '581faf85cd625c41bbdd0cadbd0e451e'
@ -637,9 +644,9 @@ md5sums=('a52286fe206a3f7664ca5a6c5995b9ed'
'95eb4457f95f3f8dd153983612ee65c0' '95eb4457f95f3f8dd153983612ee65c0'
'21c98f19e883879dd3336c1fa143fd31') '21c98f19e883879dd3336c1fa143fd31')
pkgname=("$pkgbase" "$pkgbase-headers" ) pkgname=("$pkgbase" "$pkgbase-headers" )
for _p in "${pkgname[@]}"; do for _p in "${pkgname[@]}"; do
eval "package_$_p() { eval "package_$_p() {
$(declare -f "_package${_p#$pkgbase}") $(declare -f "_package${_p#$pkgbase}")
_package${_p#$pkgbase} _package${_p#$pkgbase}
}" }"
done done