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
pkgdesc = Linux cfs scheduler Kernel by CachyOS and with some other patches and other improvements
pkgver = 5.14.12
pkgrel = 2
pkgver = 5.14.13
pkgrel = 1
url = https://github.com/CachyOS/linux-cachyos
arch = x86_64
arch = x86_64_v3
@ -19,7 +19,7 @@ pkgbase = linux-cachyos
makedepends = tar
makedepends = xz
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 = 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
@ -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-v4l2loopback.patch
source = auto-cpu-optimization.sh
md5sums = a52286fe206a3f7664ca5a6c5995b9ed
md5sums = dd8c7efa62d69eb9a50806f2b0d6da01
md5sums = 6918c6961e213ae5ee0c9d374bb9a06b
md5sums = 04c5865e765e07cff0649824c2a8d810
md5sums = 581faf85cd625c41bbdd0cadbd0e451e

653
PKGBUILD
View File

@ -108,12 +108,12 @@ _makenconfig=
if [ -n "$_use_llvm_lto" ]; then
pkgbase=linux-cachyos-lto
pkgbase=linux-cachyos-lto
else
pkgbase=linux-cachyos
pkgbase=linux-cachyos
fi
pkgver=5.14.12
pkgrel=2
pkgver=5.14.13
pkgrel=1
arch=(x86_64 x86_64_v3)
pkgdesc='Linux cfs scheduler Kernel by CachyOS and with some other patches and other improvements'
_gittag=v${pkgver%.*}-${pkgver##*.}
@ -122,60 +122,59 @@ url="https://github.com/CachyOS/linux-cachyos"
license=('GPL2')
options=('!strip')
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
makedepends+=(clang llvm lld python)
makedepends+=(clang llvm lld python)
fi
_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"
"config"
# "${_patchsource}/arch-patches/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch"
"${_patchsource}/0001-CK-TIMER.patch"
"${_patchsource}/arch-patches-v10/0001-arch-patches.patch"
"${_patchsource}/0001-preempt-hz-cfs.patch"
"${_patchsource}/misc/amd/0006-amd-cppc.patch"
"${_patchsource}/misc/0008-remove-LightNVM.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}/bbr2-patches/0001-bbr2-5.14-introduce-BBRv2.patch"
"${_patchsource}/block-patches/0001-block-patches.patch"
"${_patchsource}/btrfs-patches-v7/0001-btrfs-patches.patch"
"${_patchsource}/fixes-miscellaneous-v6/0001-fixes-miscellaneous.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}/ksmbd-patches-v18/0001-ksmbd-patches.patch"
"${_patchsource}/hwmon-patches-v5/0001-hwmon-patches.patch"
"${_patchsource}/lqx-patches/0001-lqx-patches.patch"
"${_patchsource}/lrng-patches-v2/0001-lrng-patches.patch"
"${_patchsource}/lru-patches-v4/0001-lru-patches.patch"
"${_patchsource}/pf-patches-v9/0001-pf-patches.patch"
"${_patchsource}/xanmod-patches-v2/0001-xanmod-patches.patch"
"${_patchsource}/zen-patches-v3/0001-zen-patches.patch"
"${_patchsource}/zstd-patches-v2/0001-zstd-patches.patch"
"${_patchsource}/security-patches/0001-security-patches.patch"
"${_patchsource}/zstd-upstream-patches-v6/0001-zstd-upstream-patches.patch"
"${_patchsource}/ntfs3-patches-v14/0001-ntfs3-patches.patch"
"${_patchsource}/0001-ksm.patch"
"${_patchsource}/0001-cpu-patches.patch"
"${_patchsource}/0001-winesync.patch"
"${_patchsource}/0001-v4l2loopback.patch"
"auto-cpu-optimization.sh"
)
if [ -n "$_use_cfi" ]; then
source+=("${_patchsource}/0002-clang-cfi.patch")
fi
"config"
"${_patchsource}/0001-CK-TIMER.patch"
"${_patchsource}/arch-patches-v10/0001-arch-patches.patch"
"${_patchsource}/0001-preempt-hz-cfs.patch"
"${_patchsource}/misc/amd/0006-amd-cppc.patch"
"${_patchsource}/misc/0008-remove-LightNVM.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}/bbr2-patches/0001-bbr2-5.14-introduce-BBRv2.patch"
"${_patchsource}/block-patches/0001-block-patches.patch"
"${_patchsource}/btrfs-patches-v7/0001-btrfs-patches.patch"
"${_patchsource}/fixes-miscellaneous-v6/0001-fixes-miscellaneous.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}/ksmbd-patches-v18/0001-ksmbd-patches.patch"
"${_patchsource}/hwmon-patches-v5/0001-hwmon-patches.patch"
"${_patchsource}/lqx-patches/0001-lqx-patches.patch"
"${_patchsource}/lrng-patches-v2/0001-lrng-patches.patch"
"${_patchsource}/lru-patches-v4/0001-lru-patches.patch"
"${_patchsource}/pf-patches-v9/0001-pf-patches.patch"
"${_patchsource}/xanmod-patches-v2/0001-xanmod-patches.patch"
"${_patchsource}/zen-patches-v3/0001-zen-patches.patch"
"${_patchsource}/zstd-patches-v2/0001-zstd-patches.patch"
"${_patchsource}/security-patches/0001-security-patches.patch"
"${_patchsource}/zstd-upstream-patches-v6/0001-zstd-upstream-patches.patch"
"${_patchsource}/ntfs3-patches-v14/0001-ntfs3-patches.patch"
"${_patchsource}/0001-ksm.patch"
"${_patchsource}/0001-cpu-patches.patch"
"${_patchsource}/0001-winesync.patch"
"${_patchsource}/0001-v4l2loopback.patch"
"auto-cpu-optimization.sh"
)
if [ -n "$_use_cfi" ]; then
source+=("${_patchsource}/0002-clang-cfi.patch")
fi
if [ -n "$_use_pgo" ]; then
source+=("${_patchsource}/0001-PGO.patch")
fi
if [ -n "$_use_pgo" ]; then
source+=("${_patchsource}/0001-PGO.patch")
fi
if [ -n "$_use_llvm_lto" ]; then
if [ -n "$_use_llvm_lto" ]; then
BUILD_FLAGS=(
LLVM=1
LLVM_IAS=1
)
fi
LLVM=1
LLVM_IAS=1
)
fi
export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase
@ -195,286 +194,294 @@ prepare() {
echo "${pkgbase#linux}" > localversion.20-pkgname
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
local src
for src in "${source[@]}"; do
src="${src%%::*}"
src="${src##*/}"
[[ $src = *.patch ]] || continue
echo "Applying patch $src..."
patch -Np1 < "../$src"
done
echo "Setting config..."
cp ../config .config
echo "Setting config..."
cp ../config .config
if [ -n "$_use_cfi" ]; then
scripts/config --enable CONFIG_ARCH_SUPPORTS_CFI_CLANG
scripts/config --enable CONFIG_CFI_CLANG
fi
if [ -n "$_use_cfi" ]; then
scripts/config --enable CONFIG_ARCH_SUPPORTS_CFI_CLANG
scripts/config --enable CONFIG_CFI_CLANG
fi
if [ -n "$_use_pgo" ]; then
scripts/config --enable CONFIG_ARCH_SUPPORTS_PGO_CLANG
scripts/config --enable DEBUG_FS
scripts/config --enable CONFIG_PGO_CLANG
fi
if [ -n "$_use_pgo" ]; then
scripts/config --enable CONFIG_ARCH_SUPPORTS_PGO_CLANG
scripts/config --enable DEBUG_FS
scripts/config --enable CONFIG_PGO_CLANG
fi
### Microarchitecture Optimization (GCC/CLANG)
if [ -n "$_use_auto_optimization" ]; then
"${srcdir}"/auto-cpu-optimization.sh
fi
if [ -n "$_use_optimization_select" ]; then
source "${startdir}"/configure
cpu_arch
fi
### Optionally set tickrate to 2000HZ
if [ -n "$_2k_HZ_ticks" ]; then
echo "Setting tick rate to 2k..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_2000
scripts/config --set-val CONFIG_HZ 2000
fi
### Microarchitecture Optimization (GCC/CLANG)
if [ -n "$_use_auto_optimization" ]; then
"${srcdir}"/auto-cpu-optimization.sh
fi
if [ -n "$_use_optimization_select" ]; then
source "${startdir}"/configure
cpu_arch
fi
### Optionally set tickrate to 2000HZ
if [ -n "$_2k_HZ_ticks" ]; then
echo "Setting tick rate to 2k..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_2000
scripts/config --set-val CONFIG_HZ 2000
fi
### Optionally set tickrate to 1000
if [ -n "$_1k_HZ_ticks" ]; then
echo "Setting tick rate to 1k..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_1000
scripts/config --set-val CONFIG_HZ 1000
fi
### Optionally set tickrate to 1000
if [ -n "$_1k_HZ_ticks" ]; then
echo "Setting tick rate to 1k..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_1000
scripts/config --set-val CONFIG_HZ 1000
fi
### Optionally set tickrate to 750HZ
if [ -n "$_750_HZ_ticks" ]; then
echo "Setting tick rate to 750HZ..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_750
scripts/config --set-val CONFIG_HZ 750
fi
### Optionally set tickrate to 750HZ
if [ -n "$_750_HZ_ticks" ]; then
echo "Setting tick rate to 750HZ..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_750
scripts/config --set-val CONFIG_HZ 750
fi
### Optionally set tickrate to 500HZ
if [ -n "$_500_HZ_ticks" ]; then
echo "Setting tick rate to 500HZ..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_500
scripts/config --set-val CONFIG_HZ 500
fi
### Optionally set tickrate to 750HZ
if [ -n "$_750_HZ_ticks" ]; then
echo "Setting tick rate to 750HZ..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_750
scripts/config --set-val CONFIG_HZ 750
fi
### 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 set tickrate to 500HZ
if [ -n "$_500_HZ_ticks" ]; then
echo "Setting tick rate to 500HZ..."
scripts/config --disable CONFIG_HZ_300
scripts/config --enable CONFIG_HZ_500
scripts/config --set-val CONFIG_HZ 500
fi
if [ -n "$_fsync" ]; then
echo "Enable Fsync support"
scripts/config --enable CONFIG_FUTEX
scripts/config --enable CONFIG_FUTEX_PI
fi
### 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
if [ -n "$_futex2" ]; then
echo "Enable Futex2 support"
scripts/config --enable CONFIG_FUTEX2
fi
if [ -n "$_fsync" ]; then
echo "Enable Fsync support"
scripts/config --enable CONFIG_FUTEX
scripts/config --enable CONFIG_FUTEX_PI
fi
if [ -n "$_winesync" ]; then
echo "Enable winesync support"
scripts/config --module CONFIG_WINESYNC
fi
if [ -n "$_futex2" ]; then
echo "Enable Futex2 support"
scripts/config --enable CONFIG_FUTEX2
fi
### Disable MQ-Deadline I/O scheduler
if [ -n "$_mq_deadline_disable" ]; then
echo "Disabling MQ-Deadline I/O scheduler..."
scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE
fi
if [ -n "$_winesync" ]; then
echo "Enable winesync support"
scripts/config --module CONFIG_WINESYNC
fi
### Disable Kyber I/O scheduler
if [ -n "$_kyber_disable" ]; then
echo "Disabling Kyber I/O scheduler..."
scripts/config --disable CONFIG_MQ_IOSCHED_KYBER
fi
### Disable MQ-Deadline I/O scheduler
if [ -n "$_mq_deadline_disable" ]; then
echo "Disabling MQ-Deadline I/O scheduler..."
scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE
fi
### Enable protect file mappings under memory pressure
if [ -n "$_mm_protect" ]; then
echo "Enabling protect file mappings under memory pressure..."
scripts/config --enable CONFIG_UNEVICTABLE_FILE
scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144
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
### Disable Kyber I/O scheduler
if [ -n "$_kyber_disable" ]; then
echo "Disabling Kyber I/O scheduler..."
scripts/config --disable CONFIG_MQ_IOSCHED_KYBER
fi
### Enable multigenerational LRU
if [ -n "$_lru_enable" ]; then
echo "Enabling multigenerational LRU..."
scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG
scripts/config --enable CONFIG_LRU_GEN
scripts/config --set-val CONFIG_NR_LRU_GENS 7
scripts/config --set-val CONFIG_TIERS_PER_GEN 4
scripts/config --enable CONFIG_LRU_GEN_ENABLED
scripts/config --disable CONFIG_LRU_GEN_STATS
fi
### Enable protect file mappings under memory pressure
if [ -n "$_mm_protect" ]; then
echo "Enabling protect file mappings under memory pressure..."
scripts/config --enable CONFIG_UNEVICTABLE_FILE
scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144
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 Linux Random Number Generator
if [ -n "$_lrng_enable" ]; then
echo "Enabling Linux Random Number Generator ..."
scripts/config --enable CONFIG_LRNG
scripts/config --enable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES
scripts/config --set-val CONFIG_CONFIG_LRNG_OVERSAMPLE_ES_BITS 64
scripts/config --set-val CONFIG_LRNG_SEED_BUFFER_INIT_ADD_BITS 128
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
### Enable multigenerational LRU
if [ -n "$_lru_enable" ]; then
echo "Enabling multigenerational LRU..."
scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG
scripts/config --enable CONFIG_LRU_GEN
scripts/config --set-val CONFIG_NR_LRU_GENS 7
scripts/config --set-val CONFIG_TIERS_PER_GEN 4
scripts/config --enable CONFIG_LRU_GEN_ENABLED
scripts/config --disable CONFIG_LRU_GEN_STATS
fi
### Enable SMB3 Kernel Server
if [ -n "$_ksmbd_enable" ]; then
echo "Enabling SMB3 Kernel Server..."
scripts/config --module CONFIG_SMB_SERVER
scripts/config --enable CONFIG_SMB_SERVER_SMBDIRECT
scripts/config --enable CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN
scripts/config --enable CONFIG_SMB_SERVER_KERBEROS5
fi
### Enable Linux Random Number Generator
if [ -n "$_lrng_enable" ]; then
echo "Enabling Linux Random Number Generator ..."
scripts/config --enable CONFIG_LRNG
scripts/config --enable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES
scripts/config --set-val CONFIG_CONFIG_LRNG_OVERSAMPLE_ES_BITS 64
scripts/config --set-val CONFIG_LRNG_SEED_BUFFER_INIT_ADD_BITS 128
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
if [ "$_zstd_level" = "ultra" ]; then
echo "Enabling highest ZSTD compression ratio..."
scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19
scripts/config --enable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA
elif [ "$_zstd_level" = "normal" ]; then
echo "Enabling standard ZSTD compression ratio..."
scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19
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
### Enable SMB3 Kernel Server
if [ -n "$_ksmbd_enable" ]; then
echo "Enabling SMB3 Kernel Server..."
scripts/config --module CONFIG_SMB_SERVER
scripts/config --enable CONFIG_SMB_SERVER_SMBDIRECT
scripts/config --enable CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN
scripts/config --enable CONFIG_SMB_SERVER_KERBEROS5
fi
### Selecting the ZSTD module compression level
if [ "$_zstd_module_level" = "ultra" ]; then
echo "Enabling highest ZSTD module compression ratio..."
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19
scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL_ULTRA 22
elif [ "$_zstd_module_level" = "normal" ]; then
echo "Enabling standard ZSTD module compression ratio..."
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19
scripts/config --disable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA
else
if [ -n "$_zstd_module_level" ]; then
error "The value $_zstd_module_level is invalid. Choose the correct one again."
else
error "The value is empty. Choose the correct one again."
fi
error "Selecting the ZSTD module compression level failed!"
exit
### Selecting the ZSTD compression level
if [ "$_zstd_level" = "ultra" ]; then
echo "Enabling highest ZSTD compression ratio..."
scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19
scripts/config --enable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA
elif [ "$_zstd_level" = "normal" ]; then
echo "Enabling standard ZSTD compression ratio..."
scripts/config --set-val CONFIG_KERNEL_ZSTD_LEVEL 19
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
echo "Disabling TCP_CONG_CUBIC..."
scripts/config --module CONFIG_TCP_CONG_CUBIC
scripts/config --disable CONFIG_DEFAULT_CUBIC
echo "Enabling TCP_CONG_BBR2..."
scripts/config --enable CONFIG_TCP_CONG_BBR2
scripts/config --enable CONFIG_DEFAULT_BBR2
scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2
echo "Enabling FULLCONENAT..."
scripts/config --module CONFIG_IP_NF_TARGET_FULLCONENAT
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
### Selecting the ZSTD module compression level
if [ "$_zstd_module_level" = "ultra" ]; then
echo "Enabling highest ZSTD module compression ratio..."
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19
scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL_ULTRA 22
elif [ "$_zstd_module_level" = "normal" ]; then
echo "Enabling standard ZSTD module compression ratio..."
scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19
scripts/config --disable CONFIG_MODULE_COMPRESS_ZSTD_ULTRA
else
if [ -n "$_zstd_module_level" ]; then
error "The value $_zstd_module_level is invalid. Choose the correct one again."
else
error "The value is empty. Choose the correct one again."
fi
error "Selecting the ZSTD module compression level failed!"
exit
fi
### Optionally load needed modules for the make localmodconfig
# See https://aur.archlinux.org/packages/modprobed-db
if [ -n "$_localmodcfg" ]; then
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
echo "Disabling TCP_CONG_CUBIC..."
scripts/config --module CONFIG_TCP_CONG_CUBIC
scripts/config --disable CONFIG_DEFAULT_CUBIC
echo "Enabling TCP_CONG_BBR2..."
scripts/config --enable CONFIG_TCP_CONG_BBR2
scripts/config --enable CONFIG_DEFAULT_BBR2
scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2
echo "Enabling FULLCONENAT..."
scripts/config --module CONFIG_IP_NF_TARGET_FULLCONENAT
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
echo "Applying default config..."
make ${BUILD_FLAGS[*]} olddefconfig
make ${BUILD_FLAGS[*]} -s kernelrelease > version
echo "Prepared $pkgbase version $(<version)"
### Optionally load needed modules for the make localmodconfig
# See https://aur.archlinux.org/packages/modprobed-db
if [ -n "$_localmodcfg" ]; then
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
cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}"
[[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig
### Save configuration for later reuse
cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}"
}
build() {
@ -482,16 +489,16 @@ build() {
echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Build failed! \E[0m"
exit 1
)
make ${BUILD_FLAGS[*]} -j$(nproc) all
make ${BUILD_FLAGS[*]} -j$(nproc) all
}
_package() {
pkgdesc="The $pkgdesc kernel and modules"
depends=('coreutils' 'kmod' 'initramfs')
optdepends=('crda: to set the correct wireless channels of your country'
'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')
provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE)
pkgdesc="The $pkgdesc kernel and modules"
depends=('coreutils' 'kmod' 'initramfs')
optdepends=('crda: to set the correct wireless channels of your country'
'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')
provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE)
cd "${srcdir:?}/linux-${pkgver}" || (
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
while read -rd '' file; do
case "$(file -bi "$file")" in
application/x-sharedlib\;*) # Libraries (.so)
strip -v "${STRIP_SHARED}" "$file" ;;
application/x-archive\;*) # Libraries (.a)
strip -v "${STRIP_STATIC}" "$file" ;;
application/x-executable\;*) # Binaries
strip -v "${STRIP_BINARIES}" "$file" ;;
application/x-pie-executable\;*) # Relocatable binaries
strip -v "${STRIP_SHARED}" "$file" ;;
application/x-sharedlib\;*) # Libraries (.so)
strip -v "${STRIP_SHARED}" "$file" ;;
application/x-archive\;*) # Libraries (.a)
strip -v "${STRIP_STATIC}" "$file" ;;
application/x-executable\;*) # Binaries
strip -v "${STRIP_BINARIES}" "$file" ;;
application/x-pie-executable\;*) # Relocatable binaries
strip -v "${STRIP_SHARED}" "$file" ;;
esac
done < <(find "${builddir}" -type f -perm -u+x ! -name vmlinux -print0)
@ -604,7 +611,7 @@ _package-headers() {
}
md5sums=('a52286fe206a3f7664ca5a6c5995b9ed'
md5sums=('dd8c7efa62d69eb9a50806f2b0d6da01'
'6918c6961e213ae5ee0c9d374bb9a06b'
'04c5865e765e07cff0649824c2a8d810'
'581faf85cd625c41bbdd0cadbd0e451e'
@ -637,9 +644,9 @@ md5sums=('a52286fe206a3f7664ca5a6c5995b9ed'
'95eb4457f95f3f8dd153983612ee65c0'
'21c98f19e883879dd3336c1fa143fd31')
pkgname=("$pkgbase" "$pkgbase-headers" )
for _p in "${pkgname[@]}"; do
eval "package_$_p() {
for _p in "${pkgname[@]}"; do
eval "package_$_p() {
$(declare -f "_package${_p#$pkgbase}")
_package${_p#$pkgbase}
}"
done
}"
done