summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Jung2022-05-09 10:28:09 +0200
committerPeter Jung2022-05-09 10:28:09 +0200
commit3df1cb899a6f62d04d6580512a3ce7196dc6833e (patch)
tree85eb1c1edf3953739ecca95e71321a80b83662d9
parent8c60d98c74b266288d132f384a72f40bcff42db9 (diff)
downloadaur-3df1cb899a6f62d04d6580512a3ce7196dc6833e.tar.gz
5.17.6-1
-rwxr-xr-x.SRCINFO36
-rw-r--r--PKGBUILD1118
2 files changed, 591 insertions, 563 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b4e67e1baf35..39bd2fe7d020 100755
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = linux-cacule
pkgdesc = Linux cacULE scheduler Kernel by CachyOS with other patches and improvements
- pkgver = 5.17.5
+ pkgver = 5.17.6
pkgrel = 1
url = https://github.com/CachyOS/linux-cachyos
arch = x86_64
@@ -24,7 +24,7 @@ pkgbase = linux-cacule
makedepends = make
makedepends = patch
options = !strip
- source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.5.tar.xz
+ source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.6.tar.xz
source = config
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/sched/0001-cacULE.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0001-arch.patch
@@ -43,24 +43,24 @@ pkgbase = linux-cacule
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0014-ck-hrtimer.patch
source = https://raw.githubusercontent.com/ptr1337/kernel-patches/master/5.17/0015-futex-winesync.patch
source = auto-cpu-optimization.sh
- sha256sums = 9bbcd185b94436f9c8fe977fa0e862f60d34003562327fcebb27c9fa342fe987
+ sha256sums = 64ccf18380be5b5491322a3fd54904538b544e523e4bf86289dd8df7404cb10c
sha256sums = 341d996a829058d17393f4d0cbfdb23c7a7a68ee682fd70cb8e37d27af63efa5
sha256sums = 6ca8fa67a30513e47b2f4dc8566a7297741404195430b589624409d9608b3710
- sha256sums = ba45fa1a0de3d0c813358e381f5fe1105afd730fbcd8c9ba451b115448f7aa5b
- sha256sums = b0cfdc9867119d36cf2deaaa8efffca165fcf1a48c7fd5a28a2b2ec7c5026421
- sha256sums = 0d4b9c288727e6e4c44ba53990538cf118d5a432e612e9060534ab077427848a
- sha256sums = 8ec8d66e06a1b5ca6a5ddf59a793b8af01d0e5ce4c5168e30b0b95aceb89dafb
- sha256sums = e71f3a80e83ff2a31cdc7533f1dcd4f4832f233346668fc5c86f60ec6d20a47e
- sha256sums = fcef8eb5b5d7f7dbc32fdc20d3b6764ec352b33079d96f9fd583d0f7094a1542
- sha256sums = d089a0a3063b5fbccf7175e89ebc648c19a3d9eb74cb457d4685ca5cab092628
- sha256sums = d94002f53ee9cdad412fc6f2c487cea97143a7b880335b2847d4acc2b6f4b823
- sha256sums = 290f75b6ce492c32c17f3c1a0fea7b2aa7228ceb91acb274922ea0fa9c768af0
- sha256sums = 4375a07806c57819cadb5c91ba15169baacdda5a44425da4ac1e2d517c483a88
- sha256sums = 40500b27dc527563de24f029641bb108b829987dcbf7e441c299b3a1efc275ff
- sha256sums = ed3053a8bd1d4b855ef6ed3b0dd456cef15e38061dbb834624d62486c875b1c8
- sha256sums = 71b5ea3baa39520b5687a1b5265b722f2240590eb9d11336e7b145db7f1e9c62
- sha256sums = f1fab7056f9f62b8c967bbd7d678adfc9ab20802c78d9aa9355cf6869ac699fc
- sha256sums = 71e4b1f30c50a947bbf11167e00aaadcd97d3d5d4b06dce94b4f72cd3e776117
+ sha256sums = 09aa0e17190ee113a352573b2d2386cc04b522641fd277306e8ace9fd7af0037
+ sha256sums = ddaf45cc72ed743f70c8754505357e94d6dd4133bfde6e9c6afc59f4cc12ee69
+ sha256sums = 6b31e4655e5ff9dbe95fb7db665426dad2bf3e33b5102d040a256f707cc99a23
+ sha256sums = c222aa0b958c16db5f840f6d6890257319bfc8c1d26e39322ab0dfebf635ce49
+ sha256sums = ef7d6253dc8a149ffea1293f65ef43fe9277ba6a629bc54d656f594429813b5e
+ sha256sums = ab87b51fcacd9c7c5bf5d363ac45dab994c2c53d0e80e552390c7cbf752d7dca
+ sha256sums = 748d5b112d10870ce214c5fab1cc793492416faab73637e95c0a1b877b2574b7
+ sha256sums = 9625dd5a95a07ea94ea903a1bd7100ff2037c31d72c68ec43b9b6435a8f6dbf6
+ sha256sums = b834d558c412add87fec0fc0ce117674216c1b8717f48eaf8134ac64249ba8b3
+ sha256sums = 9c2c0ccee49c17663f27dcdf43cfa02cd45ee15d53ff1a05da7e683098abdde1
+ sha256sums = 1b2dd9147b7443a42ec49e9d1bf01d1209bfcbe625e686e90f0276abb3ed52ec
+ sha256sums = 0e5177f086ddcac9b0e6596d29588c0730cce5c827e4c51e57f835a32f25ee85
+ sha256sums = 761abc5bd65c194b6b810af1022df5888ce0ecbe70ffe4cd67e6e0c748fb78a2
+ sha256sums = 07e34ca2f03d96837166ff4764503a76ff6f499107716455073e5e081b40a146
+ sha256sums = 179b540f8848b03ccb1a0d12e24feab63fd0576b5e9eed8f214d6e9cb790f151
sha256sums = 65ec9ac5b8b28d5b61df1c72498059be2e7cb1f9b965bac0e4ffed3c05520b2b
pkgname = linux-cacule
diff --git a/PKGBUILD b/PKGBUILD
index a16f86ac334e..d1bdf254019d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -56,15 +56,15 @@ _per_gov=y
_tcp_bbr2=y
### Running with a 1000HZ, 750Hz, 600 Hz or 500Hz tick rate
-_1k_HZ_ticks=
-_750_HZ_ticks=y
-_600_HZ_ticks=
-_500_HZ_ticks=
+_HZ_ticks=750
-##รค Choose between perodic, tickless idle or full tickless
-### Full tickless can give higher performances in various cases but, depending on hardware, lower consistency. Just tickless idle can perform better on some platforms (mostly AMD based).
+## Choose between perodic, tickless idle or full tickless
+### Full tickless can give higher performances in various cases but, depending on hardware, lower consistency.
_tickrate=full
+## Choose between full(low-latency), voluntary or server
+_preempt=voluntary
+
### Disable MQ-Deadline I/O scheduler
_mq_deadline_disable=y
@@ -74,12 +74,13 @@ _kyber_disable=y
### Enable multigenerational LRU
_lru_enable=y
-### Enable DAMON
+## Enable DAMON
_damon=y
+## enable SPECULATIVE_PAGE_FAULT
_spf_enable=y
-### Enable Linux Random Number Generator
+## Enable Linux Random Number Generator
_lrng_enable=y
## Apply Kernel automatic Optimization
@@ -88,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
@@ -101,16 +102,16 @@ _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-${_cpusched}-lto
+ pkgbase=linux-${_cpusched}-lto
else
- pkgbase=linux-${_cpusched}
+ pkgbase=linux-${_cpusched}
fi
_major=5.17
-_minor=5
+_minor=6
#_minorc=$((_minor+1))
#_rcver=rc8
pkgver=${_major}.${_minor}
@@ -128,62 +129,59 @@ 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
- )
+ depends+=(clang llvm lld python)
+ BUILD_FLAGS=(
+ CC=clang
+ LD=ld.lld
+ LLVM=1
+ LLVM_IAS=1
+ )
fi
_patchsource="https://raw.githubusercontent.com/ptr1337/kernel-patches/master/${_major}"
source=(
- "https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.xz"
- "config"
+ "https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.xz"
+ "config"
)
if [ "$_cpusched" = "bmq" ]; then
- source+=("${_patchsource}/sched/0001-prjc.patch")
+ source+=("${_patchsource}/sched/0001-prjc.patch")
fi
if [ "$_cpusched" = "pds" ]; then
- source+=("${_patchsource}/sched/0001-prjc.patch")
+ source+=("${_patchsource}/sched/0001-prjc.patch")
fi
if [ "$_cpusched" = "cacule" ]; then
- source+=("${_patchsource}/sched/0001-cacULE.patch")
+ source+=("${_patchsource}/sched/0001-cacULE.patch")
fi
if [ "$_cpusched" = "cacule-rdb" ]; then
- source+=("${_patchsource}/sched/0001-cacULE.patch")
+ source+=("${_patchsource}/sched/0001-cacULE.patch")
fi
if [ "$_cpusched" = "tt" ]; then
- source+=("${_patchsource}/sched/0001-tt.patch")
+ source+=("${_patchsource}/sched/0001-tt.patch")
fi
if [ "$_cpusched" = "bore" ]; then
- source+=("${_patchsource}/sched/0001-bore-sched.patch")
+ source+=("${_patchsource}/sched/0001-bore-sched.patch")
fi
source+=(
- "${_patchsource}/0001-arch.patch"
- "${_patchsource}/0002-anbox.patch"
- "${_patchsource}/0003-bbr2.patch"
- "${_patchsource}/0004-cachy.patch"
- "${_patchsource}/0005-clearlinux.patch"
- "${_patchsource}/0006-cpu.patch"
- "${_patchsource}/0007-fixes-miscellaneous.patch"
- "${_patchsource}/0008-fs-patches.patch"
- "${_patchsource}/0009-hwmon.patch"
- "${_patchsource}/0010-lru-le9.patch"
- "${_patchsource}/0011-spf-lru.patch"
- "${_patchsource}/0012-xanmod.patch"
- "${_patchsource}/0013-lrng.patch"
- "${_patchsource}/0014-ck-hrtimer.patch"
- "${_patchsource}/0015-futex-winesync.patch"
-# "${_patchsource}/0017-FG-KASLR.patch"
-# "${_patchsource}/0018-zstd-dev.patch" # Don't use them without custom mkinitcpio
- "auto-cpu-optimization.sh"
+ "${_patchsource}/0001-arch.patch"
+ "${_patchsource}/0002-anbox.patch"
+ "${_patchsource}/0003-bbr2.patch"
+ "${_patchsource}/0004-cachy.patch"
+ "${_patchsource}/0005-clearlinux.patch"
+ "${_patchsource}/0006-cpu.patch"
+ "${_patchsource}/0007-fixes-miscellaneous.patch"
+ "${_patchsource}/0008-fs-patches.patch"
+ "${_patchsource}/0009-hwmon.patch"
+ "${_patchsource}/0010-lru-le9.patch"
+ "${_patchsource}/0011-spf-lru.patch"
+ "${_patchsource}/0012-xanmod.patch"
+ "${_patchsource}/0013-lrng.patch"
+ "${_patchsource}/0014-ck-hrtimer.patch"
+ "${_patchsource}/0015-futex-winesync.patch"
+ "auto-cpu-optimization.sh"
)
- ## Change the thin lto cachedir for fixing building several dkms modules
if [ -n "$_thin_lto_cachedir" ] && [ "$_use_llvm_lto" = "thin" ]; then
-source+=(
- "${_patchsource}/0016-thinlto-cache-dir.patch"
-)
+ source+=(
+ "${_patchsource}/0016-thinlto-cachedir.patch"
+ )
fi
export KBUILD_BUILD_HOST=archlinux
@@ -192,534 +190,564 @@ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EP
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%%::*}"
- src="${src##*/}"
- [[ $src = *.patch ]] || continue
- echo "Applying patch $src..."
- 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
-
- if [ -n "$_use_optimization_select" ]; then
- source "${startdir}"/configure
- cpu_arch
- fi
-
- ### 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
- 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
- elif [ "$_cpusched" = "cacule" ]; then
- echo "Selecting CacULE scheduler..."
- scripts/config --enable CONFIG_CACULE_SCHED
- scripts/config --disable CONFIG_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
- elif [ "$_cpusched" = "tt" ]; then
- echo "Enable TT CPU scheduler..."
- scripts/config --enable CONFIG_TT_SCHED
- scripts/config --enable CONFIG_TT_ACCOUNTING_STATS
- elif [ "$_cpusched" = "bore" ]; then
- echo "Selecting BORE Scheduler..."
- scripts/config --enable CONFIG_SCHED_BORE
- elif [ "$_cpusched" = "cfs" ]; then
- echo "Selecting Completely Fair Scheduler..."
- else
- if [ -n "$_cpusched" ]; then
- error "The value $_cpusched is invalid. Choose the correct one again."
- else
- error "The value is empty. Choose the correct one again."
+ 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%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ echo "Applying patch $src..."
+ 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
- error "Selecting the CPU scheduler failed!"
- 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
-
- ### 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
- 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
- else
- scripts/config --enable CONFIG_LTO_NONE
- fi
-
- ### Optionally set tickrate to 1000Hz
- if [ -n "$_1k_HZ_ticks" ]; 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
- 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 600HZ
- if [ -n "$_600_HZ_ticks" ]; 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
- 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 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
- 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
-
- ### Disable Kyber I/O scheduler
- if [ -n "$_kyber_disable" ]; then
- echo "Disabling Kyber I/O scheduler..."
- scripts/config --disable CONFIG_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
-
- ### 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
- 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
- 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
- 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
- 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
- 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
- fi
-
- ### Enable SPF
- if [ -n "$_spf_enable" ]; then
- echo "Enabling SPECULATIVE_PAGE_FAULT LRU..."
- scripts/config --enable CONFIG_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
- 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
- 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
- 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
- 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"
- 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
-
- echo "Enable WINE FASTSYNC"
- scripts/config --enable CONFIG_WINESYNC
-
- ### 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
+ if [ -n "$_use_optimization_select" ]; then
+ source "${startdir}"/configure
+ cpu_arch
+ fi
+
+ ### 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
+ 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
+ elif [ "$_cpusched" = "cacule" ]; then
+ echo "Selecting CacULE scheduler..."
+ scripts/config --enable CONFIG_CACULE_SCHED
+ scripts/config --disable CONFIG_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
+ elif [ "$_cpusched" = "tt" ]; then
+ echo "Enable TT CPU scheduler..."
+ scripts/config --enable CONFIG_TT_SCHED
+ scripts/config --enable CONFIG_TT_ACCOUNTING_STATS
+ elif [ "$_cpusched" = "bore" ]; then
+ echo "Selecting BORE Scheduler..."
+ scripts/config --enable CONFIG_SCHED_BORE
+ elif [ "$_cpusched" = "cfs" ]; then
+ echo "Selecting Completely Fair Scheduler..."
else
- warning "Your kernel was not compiled with IKCONFIG_PROC!"
- warning "You cannot read the current config!"
- warning "Aborting!"
- exit
+ if [ -n "$_cpusched" ]; then
+ error "The value $_cpusched is invalid. Choose the correct one again."
+ else
+ error "The value is empty. Choose the correct one again."
+ fi
+ error "Selecting the CPU scheduler failed!"
+ exit
fi
- 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
- ### 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
+ ### 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
+ 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
else
- echo "No modprobed.db data found"
- exit
+ scripts/config --enable CONFIG_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
+ 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
+ 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
+ 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
+ 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
+ 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
+
+ ### Disable Kyber I/O scheduler
+ if [ -n "$_kyber_disable" ]; then
+ echo "Disabling Kyber I/O scheduler..."
+ scripts/config --disable CONFIG_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
+
+ ### 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ fi
+
+ ### Enable SPF
+ if [ -n "$_spf_enable" ]; then
+ echo "Enabling SPECULATIVE_PAGE_FAULT LRU..."
+ scripts/config --enable CONFIG_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
+ 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
+ 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
+ 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
+ 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"
+ 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
+
+ echo "Enable WINE FASTSYNC"
+ scripts/config --enable CONFIG_WINESYNC
+
+ ### 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
+
+
+ ### 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
- fi
- echo "Applying default config..."
+ echo "Applying default config..."
- make ${BUILD_FLAGS[*]} olddefconfig
- make ${BUILD_FLAGS[*]} -s kernelrelease > version
- echo "Prepared $pkgbase version $(<version)"
+ make ${BUILD_FLAGS[*]} olddefconfig
+ make ${BUILD_FLAGS[*]} -s kernelrelease > version
+ echo "Prepared $pkgbase version $(<version)"
- ### Running make nconfig
- [[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig
+ ### Running make nconfig
+ [[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig
- ### Save configuration for later reuse
- cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}"
+ ### Save configuration for later reuse
+ cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}"
}
build() {
- cd ${_srcname}
- make ${BUILD_FLAGS[*]} -j$(nproc) all
+ cd ${_srcname}
+ 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 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"
-
- # 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 \
- DEPMOD=/doesnt/exist modules_install # Suppress depmod
-
- # remove build and source links
- rm "$modulesdir"/{source,build}
+ 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 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"
+
+ # 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 \
+ DEPMOD=/doesnt/exist modules_install # Suppress depmod
+
+ # remove build and source links
+ rm "$modulesdir"/{source,build}
}
_package-headers() {
- pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"
- depends=(pahole)
-
- cd $_srcname
- local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
-
- echo "Installing build files..."
- install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \
- localversion.* version vmlinux
- install -Dt "$builddir/kernel" -m644 kernel/Makefile
- install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
- cp -t "$builddir" -a scripts
-
- # 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
-
- echo "Installing headers..."
- cp -t "$builddir" -a include
- cp -t "$builddir/arch/x86" -a arch/x86/include
- install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
-
- install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
- install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
-
- # https://bugs.archlinux.org/task/13146
- install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
-
- # https://bugs.archlinux.org/task/20402
- install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
- install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
- install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
-
- # https://bugs.archlinux.org/task/71392
- install -Dt "$builddir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
-
- echo "Installing KConfig files..."
- find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
-
- echo "Removing unneeded architectures..."
- local arch
- for arch in "$builddir"/arch/*/; do
- [[ $arch = */x86/ ]] && continue
- echo "Removing $(basename "$arch")"
- rm -r "$arch"
- done
-
- echo "Removing documentation..."
- rm -r "$builddir/Documentation"
-
- echo "Removing broken symlinks..."
- find -L "$builddir" -type l -printf 'Removing %P\n' -delete
-
- echo "Removing loose objects..."
- find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
-
- echo "Stripping build tools..."
- 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" ;;
- 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 "Adding symlink..."
- mkdir -p "$pkgdir/usr/src"
- ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
+ pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"
+ depends=(pahole)
+
+ cd $_srcname
+ local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
+
+ echo "Installing build files..."
+ install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \
+ localversion.* version vmlinux
+ install -Dt "$builddir/kernel" -m644 kernel/Makefile
+ install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
+ cp -t "$builddir" -a scripts
+
+ # 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
+
+ echo "Installing headers..."
+ cp -t "$builddir" -a include
+ cp -t "$builddir/arch/x86" -a arch/x86/include
+ install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
+
+ install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
+ install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
+
+ # https://bugs.archlinux.org/task/13146
+ install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
+
+ # https://bugs.archlinux.org/task/20402
+ install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
+
+ # https://bugs.archlinux.org/task/71392
+ install -Dt "$builddir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
+
+ echo "Installing KConfig files..."
+ find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
+
+ echo "Removing unneeded architectures..."
+ local arch
+ for arch in "$builddir"/arch/*/; do
+ [[ $arch = */x86/ ]] && continue
+ echo "Removing $(basename "$arch")"
+ rm -r "$arch"
+ done
+
+ echo "Removing documentation..."
+ rm -r "$builddir/Documentation"
+
+ echo "Removing broken symlinks..."
+ find -L "$builddir" -type l -printf 'Removing %P\n' -delete
+
+ echo "Removing loose objects..."
+ find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+
+ echo "Stripping build tools..."
+ 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" ;;
+ 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 "Adding symlink..."
+ mkdir -p "$pkgdir/usr/src"
+ ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
}
pkgname=("$pkgbase" "$pkgbase-headers")
for _p in "${pkgname[@]}"; do
- eval "package_$_p() {
+ eval "package_$_p() {
$(declare -f "_package${_p#$pkgbase}")
_package${_p#$pkgbase}
- }"
+ }"
done
-sha256sums=('9bbcd185b94436f9c8fe977fa0e862f60d34003562327fcebb27c9fa342fe987'
+sha256sums=('64ccf18380be5b5491322a3fd54904538b544e523e4bf86289dd8df7404cb10c'
'341d996a829058d17393f4d0cbfdb23c7a7a68ee682fd70cb8e37d27af63efa5'
'6ca8fa67a30513e47b2f4dc8566a7297741404195430b589624409d9608b3710'
- 'ba45fa1a0de3d0c813358e381f5fe1105afd730fbcd8c9ba451b115448f7aa5b'
- 'b0cfdc9867119d36cf2deaaa8efffca165fcf1a48c7fd5a28a2b2ec7c5026421'
- '0d4b9c288727e6e4c44ba53990538cf118d5a432e612e9060534ab077427848a'
- '8ec8d66e06a1b5ca6a5ddf59a793b8af01d0e5ce4c5168e30b0b95aceb89dafb'
- 'e71f3a80e83ff2a31cdc7533f1dcd4f4832f233346668fc5c86f60ec6d20a47e'
- 'fcef8eb5b5d7f7dbc32fdc20d3b6764ec352b33079d96f9fd583d0f7094a1542'
- 'd089a0a3063b5fbccf7175e89ebc648c19a3d9eb74cb457d4685ca5cab092628'
- 'd94002f53ee9cdad412fc6f2c487cea97143a7b880335b2847d4acc2b6f4b823'
- '290f75b6ce492c32c17f3c1a0fea7b2aa7228ceb91acb274922ea0fa9c768af0'
- '4375a07806c57819cadb5c91ba15169baacdda5a44425da4ac1e2d517c483a88'
- '40500b27dc527563de24f029641bb108b829987dcbf7e441c299b3a1efc275ff'
- 'ed3053a8bd1d4b855ef6ed3b0dd456cef15e38061dbb834624d62486c875b1c8'
- '71b5ea3baa39520b5687a1b5265b722f2240590eb9d11336e7b145db7f1e9c62'
- 'f1fab7056f9f62b8c967bbd7d678adfc9ab20802c78d9aa9355cf6869ac699fc'
- '71e4b1f30c50a947bbf11167e00aaadcd97d3d5d4b06dce94b4f72cd3e776117'
+ '09aa0e17190ee113a352573b2d2386cc04b522641fd277306e8ace9fd7af0037'
+ 'ddaf45cc72ed743f70c8754505357e94d6dd4133bfde6e9c6afc59f4cc12ee69'
+ '6b31e4655e5ff9dbe95fb7db665426dad2bf3e33b5102d040a256f707cc99a23'
+ 'c222aa0b958c16db5f840f6d6890257319bfc8c1d26e39322ab0dfebf635ce49'
+ 'ef7d6253dc8a149ffea1293f65ef43fe9277ba6a629bc54d656f594429813b5e'
+ 'ab87b51fcacd9c7c5bf5d363ac45dab994c2c53d0e80e552390c7cbf752d7dca'
+ '748d5b112d10870ce214c5fab1cc793492416faab73637e95c0a1b877b2574b7'
+ '9625dd5a95a07ea94ea903a1bd7100ff2037c31d72c68ec43b9b6435a8f6dbf6'
+ 'b834d558c412add87fec0fc0ce117674216c1b8717f48eaf8134ac64249ba8b3'
+ '9c2c0ccee49c17663f27dcdf43cfa02cd45ee15d53ff1a05da7e683098abdde1'
+ '1b2dd9147b7443a42ec49e9d1bf01d1209bfcbe625e686e90f0276abb3ed52ec'
+ '0e5177f086ddcac9b0e6596d29588c0730cce5c827e4c51e57f835a32f25ee85'
+ '761abc5bd65c194b6b810af1022df5888ce0ecbe70ffe4cd67e6e0c748fb78a2'
+ '07e34ca2f03d96837166ff4764503a76ff6f499107716455073e5e081b40a146'
+ '179b540f8848b03ccb1a0d12e24feab63fd0576b5e9eed8f214d6e9cb790f151'
'65ec9ac5b8b28d5b61df1c72498059be2e7cb1f9b965bac0e4ffed3c05520b2b')