summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD515
1 files changed, 260 insertions, 255 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d1bdf254019d..d3f02a16d125 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -75,7 +75,7 @@ _kyber_disable=y
_lru_enable=y
## Enable DAMON
-_damon=y
+_damon=
## enable SPECULATIVE_PAGE_FAULT
_spf_enable=y
@@ -122,20 +122,14 @@ _srcname=linux-${_stable}
#_srcname=linux-${_major}
arch=(x86_64 x86_64_v3)
pkgdesc='Linux cacULE scheduler Kernel by CachyOS with other patches and improvements'
-pkgrel=1
+pkgrel=4
arch=('x86_64' 'x86_64_v3')
url="https://github.com/CachyOS/linux-cachyos"
license=('GPL2')
options=('!strip')
makedepends=('bc' 'texlive-latexextra' 'libelf' 'pahole' 'cpio' 'perl' 'tar' 'xz' 'zstd' 'xmlto' 'git' 'gcc' 'gcc-libs' 'glibc' 'binutils' 'make' 'patch')
if [ -n "$_use_llvm_lto" ]; then
- depends+=(clang llvm lld python)
- BUILD_FLAGS=(
- CC=clang
- LD=ld.lld
- LLVM=1
- LLVM_IAS=1
- )
+ makedepends+=(clang llvm lld python)
fi
_patchsource="https://raw.githubusercontent.com/ptr1337/kernel-patches/master/${_major}"
source=(
@@ -164,7 +158,7 @@ source+=(
"${_patchsource}/0001-arch.patch"
"${_patchsource}/0002-anbox.patch"
"${_patchsource}/0003-bbr2.patch"
- "${_patchsource}/0004-cachy.patch"
+ "${_patchsource}/0004-cachy-cacule.patch"
"${_patchsource}/0005-clearlinux.patch"
"${_patchsource}/0006-cpu.patch"
"${_patchsource}/0007-fixes-miscellaneous.patch"
@@ -178,9 +172,11 @@ source+=(
"${_patchsource}/0015-futex-winesync.patch"
"auto-cpu-optimization.sh"
)
-if [ -n "$_thin_lto_cachedir" ] && [ "$_use_llvm_lto" = "thin" ]; then
- source+=(
- "${_patchsource}/0016-thinlto-cachedir.patch"
+
+if [ -n "$_use_llvm_lto" ]; then
+ BUILD_FLAGS=(
+ LLVM=1
+ LLVM_IAS=1
)
fi
@@ -192,13 +188,11 @@ prepare() {
cd $_srcname
- ### Setting version
echo "Setting version..."
scripts/setlocalversion --save-scmversion
echo "-$pkgrel" > localversion.10-pkgrel
echo "${pkgbase#linux}" > localversion.20-pkgname
- ### Patching sources
local src
for src in "${source[@]}"; do
src="${src%%::*}"
@@ -208,11 +202,9 @@ prepare() {
patch -Np1 < "../$src"
done
- ### Setting config
echo "Setting config..."
cp ../config .config
- ### Microarchitecture Optimization (GCC/CLANG)
if [ -n "$_use_auto_optimization" ]; then
"${srcdir}"/auto-cpu-optimization.sh
fi
@@ -225,30 +217,30 @@ prepare() {
### Selecting the CPU scheduler
if [ "$_cpusched" = "bmq" ]; then
echo "Selecting BMQ CPU scheduler..."
- scripts/config --enable CONFIG_SCHED_ALT
- scripts/config --enable CONFIG_SCHED_BMQ
- scripts/config --disable CONFIG_SCHED_PDS
+ scripts/config --enable SCHED_ALT \
+ --enable SCHED_BMQ \
+ --disable SCHED_PDS
elif [ "$_cpusched" = "pds" ]; then
echo "Selecting PDS CPU scheduler..."
- scripts/config --enable CONFIG_SCHED_ALT
- scripts/config --disable CONFIG_SCHED_BMQ
- scripts/config --enable CONFIG_SCHED_PDS
+ scripts/config --enable SCHED_ALT \
+ --disable SCHED_BMQ \
+ --enable SCHED_PDS
elif [ "$_cpusched" = "cacule" ]; then
echo "Selecting CacULE scheduler..."
- scripts/config --enable CONFIG_CACULE_SCHED
- scripts/config --disable CONFIG_CACULE_RDB
+ scripts/config --enable CACULE_SCHED \
+ --disable CACULE_RDB
elif [ "$_cpusched" = "cacule-rdb" ]; then
echo "Selecting CacULE-RDB scheduler..."
- scripts/config --enable CONFIG_CACULE_SCHED
- scripts/config --enable CONFIG_CACULE_RDB
- scripts/config --set-val CONFIG_RDB_INTERVAL 19
+ scripts/config --enable CACULE_SCHED \
+ --enable CACULE_RDB \
+ --set-val RDB_INTERVAL 19
elif [ "$_cpusched" = "tt" ]; then
echo "Enable TT CPU scheduler..."
- scripts/config --enable CONFIG_TT_SCHED
- scripts/config --enable CONFIG_TT_ACCOUNTING_STATS
+ scripts/config --enable TT_SCHED \
+ --enable TT_ACCOUNTING_STATS
elif [ "$_cpusched" = "bore" ]; then
echo "Selecting BORE Scheduler..."
- scripts/config --enable CONFIG_SCHED_BORE
+ scripts/config --enable SCHED_BORE
elif [ "$_cpusched" = "cfs" ]; then
echo "Selecting Completely Fair Scheduler..."
else
@@ -261,307 +253,320 @@ prepare() {
exit
fi
- ## Enable it for using the LLVM CFI PATCH for a better security
- if [ -n "$_use_cfi" ] && [ -n "$_use_llvm_lto" ]; then
- echo "Enabling CFI"
- scripts/config --enable CONFIG_ARCH_SUPPORTS_CFI_CLANG
- scripts/config --enable CONFIG_CFI_CLANG
- fi
+# if [ -n "$_use_cfi" ] && [ -n "$_use_llvm_lto" ]; then
+# echo "Enabling CFI"
+# scripts/config --enable ARCH_SUPPORTS_CFI_CLANG \
+# --enable CFI_CLANG
+# fi
- ### Selecting the THIN or FULL-LTO compression level
if [ "$_use_llvm_lto" = "thin" ]; then
echo "Enabling LLVM THIN LTO..."
scripts/config --disable LTO_NONE \
- --enable LTO \
- --enable LTO_CLANG \
- --enable ARCH_SUPPORTS_LTO_CLANG \
- --enable ARCH_SUPPORTS_LTO_CLANG_THIN \
- --enable HAS_LTO_CLANG \
- --enable LTO_CLANG_THIN \
- --enable HAVE_GCC_PLUGINS
- elif [ "$_use_llvm_lto" = "full" ]; then
+ --enable LTO \
+ --enable LTO_CLANG \
+ --enable ARCH_SUPPORTS_LTO_CLANG \
+ --enable ARCH_SUPPORTS_LTO_CLANG_THIN \
+ --enable HAS_LTO_CLANG \
+ --enable LTO_CLANG_THIN \
+ --enable HAVE_GCC_PLUGINS
+ elif [ "$_use_llvm_lto" = "full" ]; then
echo "Enabling LLVM FULL LTO..."
scripts/config --disable LTO_NONE \
- --enable LTO \
- --enable LTO_CLANG \
- --enable ARCH_SUPPORTS_LTO_CLANG \
- --enable ARCH_SUPPORTS_LTO_CLANG_THIN \
- --enable HAS_LTO_CLANG \
- --enable LTO_CLANG \
- --enable LTO_CLANG_FULL \
- --enable HAVE_GCC_PLUGINS
+ --enable LTO \
+ --enable LTO_CLANG \
+ --enable ARCH_SUPPORTS_LTO_CLANG \
+ --enable ARCH_SUPPORTS_LTO_CLANG_THIN \
+ --enable HAS_LTO_CLANG \
+ --enable LTO_CLANG \
+ --enable LTO_CLANG_FULL \
+ --enable HAVE_GCC_PLUGINS
else
- scripts/config --enable CONFIG_LTO_NONE
+ scripts/config --enable LTO_NONE
fi
- ### Optionally set tickrate to 1000Hz
if [ "$_HZ_ticks" = "1000" ]; then
echo "Setting tick rate to 1k Hz..."
- scripts/config --disable CONFIG_HZ_300
- scripts/config --enable CONFIG_HZ_1000
- scripts/config --set-val CONFIG_HZ 1000
-
- ### Optionally set tickrate to 750HZ
+ scripts/config --disable HZ_300 \
+ --enable HZ_1000 \
+ --set-val HZ 1000
elif [ "$_HZ_ticks" = "750" ]; 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
-
- ### Optionally set tickrate to 600HZ
+ scripts/config --disable HZ_300 \
+ --enable HZ_750 \
+ --set-val HZ 750
elif [ "$_HZ_ticks" = "600" ]; then
echo "Setting tick rate to 600Hz..."
- scripts/config --disable CONFIG_HZ_300
- scripts/config --enable CONFIG_HZ_600
- scripts/config --set-val CONFIG_HZ 600
-
- ### Optionally set tickrate to 500HZ
+ scripts/config --disable HZ_300 \
+ --enable HZ_600 \
+ --set-val HZ 600
elif [ "$_HZ_ticks" = "500" ]; 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
- ### Optionally set tickrate to 300HZ
+ scripts/config --disable HZ_300 \
+ --enable HZ_500 \
+ --set-val HZ 500
elif [ "$_HZ_ticks" = "300" ]; then
echo "Setting tick rate to 300Hz..."
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
- scripts/config --disable CONFIG_AMD_NUMA
- scripts/config --disable CONFIG_X86_64_ACPI_NUMA
- scripts/config --disable CONFIG_NODES_SPAN_OTHER_NODES
- scripts/config --disable CONFIG_NUMA_EMU
- scripts/config --disable CONFIG_NEED_MULTIPLE_NODES
- scripts/config --disable CONFIG_USE_PERCPU_NUMA_NODE_ID
- scripts/config --disable CONFIG_ACPI_NUMA
- scripts/config --disable CONFIG_ARCH_SUPPORTS_NUMA_BALANCING
- scripts/config --disable CONFIG_NODES_SHIFT
- scripts/config --undefine CONFIG_NODES_SHIFT
- scripts/config --disable CONFIG_NEED_MULTIPLE_NODES
+ scripts/config --disable NUMA \
+ --disable AMD_NUMA \
+ --disable X86_64_ACPI_NUMA \
+ --disable NODES_SPAN_OTHER_NODES \
+ --disable NUMA_EMU \
+ --disable NEED_MULTIPLE_NODES \
+ --disable USE_PERCPU_NUMA_NODE_ID \
+ --disable ACPI_NUMA \
+ --disable ARCH_SUPPORTS_NUMA_BALANCING \
+ --disable NODES_SHIFT \
+ --undefine NODES_SHIFT \
+ --disable NEED_MULTIPLE_NODES
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
+ scripts/config --disable MQ_IOSCHED_DEADLINE
fi
- ### Disable Kyber I/O scheduler
if [ -n "$_kyber_disable" ]; then
echo "Disabling Kyber I/O scheduler..."
- scripts/config --disable CONFIG_MQ_IOSCHED_KYBER
+ scripts/config --disable MQ_IOSCHED_KYBER
fi
- ### Set performance governor
if [ -n "$_per_gov" ]; then
echo "Setting performance governor..."
- scripts/config --disable CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
- scripts/config --enable CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
- echo "Set PCIEASPM DRIVER to performance..."
- scripts/config --enable CONFIG_PCIEASPM
- scripts/config --enable CONFIG_PCIEASPM_PERFORMANCE
- echo "Set CONFIG_PCIE_BUS for performance..."
- scripts/config --enable CONFIG_PCIE_BUS_PERFORMANCE
- fi
+ scripts/config --disable CPU_FREQ_DEFAULT_GOV_SCHEDUTIL \
+ --enable CPU_FREQ_DEFAULT_GOV_PERFORMANCE \
+ --enable PCIEASPM \
+ --enable PCIEASPM_PERFORMANCE \
+ --enable PCIE_BUS_PERFORMANCE
+ fi
- ### Selecting between tickless idle, perodic tics or full tickless
if [ "$_tickrate" = "perodic" ]; then
echo "Enabling periodic ticks..."
- scripts/config --disable CONFIG_NO_HZ_IDLE
- scripts/config --disable CONFIG_NO_HZ_FULL
- scripts/config --disable CONFIG_NO_HZ
- scripts/config --disable CONFIG_NO_HZ_COMMON
- scripts/config --enable CONFIG_HZ_PERIODIC
+ scripts/config --disable NO_HZ_IDLE \
+ --disable NO_HZ_FULL \
+ --disable NO_HZ \
+ --disable NO_HZ_COMMON \
+ --enable HZ_PERIODIC
elif [ "$_tickrate" = "idle" ]; then
echo "Enabling tickless idle..."
- scripts/config --disable CONFIG_HZ_PERIODIC
- scripts/config --disable CONFIG_NO_HZ_FULL
- scripts/config --enable CONFIG_NO_HZ_IDLE
- scripts/config --enable CONFIG_NO_HZ
- scripts/config --enable CONFIG_NO_HZ_COMMON
+ scripts/config --disable HZ_PERIODIC \
+ --disable NO_HZ_FULL \
+ --enable NO_HZ_IDLE \
+ --enable NO_HZ \
+ --enable NO_HZ_COMMON
elif [ "$_tickrate" = "full" ]; then
echo "Enabling tickless idle..."
- scripts/config --disable CONFIG_HZ_PERIODIC
- scripts/config --disable CONFIG_NO_HZ_IDLE
- scripts/config --disable CONFIG_CONTEXT_TRACKING_FORCE
- scripts/config --enable CONFIG_NO_HZ_FULL_NODEF
- scripts/config --enable CONFIG_NO_HZ_FULL
- scripts/config --enable CONFIG_NO_HZ
- scripts/config --enable CONFIG_NO_HZ_COMMON
- scripts/config --enable CONFIG_CONTEXT_TRACKING
+ scripts/config --disable HZ_PERIODIC \
+ --disable NO_HZ_IDLE \
+ --disable CONTEXT_TRACKING_FORCE \
+ --enable NO_HZ_FULL_NODEF \
+ --enable NO_HZ_FULL \
+ --enable NO_HZ \
+ --enable NO_HZ_COMMON \
+ --enable CONTEXT_TRACKING
fi
- ### Selecting between preempt
if [ "$_preempt" = "full" ]; then
echo "Enabling low latency preempt..."
- scripts/config --enable CONFIG_PREEMPT_BUILD
- scripts/config --disable CONFIG_PREEMPT_NONE
- scripts/config --disable CONFIG_PREEMPT_VOLUNTARY
- scripts/config --enable CONFIG_PREEMPT
- scripts/config --enable CONFIG_PREEMPT_COUNT
- scripts/config --enable CONFIG_PREEMPTION
- scripts/config --enable CONFIG_PREEMPT_DYNAMIC
+ scripts/config --enable PREEMPT_BUILD \
+ --disable PREEMPT_NONE \
+ --disable PREEMPT_VOLUNTARY \
+ --enable PREEMPT \
+ --enable PREEMPT_COUNT \
+ --enable PREEMPTION \
+ --enable PREEMPT_DYNAMIC
elif [ "$_preempt" = "voluntary" ]; then
echo "Enabling tickless idle..."
- scripts/config --enable CONFIG_PREEMPT_BUILD
- scripts/config --disable CONFIG_PREEMPT_NONE
- scripts/config --enable CONFIG_PREEMPT_VOLUNTARY
- scripts/config --disable CONFIG_PREEMPT
- scripts/config --enable CONFIG_PREEMPT_COUNT
- scripts/config --enable CONFIG_PREEMPTION
- scripts/config --enable CONFIG_PREEMPT_DYNAMIC
+ scripts/config --enable PREEMPT_BUILD \
+ --disable PREEMPT_NONE \
+ --enable PREEMPT_VOLUNTARY \
+ --disable PREEMPT \
+ --enable PREEMPT_COUNT \
+ --enable PREEMPTION \
+ --enable PREEMPT_DYNAMIC
elif [ "$_tickrate" = "server" ]; then
echo "Enabling tickless idle..."
- scripts/config --enable CONFIG_PREEMPT_NONE_BUILD
- scripts/config --enable CONFIG_PREEMPT_NONE
- scripts/config --disable CONFIG_PREEMPT_VOLUNTARY
- scripts/config --disable CONFIG_PREEMPT
- scripts/config --disable CONFIG_PREEMPT_COUNT
- scripts/config --disable CONFIG_PREEMPTION
- scripts/config --disable CONFIG_PREEMPT_DYNAMIC
+ scripts/config --enable PREEMPT_NONE_BUILD \
+ --enable PREEMPT_NONE \
+ --disable PREEMPT_VOLUNTARY \
+ --disable PREEMPT \
+ --disable PREEMPT_COUNT \
+ --disable PREEMPTION \
+ --disable PREEMPT_DYNAMIC
fi
- ### Enable KBUILD_CFLAGS -O3
if [ -n "$_cc_harder" ]; then
echo "Enabling KBUILD_CFLAGS -O3..."
- scripts/config --disable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
- scripts/config --enable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3
+ scripts/config --disable CC_OPTIMIZE_FOR_PERFORMANCE \
+ --enable CC_OPTIMIZE_FOR_PERFORMANCE_O3
fi
- ### Enable TCP_CONG_BBR2
if [ -n "$_tcp_bbr2" ]; then
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
+ scripts/config --module TCP_CONG_CUBIC \
+ --disable DEFAULT_CUBIC \
+ --enable TCP_CONG_BBR2 \
+ --enable DEFAULT_BBR2 \
+ --set-str DEFAULT_TCP_CONG bbr2
fi
- ### Enable FULLCONENAT
if [ -n "$_nf_cone" ]; then
echo "Enabling FULLCONENAT..."
- scripts/config --module CONFIG_IP_NF_TARGET_FULLCONENAT
- scripts/config --module CONFIG_NETFILTER_XT_TARGET_FULLCONENAT
+ scripts/config --module IP_NF_TARGET_FULLCONENAT \
+ --module NETFILTER_XT_TARGET_FULLCONENAT
fi
- ### Enable SPF
if [ -n "$_spf_enable" ]; then
echo "Enabling SPECULATIVE_PAGE_FAULT LRU..."
- scripts/config --enable CONFIG_SPECULATIVE_PAGE_FAULT
+ scripts/config --enable SPECULATIVE_PAGE_FAULT
fi
- ### Enable multigenerational LRU
if [ -n "$_lru_enable" ]; then
echo "Enabling multigenerational LRU..."
- scripts/config --enable CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG
- scripts/config --enable CONFIG_LRU_GEN
- scripts/config --enable CONFIG_LRU_GEN_ENABLED
- scripts/config --disable CONFIG_LRU_GEN_STATS
+ scripts/config --enable ARCH_HAS_NONLEAF_PMD_YOUNG \
+ --enable LRU_GEN \
+ --enable LRU_GEN_ENABLED \
+ --disable LRU_GEN_STATS
fi
- ### Enable DAMON
if [ -n "$_damon" ]; then
echo "Enabling DAMON..."
- scripts/config --enable CONFIG_DAMON
- scripts/config --disable CONFIG_DAMON_VADDR
- scripts/config --disable CONFIG_DAMON_DBGFS
- scripts/config --enable CONFIG_DAMON_PADDR
- scripts/config --enable CONFIG_DAMON_RECLAIM
+ scripts/config --enable DAMON \
+ --disable DAMON_VADDR \
+ --disable DAMON_DBGFS \
+ --enable DAMON_PADDR \
+ --enable DAMON_RECLAIM
fi
- ### Enable Linux Random Number Generator
if [ -n "$_lrng_enable" ]; then
echo "Enabling Linux Random Number Generator ..."
- scripts/config --disable CONFIG_RANDOM_DEFAULT_IMPL
- 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_IRQ
- 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 --enable CONFIG_LRNG_CPU
- 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 --disable CONFIG_LRNG_TEST_CPU_ES_COMPRESSION
- scripts/config --enable CONFIG_LRNG_SELFTEST
- scripts/config --disable CONFIG_LRNG_SELFTEST_PANIC
+ scripts/config --disable RANDOM_DEFAULT_IMPL \
+ --enable LRNG \
+ --enable LRNG_OVERSAMPLE_ENTROPY_SOURCES \
+ --set-val LRNG_OVERSAMPLE_ES_BITS 64 \
+ --set-val LRNG_SEED_BUFFER_INIT_ADD_BITS 128 \
+ --enable LRNG_IRQ \
+ --enable LRNG_CONTINUOUS_COMPRESSION_ENABLED \
+ --disable LRNG_CONTINUOUS_COMPRESSION_DISABLED \
+ --enable LRNG_ENABLE_CONTINUOUS_COMPRESSION \
+ --enable LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION \
+ --disable LRNG_COLLECTION_SIZE_512 \
+ --enable LRNG_COLLECTION_SIZE_1024 \
+ --disable LRNG_COLLECTION_SIZE_2048 \
+ --disable LRNG_COLLECTION_SIZE_4096 \
+ --disable LRNG_COLLECTION_SIZE_8192 \
+ --set-val LRNG_COLLECTION_SIZE 1024 \
+ --enable LRNG_HEALTH_TESTS \
+ --set-val LRNG_RCT_CUTOFF 31 \
+ --set-val LRNG_APT_CUTOFF 325 \
+ --set-val LRNG_IRQ_ENTROPY_RATE 256 \
+ --enable LRNG_JENT \
+ --set-val LRNG_JENT_ENTROPY_RATE 16 \
+ --enable LRNG_CPU \
+ --set-val LRNG_CPU_ENTROPY_RATE 8 \
+ --enable LRNG_DRNG_SWITCH \
+ --enable LRNG_KCAPI_HASH \
+ --module LRNG_DRBG \
+ --module LRNG_KCAPI \
+ --enable LRNG_TESTING_MENU \
+ --disable LRNG_RAW_HIRES_ENTROPY \
+ --disable LRNG_RAW_JIFFIES_ENTROPY \
+ --disable LRNG_RAW_IRQ_ENTROPY \
+ --disable LRNG_RAW_IRQFLAGS_ENTROPY \
+ --disable LRNG_RAW_RETIP_ENTROPY \
+ --disable LRNG_RAW_REGS_ENTROPY \
+ --disable LRNG_RAW_ARRAY \
+ --disable LRNG_IRQ_PERF \
+ --disable LRNG_ACVT_HASH \
+ --enable LRNG_RUNTIME_ES_CONFIG \
+ --disable LRNG_RUNTIME_MAX_WO_RESEED_CONFIG \
+ --disable LRNG_TEST_CPU_ES_COMPRESSION \
+ --enable LRNG_SELFTEST \
+ --disable LRNG_SELFTEST_PANIC
fi
- ### Enable zram/zswap ZSTD compression
if [ -n "$_zstd_swap_compression" ]; then
echo "Enabling zram ZSTD compression..."
- scripts/config --disable CONFIG_ZRAM_DEF_COMP_LZORLE
- scripts/config --enable CONFIG_ZRAM_DEF_COMP_ZSTD
- scripts/config --set-str CONFIG_ZRAM_DEF_COMP zstd
- echo "Enabling zswap ZSTD compression..."
- scripts/config --disable CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4
- scripts/config --enable CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD
- scripts/config --set-str CONFIG_ZSWAP_COMPRESSOR_DEFAULT zstd
+ scripts/config --disable ZRAM_DEF_COMP_LZORLE \
+ --enable ZRAM_DEF_COMP_ZSTD \
+ --set-str ZRAM_DEF_COMP zstd \
+ --disable ZSWAP_COMPRESSOR_DEFAULT_LZ4 \
+ --enable ZSWAP_COMPRESSOR_DEFAULT_ZSTD \
+ --set-str ZSWAP_COMPRESSOR_DEFAULT zstd
fi
- ## Enable Anbox Support
if [ -n "$_anbox" ]; then
echo "Enable Anbox..."
- scripts/config --enable CONFIG_ASHMEM
- scripts/config --enable CONFIG_ANDROID
- scripts/config --enable CONFIG_ANDROID_BINDER_IPC
- scripts/config --enable CONFIG_ANDROID_BINDERFS
- scripts/config --enable CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
+ scripts/config --enable ASHMEM \
+ --enable ANDROID \
+ --enable ANDROID_BINDER_IPC \
+ --enable ANDROID_BINDERFS \
+ --enable ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
fi
- echo "disable debugging features to reduce the size..."
- scripts/config --disable CONFIG_DEBUG_INFO
- scripts/config --disable CONFIG_CGROUP_BPF
- scripts/config --disable CONFIG_BPF_LSM
- scripts/config --disable CONFIG_BPF_PRELOAD
- scripts/config --disable CONFIG_BPF_LIRC_MODE2
- scripts/config --disable CONFIG_BPF_KPROBE_OVERRIDE
- scripts/config --enable CONFIG_PSI_DEFAULT_DISABLED
- scripts/config --disable CONFIG_LATENCYTOP
- scripts/config --disable CONFIG_SCHED_DEBUG
- scripts/config --disable CONFIG_KVM_WERROR
-
- echo "Enable CONFIG_USER_NS_UNPRIVILEGED"
- scripts/config --enable CONFIG_USER_NS
+ scripts/config --enable ACPI_REV_OVERRIDE_POSSIBLE \
+ --enable ACPI_TABLE_UPGRADE
+
+ # General architecture-dependent options
+ scripts/config --enable KPROBES
+
+ # Enable loadable module support
+ scripts/config --undefine MODULE_SIG_FORCE \
+ --enable MODULE_COMPRESS_ZSTD
+
+ # Networking support
+ scripts/config --enable NETFILTER_INGRESS
+
+ # Device Drivers
+ scripts/config --enable FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER \
+ --enable DELL_SMBIOS_SMM \
+ --module PATA_JMICRON \
+ --enable-after SOUND SOUND_OSS_CORE \
+ --enable SND_OSSEMUL \
+ --module-after SND_OSSEMUL SND_MIXER_OSS \
+ --module-after SND_MIXER_OSS SND_PCM_OSS \
+ --enable-after SND_PCM_OSS SND_PCM_OSS_PLUGINS \
+ --module AGP --module-after AGP AGP_INTEL --module-after AGP_INTEL AGP_VIA \
+ --enable FW_LOADER_COMPRESS
+
+ # Kernel hacking -> Compile-time checks and compiler options -> Make section mismatch errors non-fatal
+ scripts/config --enable SECTION_MISMATCH_WARN_ONLY
+
+ # File systems
+ scripts/config --module NTFS3_FS \
+ --enable NTFS3_LZX_XPRESS \
+ --enable NTFS3_FS_POSIX_ACL
+
+ scripts/config --module SMB_SERVER \
+ --enable SMB_SERVER_SMBDIRECT \
+ --enable SMB_SERVER_CHECK_CAP_NET_ADMIN \
+ --enable SMB_SERVER_KERBEROS5
+
+ # Security options
+ scripts/config --enable SECURITY_SELINUX \
+ --enable SECURITY_SELINUX_BOOTPARAM \
+ --enable SECURITY_SMACK \
+ --enable SECURITY_SMACK_BRINGUP \
+ --enable SECURITY_SMACK_NETFILTER \
+ --enable SECURITY_SMACK_APPEND_SIGNALS \
+ --enable SECURITY_TOMOYO \
+ --enable SECURITY_APPARMOR \
+ --enable SECURITY_YAMA
+
+ scripts/config --disable DEBUG_INFO \
+ --disable DEBUG_INFO_BTF \
+ --disable DEBUG_INFO_DWARF4 \
+ --disable PAHOLE_HAS_SPLIT_BTF \
+ --disable DEBUG_INFO_BTF_MODULES
+
+ echo "Enable USER_NS_UNPRIVILEGED"
+ scripts/config --enable USER_NS
echo "Enable WINE FASTSYNC"
- scripts/config --enable CONFIG_WINESYNC
+ scripts/config --enable WINESYNC
### Optionally use running kernel's config
# code originally by nous; http://aur.archlinux.org/packages.php?ID=40191
@@ -571,7 +576,7 @@ prepare() {
# modprobe configs
zcat /proc/config.gz > ./.config
else
- warning "Your kernel was not compiled with IKCONFIG_PROC!"
+ warning "Your kernel was not compiled with IKPROC!"
warning "You cannot read the current config!"
warning "Aborting!"
exit
@@ -594,7 +599,6 @@ prepare() {
echo "Applying default config..."
-
make ${BUILD_FLAGS[*]} olddefconfig
make ${BUILD_FLAGS[*]} -s kernelrelease > version
echo "Prepared $pkgbase version $(<version)"
@@ -621,19 +625,20 @@ _package() {
provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE KSMBD-MODULE)
cd $_srcname
+
local kernver="$(<version)"
local modulesdir="$pkgdir/usr/lib/modules/$kernver"
echo "Installing boot image..."
# systemd expects to find the kernel here to allow hibernation
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
- install -Dm644 "$(make ${BUILD_FLAGS[*]} -s image_name)" "$modulesdir/vmlinuz"
+ install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz"
# Used by mkinitcpio to name the kernel
echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase"
echo "Installing modules..."
- make ${BUILD_FLAGS[*]} INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \
+ make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \
DEPMOD=/doesnt/exist modules_install # Suppress depmod
# remove build and source links
@@ -644,7 +649,7 @@ _package-headers() {
pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"
depends=(pahole)
- cd $_srcname
+ cd ${_srcname}
local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
echo "Installing build files..."
@@ -657,8 +662,10 @@ _package-headers() {
# required when STACK_VALIDATION is enabled
install -Dt "$builddir/tools/objtool" tools/objtool/objtool
- # required when DEBUG_INFO_BTF_MODULES is enabled
- # install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
+# # required when DEBUG_INFO_BTF_MODULES is enabled
+# if [ -f tools/bpf/resolve_btfids/resolve_btfids ]; then
+# install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
+# fi
echo "Installing headers..."
cp -t "$builddir" -a include
@@ -714,14 +721,12 @@ _package-headers() {
esac
done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)
- # echo "Stripping vmlinux..."
- # strip -v $STRIP_STATIC "$builddir/vmlinux"
- # not needed since not building with CONFIG_DEBUG_INFO=y
+ echo "Stripping vmlinux..."
+ strip -v $STRIP_STATIC "$builddir/vmlinux"
echo "Adding symlink..."
mkdir -p "$pkgdir/usr/src"
ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
-
}
pkgname=("$pkgbase" "$pkgbase-headers")
@@ -733,12 +738,12 @@ for _p in "${pkgname[@]}"; do
done
sha256sums=('64ccf18380be5b5491322a3fd54904538b544e523e4bf86289dd8df7404cb10c'
- '341d996a829058d17393f4d0cbfdb23c7a7a68ee682fd70cb8e37d27af63efa5'
+ 'bce05218cb52e8f70fd0e652483d0413cf3d3f8bcbe0302bfb2d2f195ea6ef7c'
'6ca8fa67a30513e47b2f4dc8566a7297741404195430b589624409d9608b3710'
'09aa0e17190ee113a352573b2d2386cc04b522641fd277306e8ace9fd7af0037'
'ddaf45cc72ed743f70c8754505357e94d6dd4133bfde6e9c6afc59f4cc12ee69'
'6b31e4655e5ff9dbe95fb7db665426dad2bf3e33b5102d040a256f707cc99a23'
- 'c222aa0b958c16db5f840f6d6890257319bfc8c1d26e39322ab0dfebf635ce49'
+ '770164218529f3dac2736b5c4e36e8e2ae47feea7571425eb9725a11a18ddd3f'
'ef7d6253dc8a149ffea1293f65ef43fe9277ba6a629bc54d656f594429813b5e'
'ab87b51fcacd9c7c5bf5d363ac45dab994c2c53d0e80e552390c7cbf752d7dca'
'748d5b112d10870ce214c5fab1cc793492416faab73637e95c0a1b877b2574b7'