This commit is contained in:
Peter Jung 2022-05-11 15:25:37 +02:00
parent b1649c8dd8
commit 0d590e3b22
No known key found for this signature in database
GPG Key ID: C3C4820857F654FE
3 changed files with 2508 additions and 3705 deletions

View File

@ -1,7 +1,7 @@
pkgbase = linux-cachyos
pkgbase = linux-cachyos-cfs
pkgdesc = Linux CFS scheduler Kernel by CachyOS with other patches and improvements
pkgver = 5.17.6
pkgrel = 1
pkgrel = 4
url = https://github.com/CachyOS/linux-cachyos
arch = x86_64
arch = x86_64_v3
@ -43,11 +43,11 @@ pkgbase = linux-cachyos
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0015-futex-winesync.patch
source = auto-cpu-optimization.sh
sha256sums = 64ccf18380be5b5491322a3fd54904538b544e523e4bf86289dd8df7404cb10c
sha256sums = 29c5dd2ae6b452b75b25816a8f6610fa2ff54f21b22a0ccef5c2e98a7077eb36
sha256sums = bce05218cb52e8f70fd0e652483d0413cf3d3f8bcbe0302bfb2d2f195ea6ef7c
sha256sums = 09aa0e17190ee113a352573b2d2386cc04b522641fd277306e8ace9fd7af0037
sha256sums = ddaf45cc72ed743f70c8754505357e94d6dd4133bfde6e9c6afc59f4cc12ee69
sha256sums = 6b31e4655e5ff9dbe95fb7db665426dad2bf3e33b5102d040a256f707cc99a23
sha256sums = c222aa0b958c16db5f840f6d6890257319bfc8c1d26e39322ab0dfebf635ce49
sha256sums = 7936c3cc3c7be010539414b392f942664f95d9659a44c614a2e57c5c72cdacbf
sha256sums = ef7d6253dc8a149ffea1293f65ef43fe9277ba6a629bc54d656f594429813b5e
sha256sums = ab87b51fcacd9c7c5bf5d363ac45dab994c2c53d0e80e552390c7cbf752d7dca
sha256sums = 748d5b112d10870ce214c5fab1cc793492416faab73637e95c0a1b877b2574b7
@ -61,7 +61,7 @@ pkgbase = linux-cachyos
sha256sums = 179b540f8848b03ccb1a0d12e24feab63fd0576b5e9eed8f214d6e9cb790f151
sha256sums = 65ec9ac5b8b28d5b61df1c72498059be2e7cb1f9b965bac0e4ffed3c05520b2b
pkgname = linux-cachyos
pkgname = linux-cachyos-cfs
pkgdesc = The Linux CFS scheduler Kernel by CachyOS with other patches and improvements kernel and modules
depends = coreutils
depends = kmod
@ -73,6 +73,6 @@ pkgname = linux-cachyos
provides = WIREGUARD-MODULE
provides = KSMBD-MODULE
pkgname = linux-cachyos-headers
pkgname = linux-cachyos-cfs-headers
pkgdesc = Headers and scripts for building modules for the Linux CFS scheduler Kernel by CachyOS with other patches and improvements kernel
depends = pahole

519
PKGBUILD
View File

@ -75,7 +75,7 @@ _kyber_disable=y
_lru_enable=y
## Enable DAMON
_damon=y
_damon=
## enable SPECULATIVE_PAGE_FAULT
_spf_enable=y
@ -89,7 +89,7 @@ _use_auto_optimization=y
## Apply Kernel Optimization selecting
_use_optimization_select=
# Enable zram/zswap ZSTD compression
## Enable zram/zswap ZSTD compression
_zstd_compression=y
_nf_cone=y
@ -102,13 +102,13 @@ _use_llvm_lto=
## Change the thin lto cachedir for fixing building several dkms modules including zfs
_thin_lto_cachedir=
# Enable it for using the LLVM CFI PATCH for a better security
## Enable it for using the LLVM CFI PATCH for a better security
_use_cfi=
if [ -n "$_use_llvm_lto" ]; then
pkgbase=linux-cachyos-lto
pkgbase=linux-cachyos-${_cpusched}-lto
else
pkgbase=linux-cachyos
pkgbase=linux-cachyos-${_cpusched}
fi
_major=5.17
_minor=6
@ -122,20 +122,14 @@ _srcname=linux-${_stable}
#_srcname=linux-${_major}
arch=(x86_64 x86_64_v3)
pkgdesc='Linux CFS 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=(
@ -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
scripts/config --enable ACPI_REV_OVERRIDE_POSSIBLE \
--enable ACPI_TABLE_UPGRADE
echo "Enable CONFIG_USER_NS_UNPRIVILEGED"
scripts/config --enable CONFIG_USER_NS
# 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,11 +738,11 @@ for _p in "${pkgname[@]}"; do
done
sha256sums=('64ccf18380be5b5491322a3fd54904538b544e523e4bf86289dd8df7404cb10c'
'29c5dd2ae6b452b75b25816a8f6610fa2ff54f21b22a0ccef5c2e98a7077eb36'
'bce05218cb52e8f70fd0e652483d0413cf3d3f8bcbe0302bfb2d2f195ea6ef7c'
'09aa0e17190ee113a352573b2d2386cc04b522641fd277306e8ace9fd7af0037'
'ddaf45cc72ed743f70c8754505357e94d6dd4133bfde6e9c6afc59f4cc12ee69'
'6b31e4655e5ff9dbe95fb7db665426dad2bf3e33b5102d040a256f707cc99a23'
'c222aa0b958c16db5f840f6d6890257319bfc8c1d26e39322ab0dfebf635ce49'
'7936c3cc3c7be010539414b392f942664f95d9659a44c614a2e57c5c72cdacbf'
'ef7d6253dc8a149ffea1293f65ef43fe9277ba6a629bc54d656f594429813b5e'
'ab87b51fcacd9c7c5bf5d363ac45dab994c2c53d0e80e552390c7cbf752d7dca'
'748d5b112d10870ce214c5fab1cc793492416faab73637e95c0a1b877b2574b7'

5682
config

File diff suppressed because it is too large Load Diff