diff options
author | Peter Jung | 2022-06-11 15:07:06 +0200 |
---|---|---|
committer | Peter Jung | 2022-06-11 15:07:06 +0200 |
commit | 7b4ed15277ba5586b7686094b36022e1d3b64e9b (patch) | |
tree | ce8cbeb07134f0311fdcd4afb154107c3800df0e | |
parent | 3f15528a77fd789c829ff7c3a810776df4a2f6d4 (diff) | |
download | aur-7b4ed15277ba5586b7686094b36022e1d3b64e9b.tar.gz |
5.18.3-2
-rwxr-xr-x | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 1080 | ||||
-rwxr-xr-x | auto-cpu-optimization.sh | 69 |
3 files changed, 582 insertions, 573 deletions
@@ -1,7 +1,7 @@ pkgbase = linux-cachyos-cfs pkgdesc = Linux CFS scheduler Kernel by CachyOS with other patches and improvements pkgver = 5.18.3 - pkgrel = 1 + pkgrel = 2 url = https://github.com/CachyOS/linux-cachyos arch = x86_64 arch = x86_64_v3 @@ -54,7 +54,7 @@ pkgbase = linux-cachyos-cfs sha256sums = e2266d499cebdd5d195a044048ae4a13755f1d3edb3ece2c3f8837228b4cd521 sha256sums = c2bf57d37db1f93c5f3eeff2e2957f01618f4786613c13755f9ae6989d2b745c sha256sums = 30fd4ca078cb1eee0bc4005700da4d15515a577ccdb96ea7922040aa9086d6b7 - sha256sums = 4b18c6a82b62c50b45568526eeb16ae877c8f52c407a4bb9c6144c07a0d1233a + sha256sums = 6b6c8d1fbefe7aa165fc62aef527665777d474133e2507e1dc9d09b12282f857 sha256sums = f4ed599589fdd44270229492505f5f88e20d79e93b8044f8041a2fc90486bb4e sha256sums = 1d9c83de97d541f5a7ae4612a96c05aea8ce38de5471cc21fd2197dbd6644d00 sha256sums = 344806f8ea9f0f7da883e2c27835153944df7a4b15bb3f97ec6b7b7709682f5d @@ -63,7 +63,7 @@ pkgbase = linux-cachyos-cfs sha256sums = 8edf9b9b1a9c26cc4d6dfaf5f14c06b197a04c5bbb8459dd292c033aa2534d19 sha256sums = efe8558b63feb0e76b61d69952c5300ad54c951d9044101be7c01932a54fb4fb sha256sums = cb2494f5ad43fd260e26d771305dade3f9499fa1ffaf53cb9ef8c19b66dab7d7 - sha256sums = be21f15aeb22b2ca1e35e4975590d30736af0483ea7464e3464a60d993e37e22 + sha256sums = ce8bf7807b45a27eed05a5e1de5a0bf6293a3bbc2085bacae70cd1368f368d1f pkgname = linux-cachyos-cfs pkgdesc = The Linux CFS scheduler Kernel by CachyOS with other patches and improvements kernel and modules @@ -82,10 +82,10 @@ _spf_enable=y _lrng_enable=y ## Apply Kernel automatic Optimization -_use_auto_optimization= +_use_auto_optimization=y ## Apply Kernel Optimization selecting -_use_optimization_select=y +_use_optimization_select= # disable debug to lower the size of the kernel _disable_debug=y @@ -136,7 +136,7 @@ _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=2 _kernver=$pkgver-$pkgrel arch=('x86_64' 'x86_64_v3') url="https://github.com/CachyOS/linux-cachyos" @@ -144,78 +144,78 @@ 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 - makedepends+=(clang llvm lld python) - BUILD_FLAGS=( - CC=clang - LD=ld.lld - LLVM=1 - LLVM_IAS=1 - ) + makedepends+=(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") +"config") if [ -n "$_build_zfs" ]; then source+=("git+https://github.com/ptr1337/zfs.git#commit=8941b63a931ca6fdc6d0ab46c037540569ba04a4") fi 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-5.18.patch") + source+=("${_patchsource}/sched/0001-cacULE-5.18.patch") fi if [ "$_cpusched" = "cacule-rdb" ]; then - source+=("${_patchsource}/sched/0001-cacULE-5.18.patch") + source+=("${_patchsource}/sched/0001-cacULE-5.18.patch") fi if [ "$_cpusched" = "bore" ]; then source+=("${_patchsource}/sched/0001-bore-sched.patch" - "${_patchsource}/0001-migrate.patch") + "${_patchsource}/0001-migrate.patch") fi if [ "$_cpusched" = "cfs" ]; then - source+=("${_patchsource}/0001-migrate.patch") + source+=("${_patchsource}/0001-migrate.patch") fi if [ "$_cpusched" = "tt" ]; then - source+=("${_patchsource}/sched/0001-tt-5.18.patch") + source+=("${_patchsource}/sched/0001-tt-5.18.patch") fi if [ "$_cpusched" = "hardened" ]; then - source+=( - "${_patchsource}/sched/0001-bore-sched.patch" - "${_patchsource}/0001-migrate.patch" - "${_patchsource}/0001-hardening.patch" + source+=( + "${_patchsource}/sched/0001-bore-sched.patch" + "${_patchsource}/0001-migrate.patch" + "${_patchsource}/0001-hardening.patch" "${_patchsource}/0001-hardened.patch") fi source+=( - "${_patchsource}/0001-amd-perf.patch" - "${_patchsource}/0001-arch.patch" - "${_patchsource}/0001-bbr2.patch" - "${_patchsource}/0001-cachy.patch" - "${_patchsource}/0001-clearlinux.patch" - "${_patchsource}/0001-cpu.patch" - "${_patchsource}/0001-Extend-DAMOS-for-Proactive-LRU-lists-Sorting.patch" - "${_patchsource}/0001-fixes.patch" - "${_patchsource}/0001-fs-patches.patch" - "${_patchsource}/0001-futex-winesync.patch" - "${_patchsource}/0001-hwmon.patch" - "${_patchsource}/0001-lrng.patch" - "${_patchsource}/0001-lru-le9-spf.patch" - "${_patchsource}/0001-ksm.patch" - "${_patchsource}/0001-zram-entropy-calculation.patch" - "${_patchsource}/0001-PCI-Allow-BAR-movement-during-boot-and-hotplug.patch" - "auto-cpu-optimization.sh" + "${_patchsource}/0001-amd-perf.patch" + "${_patchsource}/0001-arch.patch" + "${_patchsource}/0001-bbr2.patch" + "${_patchsource}/0001-cachy.patch" + "${_patchsource}/0001-clearlinux.patch" + "${_patchsource}/0001-cpu.patch" + "${_patchsource}/0001-Extend-DAMOS-for-Proactive-LRU-lists-Sorting.patch" + "${_patchsource}/0001-fixes.patch" + "${_patchsource}/0001-fs-patches.patch" + "${_patchsource}/0001-futex-winesync.patch" + "${_patchsource}/0001-hwmon.patch" + "${_patchsource}/0001-lrng.patch" + "${_patchsource}/0001-lru-le9-spf.patch" + "${_patchsource}/0001-ksm.patch" + "${_patchsource}/0001-zram-entropy-calculation.patch" + "${_patchsource}/0001-PCI-Allow-BAR-movement-during-boot-and-hotplug.patch" + "auto-cpu-optimization.sh" ) if [ -n "$_use_kcfi" ]; then - source+=("${_patchsource}/0001-kcfi.patch") - depends+=(clang llvm lld python) - BUILD_FLAGS=( - CC=clang - LD=ld.lld - LLVM=1 - ) + source+=("${_patchsource}/0001-kcfi.patch") + depends+=(clang llvm lld python) + BUILD_FLAGS=( + CC=clang + LD=ld.lld + LLVM=1 + ) fi export KBUILD_BUILD_HOST=archlinux @@ -224,14 +224,14 @@ export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EP prepare() { -cd ${srcdir}/$_srcname + cd ${srcdir}/$_srcname - echo "Setting version..." - scripts/setlocalversion --save-scmversion - echo "-$pkgrel" > localversion.10-pkgrel - echo "${pkgbase#linux}" > localversion.20-pkgname + echo "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel + echo "${pkgbase#linux}" > localversion.20-pkgname -# [[ $src = 0001-zfs-2.1.5-staging.patch ]] && continue + # [[ $src = 0001-zfs-2.1.5-staging.patch ]] && continue local src for src in "${source[@]}"; do src="${src%%::*}" @@ -241,385 +241,387 @@ cd ${srcdir}/$_srcname patch -Np1 < "../$src" done - echo "Setting config..." - cp ../config .config - - 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 SCHED_ALT \ - --enable SCHED_BMQ \ - --disable SCHED_PDS - elif [ "$_cpusched" = "pds" ]; then - echo "Selecting PDS CPU scheduler..." - scripts/config --enable SCHED_ALT \ - --disable SCHED_BMQ \ - --enable SCHED_PDS - elif [ "$_cpusched" = "cacule" ]; then - echo "Selecting CacULE scheduler..." - scripts/config --enable CACULE_SCHED \ - --disable CACULE_RDB - elif [ "$_cpusched" = "cacule-rdb" ]; then - echo "Selecting CacULE-RDB scheduler..." - scripts/config --enable CACULE_SCHED \ - --enable CACULE_RDB \ - --set-val RDB_INTERVAL 19 - elif [ "$_cpusched" = "bore" ]; then - echo "Selecting BORE Scheduler..." - scripts/config --enable SCHED_BORE - elif [ "$_cpusched" = "tt" ]; then - echo "Selecting TT Scheduler..." - scripts/config --enable TT_SCHED - scripts/config --enable TT_ACCOUNTING_STATS - elif [ "$_cpusched" = "cfs" ]; then - echo "Selecting Completely Fair Scheduler..." - elif [ "$_cpusched" = "hardened" ]; then - echo "Selecting hardened..." - 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." + echo "Setting config..." + cp ../config .config + + if [ -n "$_processor_opt" ]; then + MARCH=$(echo $_processor_opt|tr '[:lower:]' '[:upper:]'&&echo) + MARCH2=M${MARCH} + scripts/config -k --disable CONFIG_GENERIC_CPU + scripts/config -k --enable CONFIG_${MARCH2} + fi + + if [ -n "$_use_auto_optimization" ]; then + "${srcdir}"/auto-cpu-optimization.sh fi - error "Selecting the CPU scheduler failed!" - exit - fi - - if [ -n "$_use_kcfi" ]; then - echo "Enabling kCFI" - scripts/config --enable ARCH_SUPPORTS_CFI_CLANG \ - --enable CFI_CLANG - fi - - if [ "$_use_llvm_lto" = "thin" ]; then - echo "Enabling LLVM THIN LTO..." - scripts/config \ - --enable LTO \ - --enable LTO_CLANG \ - --enable ARCH_SUPPORTS_LTO_CLANG \ - --enable ARCH_SUPPORTS_LTO_CLANG_THIN \ - --disable LTO_NONE \ - --enable HAS_LTO_CLANG \ - --disable LTO_CLANG_FULL \ - --enable LTO_CLANG_THIN \ - --enable HAVE_GCC_PLUGINS - elif [ "$_use_llvm_lto" = "full" ]; then - echo "Enabling LLVM FULL LTO..." - scripts/config \ - --enable LTO \ - --enable LTO_CLANG \ - --enable ARCH_SUPPORTS_LTO_CLANG \ - --enable ARCH_SUPPORTS_LTO_CLANG_THIN \ - --disable LTO_NONE \ - --enable HAS_LTO_CLANG \ - --enable LTO_CLANG_FULL \ - --disable LTO_CLANG_THIN \ - --enable HAVE_GCC_PLUGINS - else - scripts/config --enable LTO_NONE - fi - - if [ "$_HZ_ticks" = "1000" ]; then - echo "Setting tick rate to 1k Hz..." - 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 HZ_300 \ - --enable HZ_750 \ - --set-val HZ 750 - elif [ "$_HZ_ticks" = "600" ]; then - echo "Setting tick rate to 600Hz..." - 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 HZ_300 \ - --enable HZ_500 \ - --set-val HZ 500 - elif [ "$_HZ_ticks" = "300" ]; then - echo "Setting tick rate to 300Hz..." - fi - - if [ -n "$_NUMAdisable" ]; then - echo "Disabling NUMA from kernel config..." - 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 - - if [ -n "$_mq_deadline_disable" ]; then - echo "Disabling MQ-Deadline I/O scheduler..." - scripts/config --disable MQ_IOSCHED_DEADLINE - fi - - if [ -n "$_kyber_disable" ]; then - echo "Disabling Kyber I/O scheduler..." - scripts/config --disable MQ_IOSCHED_KYBER - fi - - if [ -n "$_per_gov" ]; then - echo "Setting performance governor..." - scripts/config --disable CPU_FREQ_DEFAULT_GOV_SCHEDUTIL \ - --enable CPU_FREQ_DEFAULT_GOV_PERFORMANCE \ - --enable PCIEASPM \ - --enable PCIEASPM_PERFORMANCE \ - --enable PCIE_BUS_PERFORMANCE - fi - - if [ "$_tickrate" = "perodic" ]; then - echo "Enabling periodic ticks..." - 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 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 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 - - if [ "$_preempt" = "full" ]; then - echo "Enabling low latency preempt..." - 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 PREEMPT_BUILD \ - --disable PREEMPT_NONE \ - --enable PREEMPT_VOLUNTARY \ - --disable PREEMPT \ - --enable PREEMPT_COUNT \ - --enable PREEMPTION \ - --disable PREEMPT_DYNAMIC - elif [ "$_tickrate" = "server" ]; then - echo "Enabling tickless idle..." - scripts/config --enable PREEMPT_NONE_BUILD \ - --enable PREEMPT_NONE \ - --disable PREEMPT_VOLUNTARY \ - --disable PREEMPT \ - --disable PREEMPT_COUNT \ - --disable PREEMPTION \ - --disable PREEMPT_DYNAMIC - fi - - if [ -n "$_cc_harder" ]; then - echo "Enabling KBUILD_CFLAGS -O3..." - scripts/config --disable CC_OPTIMIZE_FOR_PERFORMANCE \ - --enable CC_OPTIMIZE_FOR_PERFORMANCE_O3 - fi - - if [ -n "$_tcp_bbr2" ]; then - echo "Disabling TCP_CONG_CUBIC..." - scripts/config --module TCP_CONG_CUBIC \ - --disable DEFAULT_CUBIC \ - --enable TCP_CONG_BBR2 \ - --enable DEFAULT_BBR2 \ - --set-str DEFAULT_TCP_CONG bbr2 - fi - - if [ -n "$_nf_cone" ]; then - echo "Enabling FULLCONENAT..." - scripts/config --module IP_NF_TARGET_FULLCONENAT \ - --module NETFILTER_XT_TARGET_FULLCONENAT - fi - - if [ -n "$_spf_enable" ]; then - echo "Enabling SPECULATIVE_PAGE_FAULT LRU..." - scripts/config --enable SPECULATIVE_PAGE_FAULT - fi - - if [ -n "$_lru_enable" ]; then - echo "Enabling multigenerational LRU..." - scripts/config --enable ARCH_HAS_NONLEAF_PMD_YOUNG \ - --enable LRU_GEN \ - --enable LRU_GEN_ENABLED \ - --disable LRU_GEN_STATS - fi - - if [ -n "$_damon" ]; then - echo "Enabling DAMON..." - scripts/config --enable DAMON \ - --enable DAMON_VADDR \ - --enable DAMON_DBGFS \ - --enable DAMON_SYSFS \ - --enable DAMON_PADDR \ - --enable DAMON_RECLAIM - fi - - 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_SHA256 - scripts/config --enable CONFIG_LRNG_COMMON_DEV_IF - scripts/config --enable CONFIG_LRNG_DRNG_ATOMIC - scripts/config --enable CONFIG_LRNG_SYSCTL - scripts/config --enable CONFIG_LRNG_RANDOM_IF - scripts/config --module CONFIG_LRNG_KCAPI_IF - scripts/config --module CONFIG_LRNG_HWRAND_IF - scripts/config --enable CONFIG_LRNG_DEV_IF - scripts/config --enable CONFIG_LRNG_RUNTIME_ES_CONFIG - scripts/config --enable CONFIG_LRNG_IRQ_DFLT_TIMER_ES - scripts/config --disable CONFIG_LRNG_SCHED_DFLT_TIMER_ES - scripts/config --enable CONFIG_LRNG_TIMER_COMMON - scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_256 - 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 --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 --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_FULL_ENT_MULTIPLIER 1 - scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8 - scripts/config --enable CONFIG_LRNG_SCHED - scripts/config --set-val CONFIG_LRNG_SCHED_ENTROPY_RATE 4294967295 - scripts/config --enable CONFIG_LRNG_DRNG_CHACHA20 - scripts/config --module CONFIG_LRNG_DRBG - scripts/config --module CONFIG_LRNG_DRNG_KCAPI - scripts/config --enable CONFIG_LRNG_SWITCH - scripts/config --enable CONFIG_LRNG_SWITCH_HASH - scripts/config --module CONFIG_LRNG_HASH_KCAPI - scripts/config --enable CONFIG_LRNG_SWITCH_DRNG - scripts/config --module CONFIG_LRNG_SWITCH_DRBG - scripts/config --module CONFIG_LRNG_SWITCH_DRNG_KCAPI - scripts/config --enable CONFIG_LRNG_DFLT_DRNG_CHACHA20 - scripts/config --disable CONFIG_LRNG_DFLT_DRNG_DRBG - scripts/config --disable CONFIG_LRNG_DFLT_DRNG_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_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_RAW_SCHED_HIRES_ENTROPY - scripts/config --disable CONFIG_LRNG_RAW_SCHED_PID_ENTROPY - scripts/config --disable CONFIG_LRNG_RAW_SCHED_START_TIME_ENTROPY - scripts/config --disable CONFIG_LRNG_RAW_SCHED_NVCSW_ENTROPY - scripts/config --disable CONFIG_LRNG_SCHED_PERF - scripts/config --disable CONFIG_LRNG_ACVT_HASH - 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 - - if [ -n "$_zstd_swap_compression" ]; then - echo "Enabling zram ZSTD compression..." - 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 \ - --enable ZRAM_ENTROPY \ - --set-val ZRAM_ENTROPY_THRESHOLD 100000 - fi - - if [ -n "$_disable_debug" ]; then - scripts/config --disable DEBUG_INFO \ - --disable DEBUG_INFO_BTF \ - --disable DEBUG_INFO_DWARF4 \ - --disable DEBUG_INFO_DWARF5 \ - --disable PAHOLE_HAS_SPLIT_BTF \ - --disable DEBUG_INFO_BTF_MODULES \ - --disable SLUB_DEBUG \ - --disable PM_DEBUG \ - --disable PM_ADVANCED_DEBUG \ - --disable PM_SLEEP_DEBUG \ - --disable ACPI_DEBUG \ - --disable SCHED_DEBUG \ - --disable LATENCYTOP \ - --disable DEBUG_PREEMPT - fi - - echo "Enable USER_NS_UNPRIVILEGED" - scripts/config --enable USER_NS - echo "Enable WINE FASTSYNC" - scripts/config --enable 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 + + ### Selecting the CPU scheduler + if [ "$_cpusched" = "bmq" ]; then + echo "Selecting BMQ CPU scheduler..." + scripts/config --enable SCHED_ALT \ + --enable SCHED_BMQ \ + --disable SCHED_PDS + elif [ "$_cpusched" = "pds" ]; then + echo "Selecting PDS CPU scheduler..." + scripts/config --enable SCHED_ALT \ + --disable SCHED_BMQ \ + --enable SCHED_PDS + elif [ "$_cpusched" = "cacule" ]; then + echo "Selecting CacULE scheduler..." + scripts/config --enable CACULE_SCHED \ + --disable CACULE_RDB + elif [ "$_cpusched" = "cacule-rdb" ]; then + echo "Selecting CacULE-RDB scheduler..." + scripts/config --enable CACULE_SCHED \ + --enable CACULE_RDB \ + --set-val RDB_INTERVAL 19 + elif [ "$_cpusched" = "bore" ]; then + echo "Selecting BORE Scheduler..." + scripts/config --enable SCHED_BORE + elif [ "$_cpusched" = "tt" ]; then + echo "Selecting TT Scheduler..." + scripts/config --enable TT_SCHED + scripts/config --enable TT_ACCOUNTING_STATS + elif [ "$_cpusched" = "cfs" ]; then + echo "Selecting Completely Fair Scheduler..." + elif [ "$_cpusched" = "hardened" ]; then + echo "Selecting hardened..." else - warning "Your kernel was not compiled with IKPROC!" - 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 + if [ -n "$_use_kcfi" ]; then + echo "Enabling kCFI" + scripts/config --enable ARCH_SUPPORTS_CFI_CLANG \ + --enable 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 + if [ "$_use_llvm_lto" = "thin" ]; then + echo "Enabling LLVM THIN LTO..." + scripts/config \ + --enable LTO \ + --enable LTO_CLANG \ + --enable ARCH_SUPPORTS_LTO_CLANG \ + --enable ARCH_SUPPORTS_LTO_CLANG_THIN \ + --disable LTO_NONE \ + --enable HAS_LTO_CLANG \ + --disable LTO_CLANG_FULL \ + --enable LTO_CLANG_THIN \ + --enable HAVE_GCC_PLUGINS + elif [ "$_use_llvm_lto" = "full" ]; then + echo "Enabling LLVM FULL LTO..." + scripts/config \ + --enable LTO \ + --enable LTO_CLANG \ + --enable ARCH_SUPPORTS_LTO_CLANG \ + --enable ARCH_SUPPORTS_LTO_CLANG_THIN \ + --disable LTO_NONE \ + --enable HAS_LTO_CLANG \ + --enable LTO_CLANG_FULL \ + --disable LTO_CLANG_THIN \ + --enable HAVE_GCC_PLUGINS else - echo "No modprobed.db data found" - exit + scripts/config --enable LTO_NONE + fi + + if [ "$_HZ_ticks" = "1000" ]; then + echo "Setting tick rate to 1k Hz..." + 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 HZ_300 \ + --enable HZ_750 \ + --set-val HZ 750 + elif [ "$_HZ_ticks" = "600" ]; then + echo "Setting tick rate to 600Hz..." + 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 HZ_300 \ + --enable HZ_500 \ + --set-val HZ 500 + elif [ "$_HZ_ticks" = "300" ]; then + echo "Setting tick rate to 300Hz..." + fi + + if [ -n "$_NUMAdisable" ]; then + echo "Disabling NUMA from kernel config..." + 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 + + if [ -n "$_mq_deadline_disable" ]; then + echo "Disabling MQ-Deadline I/O scheduler..." + scripts/config --disable MQ_IOSCHED_DEADLINE + fi + + if [ -n "$_kyber_disable" ]; then + echo "Disabling Kyber I/O scheduler..." + scripts/config --disable MQ_IOSCHED_KYBER + fi + + if [ -n "$_per_gov" ]; then + echo "Setting performance governor..." + scripts/config --disable CPU_FREQ_DEFAULT_GOV_SCHEDUTIL \ + --enable CPU_FREQ_DEFAULT_GOV_PERFORMANCE \ + --enable PCIEASPM \ + --enable PCIEASPM_PERFORMANCE \ + --enable PCIE_BUS_PERFORMANCE + fi + + if [ "$_tickrate" = "perodic" ]; then + echo "Enabling periodic ticks..." + 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 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 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 + + if [ "$_preempt" = "full" ]; then + echo "Enabling low latency preempt..." + 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 PREEMPT_BUILD \ + --disable PREEMPT_NONE \ + --enable PREEMPT_VOLUNTARY \ + --disable PREEMPT \ + --enable PREEMPT_COUNT \ + --enable PREEMPTION \ + --disable PREEMPT_DYNAMIC + elif [ "$_tickrate" = "server" ]; then + echo "Enabling tickless idle..." + scripts/config --enable PREEMPT_NONE_BUILD \ + --enable PREEMPT_NONE \ + --disable PREEMPT_VOLUNTARY \ + --disable PREEMPT \ + --disable PREEMPT_COUNT \ + --disable PREEMPTION \ + --disable PREEMPT_DYNAMIC + fi + + if [ -n "$_cc_harder" ]; then + echo "Enabling KBUILD_CFLAGS -O3..." + scripts/config --disable CC_OPTIMIZE_FOR_PERFORMANCE \ + --enable CC_OPTIMIZE_FOR_PERFORMANCE_O3 + fi + + if [ -n "$_tcp_bbr2" ]; then + echo "Disabling TCP_CONG_CUBIC..." + scripts/config --module TCP_CONG_CUBIC \ + --disable DEFAULT_CUBIC \ + --enable TCP_CONG_BBR2 \ + --enable DEFAULT_BBR2 \ + --set-str DEFAULT_TCP_CONG bbr2 + fi + + if [ -n "$_nf_cone" ]; then + echo "Enabling FULLCONENAT..." + scripts/config --module IP_NF_TARGET_FULLCONENAT \ + --module NETFILTER_XT_TARGET_FULLCONENAT + fi + + if [ -n "$_spf_enable" ]; then + echo "Enabling SPECULATIVE_PAGE_FAULT LRU..." + scripts/config --enable SPECULATIVE_PAGE_FAULT fi - fi - ### Rewrite configuration + if [ -n "$_lru_enable" ]; then + echo "Enabling multigenerational LRU..." + scripts/config --enable ARCH_HAS_NONLEAF_PMD_YOUNG \ + --enable LRU_GEN \ + --enable LRU_GEN_ENABLED \ + --disable LRU_GEN_STATS + fi + + if [ -n "$_damon" ]; then + echo "Enabling DAMON..." + scripts/config --enable DAMON \ + --enable DAMON_VADDR \ + --enable DAMON_DBGFS \ + --enable DAMON_SYSFS \ + --enable DAMON_PADDR \ + --enable DAMON_RECLAIM + fi + + 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_SHA256 + scripts/config --enable CONFIG_LRNG_COMMON_DEV_IF + scripts/config --enable CONFIG_LRNG_DRNG_ATOMIC + scripts/config --enable CONFIG_LRNG_SYSCTL + scripts/config --enable CONFIG_LRNG_RANDOM_IF + scripts/config --module CONFIG_LRNG_KCAPI_IF + scripts/config --module CONFIG_LRNG_HWRAND_IF + scripts/config --enable CONFIG_LRNG_DEV_IF + scripts/config --enable CONFIG_LRNG_RUNTIME_ES_CONFIG + scripts/config --enable CONFIG_LRNG_IRQ_DFLT_TIMER_ES + scripts/config --disable CONFIG_LRNG_SCHED_DFLT_TIMER_ES + scripts/config --enable CONFIG_LRNG_TIMER_COMMON + scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_256 + 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 --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 --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_FULL_ENT_MULTIPLIER 1 + scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8 + scripts/config --enable CONFIG_LRNG_SCHED + scripts/config --set-val CONFIG_LRNG_SCHED_ENTROPY_RATE 4294967295 + scripts/config --enable CONFIG_LRNG_DRNG_CHACHA20 + scripts/config --module CONFIG_LRNG_DRBG + scripts/config --module CONFIG_LRNG_DRNG_KCAPI + scripts/config --enable CONFIG_LRNG_SWITCH + scripts/config --enable CONFIG_LRNG_SWITCH_HASH + scripts/config --module CONFIG_LRNG_HASH_KCAPI + scripts/config --enable CONFIG_LRNG_SWITCH_DRNG + scripts/config --module CONFIG_LRNG_SWITCH_DRBG + scripts/config --module CONFIG_LRNG_SWITCH_DRNG_KCAPI + scripts/config --enable CONFIG_LRNG_DFLT_DRNG_CHACHA20 + scripts/config --disable CONFIG_LRNG_DFLT_DRNG_DRBG + scripts/config --disable CONFIG_LRNG_DFLT_DRNG_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_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_RAW_SCHED_HIRES_ENTROPY + scripts/config --disable CONFIG_LRNG_RAW_SCHED_PID_ENTROPY + scripts/config --disable CONFIG_LRNG_RAW_SCHED_START_TIME_ENTROPY + scripts/config --disable CONFIG_LRNG_RAW_SCHED_NVCSW_ENTROPY + scripts/config --disable CONFIG_LRNG_SCHED_PERF + scripts/config --disable CONFIG_LRNG_ACVT_HASH + 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 + + if [ -n "$_zstd_swap_compression" ]; then + echo "Enabling zram ZSTD compression..." + 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 \ + --enable ZRAM_ENTROPY \ + --set-val ZRAM_ENTROPY_THRESHOLD 100000 + fi + + if [ -n "$_disable_debug" ]; then + scripts/config --disable DEBUG_INFO \ + --disable DEBUG_INFO_BTF \ + --disable DEBUG_INFO_DWARF4 \ + --disable DEBUG_INFO_DWARF5 \ + --disable PAHOLE_HAS_SPLIT_BTF \ + --disable DEBUG_INFO_BTF_MODULES \ + --disable SLUB_DEBUG \ + --disable PM_DEBUG \ + --disable PM_ADVANCED_DEBUG \ + --disable PM_SLEEP_DEBUG \ + --disable ACPI_DEBUG \ + --disable SCHED_DEBUG \ + --disable LATENCYTOP \ + --disable DEBUG_PREEMPT + fi + + echo "Enable USER_NS_UNPRIVILEGED" + scripts/config --enable USER_NS + echo "Enable WINE FASTSYNC" + scripts/config --enable 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 IKPROC!" + 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 + + ### Rewrite configuration echo "Rewrite configuration..." make ${BUILD_FLAGS[*]} prepare yes "" | make ${BUILD_FLAGS[*]} config >/dev/null @@ -630,14 +632,14 @@ cd ${srcdir}/$_srcname echo "Prepared $pkgbase version $(<version)" ### Running make nconfig - [[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig + [[ -z "$_makenconfig" ]] || make ${BUILD_FLAGS[*]} nconfig ### Save configuration for later reuse - echo "Save configuration for later reuse..." - cat .config > "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}" + echo "Save configuration for later reuse..." + cat .config > "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}" - ### 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}" } @@ -671,30 +673,30 @@ _package() { pkgdesc="The $pkgdesc kernel and modules" depends=('coreutils' 'kmod' 'initramfs') optdepends=('wireless-regdb: 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' - 'uksmd: Userspace KSM helper daemon') + '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' + 'uksmd: Userspace KSM helper daemon') provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE KSMBD-MODULE UKSMD-BUILTIN) cd ${srcdir}/$_srcname - local kernver="$(<version)" - local modulesdir="$pkgdir/usr/lib/modules/$kernver" + 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 -s image_name)" "$modulesdir/vmlinuz" + echo "Installing boot image..." + # systemd expects to find the kernel here to allow hibernation + # https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344 + install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz" - # Used by mkinitcpio to name the kernel - echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" + # Used by mkinitcpio to name the kernel + echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" - echo "Installing modules..." - make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \ - DEPMOD=/doesnt/exist modules_install # Suppress depmod + echo "Installing modules..." + make 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} + # remove build and source links + rm "$modulesdir"/{source,build} } _package-headers() { @@ -704,77 +706,77 @@ _package-headers() { cd ${srcdir}/${_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 - 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 - 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" + 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 + 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 + 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" echo "Adding symlink..." mkdir -p "$pkgdir/usr/src" @@ -785,11 +787,11 @@ _package-zfs(){ pkgdesc="zfs module for the $pkgdesc kernel" depends=('pahole' linux-$pkgsuffix=$_kernver) - cd ${srcdir}/"zfs" - install -dm755 "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" - install -m644 module/*/*.ko "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" - find "$pkgdir" -name '*.ko' -exec zstd --rm -10 {} + -# sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${pkgver}-${pkgbase}'/" "$startdir/zfs.install" + cd ${srcdir}/"zfs" + install -dm755 "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" + install -m644 module/*/*.ko "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" + find "$pkgdir" -name '*.ko' -exec zstd --rm -10 {} + + # sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${pkgver}-${pkgbase}'/" "$startdir/zfs.install" } pkgname=("$pkgbase" "$pkgbase-headers") @@ -804,22 +806,22 @@ for _p in "${pkgname[@]}"; do done sha256sums=('c70cb405076c3cfd73e4de729430b0342ea21b92a04d8284a03fac664ef1cfea' - '83425e8b1553f4ad0d8fdadbad3980b71f7a36742b3238813ff4d00cd3bf08f8' - 'e8179f661dc9ba2ad89455f0c7e952e9dd9b4d6445476384cbac2730cdd46b65' - '326d129f9435145add756dc967accd56ffe1d8ff1b6650f84d2578c41bd6dfd6' - '2bfe45a67732a97cea01bf760a8f9fb297057c2488eb9e61720a0bb26c9b11e2' - 'dc2898751118804bc3f36b5a6928a2927d04919ce41c0ce013009f5564d6d232' - '3754c1ad6bc2fb4e73e9d77137e9f245b3be1a73a05685f0ca03f4c086e5d04d' - 'e2266d499cebdd5d195a044048ae4a13755f1d3edb3ece2c3f8837228b4cd521' - 'c2bf57d37db1f93c5f3eeff2e2957f01618f4786613c13755f9ae6989d2b745c' - '30fd4ca078cb1eee0bc4005700da4d15515a577ccdb96ea7922040aa9086d6b7' - '4b18c6a82b62c50b45568526eeb16ae877c8f52c407a4bb9c6144c07a0d1233a' - 'f4ed599589fdd44270229492505f5f88e20d79e93b8044f8041a2fc90486bb4e' - '1d9c83de97d541f5a7ae4612a96c05aea8ce38de5471cc21fd2197dbd6644d00' - '344806f8ea9f0f7da883e2c27835153944df7a4b15bb3f97ec6b7b7709682f5d' - '99b18e00ca3e038481a23f4c83bc285a1ad0e209d049a8476c8f997627aaea79' - 'd2c542b3d44ef11364248c550d20ec7b52261cd98ee5191c24d59c9e0a69392e' - '8edf9b9b1a9c26cc4d6dfaf5f14c06b197a04c5bbb8459dd292c033aa2534d19' - 'efe8558b63feb0e76b61d69952c5300ad54c951d9044101be7c01932a54fb4fb' - 'cb2494f5ad43fd260e26d771305dade3f9499fa1ffaf53cb9ef8c19b66dab7d7' - 'be21f15aeb22b2ca1e35e4975590d30736af0483ea7464e3464a60d993e37e22') + '83425e8b1553f4ad0d8fdadbad3980b71f7a36742b3238813ff4d00cd3bf08f8' + 'e8179f661dc9ba2ad89455f0c7e952e9dd9b4d6445476384cbac2730cdd46b65' + '326d129f9435145add756dc967accd56ffe1d8ff1b6650f84d2578c41bd6dfd6' + '2bfe45a67732a97cea01bf760a8f9fb297057c2488eb9e61720a0bb26c9b11e2' + 'dc2898751118804bc3f36b5a6928a2927d04919ce41c0ce013009f5564d6d232' + '3754c1ad6bc2fb4e73e9d77137e9f245b3be1a73a05685f0ca03f4c086e5d04d' + 'e2266d499cebdd5d195a044048ae4a13755f1d3edb3ece2c3f8837228b4cd521' + 'c2bf57d37db1f93c5f3eeff2e2957f01618f4786613c13755f9ae6989d2b745c' + '30fd4ca078cb1eee0bc4005700da4d15515a577ccdb96ea7922040aa9086d6b7' + '6b6c8d1fbefe7aa165fc62aef527665777d474133e2507e1dc9d09b12282f857' + 'f4ed599589fdd44270229492505f5f88e20d79e93b8044f8041a2fc90486bb4e' + '1d9c83de97d541f5a7ae4612a96c05aea8ce38de5471cc21fd2197dbd6644d00' + '344806f8ea9f0f7da883e2c27835153944df7a4b15bb3f97ec6b7b7709682f5d' + '99b18e00ca3e038481a23f4c83bc285a1ad0e209d049a8476c8f997627aaea79' + 'd2c542b3d44ef11364248c550d20ec7b52261cd98ee5191c24d59c9e0a69392e' + '8edf9b9b1a9c26cc4d6dfaf5f14c06b197a04c5bbb8459dd292c033aa2534d19' + 'efe8558b63feb0e76b61d69952c5300ad54c951d9044101be7c01932a54fb4fb' + 'cb2494f5ad43fd260e26d771305dade3f9499fa1ffaf53cb9ef8c19b66dab7d7' +'ce8bf7807b45a27eed05a5e1de5a0bf6293a3bbc2085bacae70cd1368f368d1f') diff --git a/auto-cpu-optimization.sh b/auto-cpu-optimization.sh index c0f9036e31fb..a86795ada77a 100755 --- a/auto-cpu-optimization.sh +++ b/auto-cpu-optimization.sh @@ -1,36 +1,43 @@ #!/bin/bash - -####################################### -# AUTO-CPU-OPTIMIZATION # -####################################### -# CREATOR : BL4CKH47H4CK3R # -####################################### -# HTTPS://GITHUB.COM/BL4CKH47H4CK3R # -####################################### - -CPU=`gcc -Q -march=native --help=target | grep march | awk '{print $2}' | head -1` -MARCH=`echo ${CPU} | tr '[:lower:]' '[:upper:]'`&& echo - -if [[ ${MARCH} == "ZNVER" ]] -then - MARCH="ZEN" - -elif [[ ${MARCH} == "ZNVER2" ]] -then - MARCH="ZEN2" - -elif [[ ${MARCH} == "ZNVER3" ]] -then - MARCH="ZEN3" - -elif [[ ${MARCH} == "BDVER2" ]] -then - MARCH="MPILEDRIVER" +CPU=$(gcc -Q -march=native --help=target|grep march=|awk '{print $2}'|head -1) +MARCH=$(echo $CPU|tr '[:lower:]' '[:upper:]'&&echo) +if [[ ${MARCH} == "ZNVER" ]]; then + MARCH="ZEN" +elif [[ ${MARCH} == "ZNVER2" ]]; then + MARCH="ZEN2" +elif [[ ${MARCH} == "ZNVER3" ]]; then + MARCH="ZEN3" +elif [[ ${MARCH} == "BDVER1" ]]; then + MARCH="BULLDOZER" +elif [[ ${MARCH} == "BDVER2" ]]; then + MARCH="PILEDRIVER" +elif [[ ${MARCH} == "BDVER3" ]]; then + MARCH="STEAMROLLER" +elif [[ ${MARCH} == "BDVER4" ]]; then + MARCH="EXCAVATOR" +elif [[ ${MARCH} == "BTVER1" ]]; then + MARCH="BOBCAT" +elif [[ ${MARCH} == "BTVER2" ]]; then + MARCH="JAGUAR" +elif [[ ${MARCH} == "AMDFAM10" ]]; then + MARCH="MK10" +elif [[ ${MARCH} == "K8-SSE3" ]]; then + MARCH="K8SSE3" +elif [[ ${MARCH} == "BONNELL" ]]; then + MARCH="ATOM" +elif [[ ${MARCH} == "GOLDMONT-PLUS" ]]; then + MARCH="GOLDMONTPLUS" +elif [[ ${MARCH} == "SKYLAKE-AVX512" ]]; then + MARCH="SKYLAKE2" +elif [[ ${MARCH} == "ICELAKE-CLIENT" ]]; then + MARCH="ICELAKE" fi - +MARCH2=M${MARCH} +echo echo "----------------------------------" echo "| APPLYING AUTO-CPU-OPTIMIZATION |" echo "----------------------------------" -echo "[*] DETECTED CPU (MARCH) : ${MARCH}" -sed -i "/CONFIG_GENERIC_CPU=y/d;s/\# CONFIG_M${MARCH} is not set/CONFIG_M${MARCH}=y/g" .config -sleep 3 && echo +echo "[*] DETECTED CPU (MARCH) : ${MARCH2}" +scripts/config -k --disable CONFIG_GENERIC_CPU +scripts/config -k --enable CONFIG_${MARCH2} +sleep 3&&echo |