diff options
author | P.Jung | 2021-08-13 04:51:37 +0000 |
---|---|---|
committer | P.Jung | 2021-08-13 04:51:37 +0000 |
commit | f6f817b6d32ea89271c429477b2d8621ae8dd602 (patch) | |
tree | b5070bd40c088d98226d3b43126d19f0e46b754a | |
parent | e3d95908cd0d8b89d4083623380e47d3d53d329b (diff) | |
download | aur-f6f817b6d32ea89271c429477b2d8621ae8dd602.tar.gz |
config
-rw-r--r-- | .SRCINFO | 88 | ||||
-rw-r--r-- | PKGBUILD | 929 |
2 files changed, 464 insertions, 553 deletions
@@ -1,30 +1,26 @@ pkgbase = linux-cacule-rdb-llvm - pkgdesc = Linux Kernel with cacule scheduler and lto compiled + pkgdesc = Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets pkgver = 5.13.10 - pkgrel = 1 - url = https://kernel.org/ + pkgrel = 2 + url = https://github.com/hamadmarri/cacule-cpu-scheduler arch = x86_64 arch = x86_64_v3 license = GPL2 - makedepends = bc makedepends = kmod + makedepends = bc makedepends = libelf + makedepends = python-sphinx + makedepends = python-sphinx_rtd_theme + makedepends = graphviz + makedepends = imagemagick makedepends = pahole makedepends = cpio makedepends = perl makedepends = tar makedepends = xz - makedepends = xmlto - makedepends = python-sphinx - makedepends = python-sphinx_rtd_theme - makedepends = graphviz - makedepends = imagemagick - makedepends = git - makedepends = llvm - makedepends = clang - makedepends = lld options = !strip - source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.13.10.tar.xz + source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.13.tar.xz + source = https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-5.13.10.xz source = config source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/arch-patches-v3/0001-arch-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/CacULE/v5.13/cacule-5.13.patch @@ -51,47 +47,45 @@ pkgbase = linux-cacule-rdb-llvm source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/zstd-patches-v5/0001-zstd-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/clearlinux-patches-v2/0001-clearlinux-patches.patch source = https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13/v4l2loopback-patches-v2/0001-v4l2loopback-patches.patch - sha256sums = 30caf51b8f8bd127f3dbcad8ed5e696c0c0e3ca5201ce34c3cb66d820590d705 - sha256sums = 9bf9b0632ee2f69e8073efb215ba907b2cd18b35cfc5a4e3e6b2834e8b631c13 - sha256sums = 5e0070b364a3d6f05b0c8fe32e6a30b8acfaf16d2b60d472375f780582fe36cf - sha256sums = d498816b89a46bde060cbea77313ec14e293f820ea76c682870e894e6ff4af22 - sha256sums = 476c99cb010eb536ebf8b68044cd7f2a581c74e4d5c5e71e0983541f727bafde - sha256sums = a65035f7b751ea792989784083d5063293d1a0979bcf4c428b4ba94aeac17809 - sha256sums = e1d58afdd4a9bf5a6a9ff0ff8e943d8a67da24fd4160b94655bf3fae5820e135 - sha256sums = 034d12a73b507133da2c69a34d61efd2f6b6618549650aa26d748142d22002e1 - sha256sums = d9b37cb7edfd48b368f6969e1698278f74f548474bd2707d14a78f371a5e3b15 - sha256sums = f39ce0a6a967e4c83f665288479c3236b211bbbb4ee508d6fbefee2904a4e80c - sha256sums = 933cf04b6705e9564435163a514082f249b2a8e81e88f08fb3ce68bfe8ffcec7 - sha256sums = 0b2a42aad39d0feb26b7cf1996ba6792788d060f3b73a7019aa1df9c0922ced8 - sha256sums = 0735544a91293d9c192b7f9283541fe62ea5517c11e4b421b502ab76c064bd62 - sha256sums = 320e67ab827abb506481b9053fae85e494195e5d0ee3b61948999965856b425c - sha256sums = 744a615a9099df44bb9c181f1d140a099fe11136c8dbb0b26e4af045460298a6 - sha256sums = aa5cbec74dc27591d47616c6c0748475ab55b5efdcbc9d81c2cc49b9b0bf2c00 - sha256sums = 7289f4ce29d653a0ca511410b66bd3cb42fbcc54f5e097c85e528d4e27ce41ff - sha256sums = d2ba0ec7f76e267417f72abbf3ef35ce232d1e83c7ff33971bf8ccabb9739604 - sha256sums = 4c1bd02bdd1f3596f1066db8b0d5c38252ecaa830eb0719d4c0df11535523dc1 - sha256sums = e5818fcaa55ed416b08900db04f18ae6d29b89d19e0b2fb3feb410efd8099b32 - sha256sums = 0c1e42b6c197e5e5c8a0c5f4047037289063e064f6b841f05028c62b5449864b - sha256sums = d562264ae4492ec07c55690cac0ee95703beed453330ab7a147e60c25b52e20f - sha256sums = 8e56f88209ec69bf7004c52a7f31ba5fffa2c6af3db306e7ec385210a0b5944e - sha256sums = 78b07f9d39573633ac7035201d7a95c44675084562995b7e60e549e44fbcfcb7 - sha256sums = a137f641dad68b0b29491c4e87a41569578aa3c95a37a654912b7d5c16a756bc - sha256sums = 04205c627cd3dcb737bd7b432cd7172d30f4ca0114b003bc3ac0dc8dadfa3c01 - sha256sums = 825d83cc3f243d12a4501e6b691a78dfa812e61dcd4c042a07ab4be484052bda + md5sums = 76c60fb304510a7bbd9c838790bc5fe4 + md5sums = 4d745d474d07277daee24107239c8902 + md5sums = 4b922991e637a20e8d4e2f2fd88451ee + md5sums = 6d8a2a8f499dd9643ca4af2254389ce7 + md5sums = 078da517ec2d54283af81d7da3af671a + md5sums = 7640a753a7803248543675a6edc75e08 + md5sums = 85f4be6562ee033b83814353a12b61bd + md5sums = 3ec9a8784a9e73462def2e9c33de9a1e + md5sums = 9573b92353399343db8a691c9b208300 + md5sums = e15a64663e6221ea40b02aeb8517e70a + md5sums = 1217799f33d6ba822152a0e2fb6f2e34 + md5sums = 31c897f53b91f98532321cd24928c0d7 + md5sums = 698d661fa23611933146b83e0fa9cade + md5sums = 4f9e72e7edb909da5cd650afe13aadb6 + md5sums = 9bbbd88f0303ccd59064648eaaf80edd + md5sums = 1bd37d8e71b2a7aae8ebd2853a08f445 + md5sums = 65a4399a10b2abd0f327145d479db12d + md5sums = 81f27f12e20971c7d7fc3a53ffb6842c + md5sums = f9b3c2263204ebfae89f29b83278b54b + md5sums = e84f0dadb9e7487fac39541c5bd85d7a + md5sums = b6623f818462d08b03fdc1b573c90e9f + md5sums = 2b2be59407dd342f1cea80602a93b6c0 + md5sums = 9977ba0e159416108217a45438ebebb4 + md5sums = 92e9db1a7777666a1e6353b4760f1275 + md5sums = 9e5114dba6da65e8d444aa225b109a21 + md5sums = 2aa4d3664fc16dac2f18fe8c22ba1df1 + md5sums = 7dd37a74d7926f4c5ae3b3f76d7172a2 + md5sums = 08590776013d05bc7a96ef5557c54200 pkgname = linux-cacule-rdb-llvm - pkgdesc = The Linux Kernel with cacule scheduler and lto compiled and modules + pkgdesc = The Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets kernel and modules depends = coreutils depends = kmod depends = initramfs optdepends = crda: to set the correct wireless channels of your country optdepends = linux-firmware: firmware images needed for some devices + optdepends = 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 provides = WIREGUARD-MODULE - replaces = virtualbox-guest-modules-arch - replaces = wireguard-arch pkgname = linux-cacule-rdb-llvm-headers - pkgdesc = Headers and scripts for building modules for the Linux Kernel with cacule scheduler and lto compiled - depends = linux-cacule-rdb-llvm=5.13.10 - depends = pahole + pkgdesc = Headers and scripts for building modules for the Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets kernel @@ -59,54 +59,52 @@ _use_current= ### IMPORTANT: Do no edit below this line unless you know what you're doing +_major=5.13 +_minor=10 +_srcname=linux-${_major} pkgbase=linux-cacule-rdb-llvm -pkgname=("${pkgbase}" "${pkgbase}-headers") -pkgver=5.13.10 -pkgrel=1 -arch=(x86_64 x86_64_v3) -pkgdesc='Linux Kernel with cacule scheduler and lto compiled' -_gittag=v${pkgver%.*}-${pkgver##*.} -url="https://kernel.org/" -license=(GPL2) -makedepends=( - bc kmod libelf pahole cpio perl tar xz - xmlto python-sphinx python-sphinx_rtd_theme - graphviz imagemagick git llvm clang lld -) +pkgver=${_major}.${_minor} +#pkgver=${_major} +pkgrel=2 +pkgdesc='Linux-CacULE-RDB Kernel by Hamad Marri and with some other patchsets' +arch=('x86_64' 'x86_64_v3') +url="https://github.com/hamadmarri/cacule-cpu-scheduler" +license=('GPL2') +makedepends=('kmod' 'bc' 'libelf' 'python-sphinx' 'python-sphinx_rtd_theme' + 'graphviz' 'imagemagick' 'pahole' 'cpio' 'perl' 'tar' 'xz') +options=('!strip') _patchsource="https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/5.13" _caculepatches="https://raw.githubusercontent.com/ptr1337/linux-cacule-aur/master/patches/CacULE" source=( - "https://cdn.kernel.org/pub/linux/kernel/v${pkgver:0:1}.x/linux-${pkgver}.tar.xz" - 'config' # kernel config file - #'0002-x86-fpu-2021-07-07.patch' -# '0003-clang.patch' -"${_patchsource}/arch-patches-v3/0001-arch-patches.patch" -"${_caculepatches}/v5.13/cacule-5.13.patch" -"${_patchsource}/cpu-patches/0001-cpu-patches.patch" -"${_patchsource}/futex-patches/0001-futex-resync-from-gitlab.collabora.com.patch" -"${_patchsource}/futex2-xanmod-patches-v3/0001-futex2-resync-from-gitlab.collabora.com.patch" -"${_patchsource}/winesync/5.13-winesync.patch" -"${_patchsource}/xanmod-patches-v2/0001-xanmod-patches.patch" -"${_patchsource}/zen-patches/0001-zen-patches.patch" -"${_patchsource}/lqx-patches-v3/0001-lqx-patches.patch" -"${_patchsource}/bfq-patches-v6/0001-bfq-patches.patch" -"${_patchsource}/block-patches-v2/0001-block-patches.patch" -"${_patchsource}/fixes-miscellaneous/0001-fixes-miscellaneous.patch" -"${_patchsource}/bbr2-patches-v2/0001-bbr2-patches.patch" -"${_patchsource}/btrfs-patches-v2/0001-btrfs-patches.patch" -"${_patchsource}/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch" -"${_patchsource}/pf-patches-v9/0001-pf-patches.patch" -"${_patchsource}/lru-patches-v7/0001-lru-patches.patch" -"${_patchsource}/ntfs3-patches-v2/0001-ntfs3-patches.patch" -"${_patchsource}/lrng-patches/0001-lrng-patches-v2.patch" -"${_patchsource}/security-patches/0001-security-patches.patch" -"${_patchsource}/alsa-patches/0001-alsa-patches.patch" -"${_patchsource}/zstd-upstream-patches/0001-zstd-upstream-patches.patch" -"${_patchsource}/zstd-patches-v5/0001-zstd-patches.patch" -"${_patchsource}/clearlinux-patches-v2/0001-clearlinux-patches.patch" -"${_patchsource}/v4l2loopback-patches-v2/0001-v4l2loopback-patches.patch" -) - + "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_major}.tar.xz" + "https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-${pkgver}.xz" + "config" + "${_patchsource}/arch-patches-v3/0001-arch-patches.patch" + "${_caculepatches}/v5.13/cacule-5.13.patch" + "${_patchsource}/cpu-patches/0001-cpu-patches.patch" + "${_patchsource}/futex-patches/0001-futex-resync-from-gitlab.collabora.com.patch" + "${_patchsource}/futex2-xanmod-patches-v3/0001-futex2-resync-from-gitlab.collabora.com.patch" + "${_patchsource}/winesync/5.13-winesync.patch" + "${_patchsource}/xanmod-patches-v2/0001-xanmod-patches.patch" + "${_patchsource}/zen-patches/0001-zen-patches.patch" + "${_patchsource}/lqx-patches-v3/0001-lqx-patches.patch" + "${_patchsource}/bfq-patches-v6/0001-bfq-patches.patch" + "${_patchsource}/block-patches-v2/0001-block-patches.patch" + "${_patchsource}/fixes-miscellaneous/0001-fixes-miscellaneous.patch" + "${_patchsource}/bbr2-patches-v2/0001-bbr2-patches.patch" + "${_patchsource}/btrfs-patches-v2/0001-btrfs-patches.patch" + "${_patchsource}/android-patches/0001-android-export-symbold-and-enable-building-ashmem-an.patch" + "${_patchsource}/pf-patches-v9/0001-pf-patches.patch" + "${_patchsource}/lru-patches-v7/0001-lru-patches.patch" + "${_patchsource}/ntfs3-patches-v2/0001-ntfs3-patches.patch" + "${_patchsource}/lrng-patches/0001-lrng-patches-v2.patch" + "${_patchsource}/security-patches/0001-security-patches.patch" + "${_patchsource}/alsa-patches/0001-alsa-patches.patch" + "${_patchsource}/zstd-upstream-patches/0001-zstd-upstream-patches.patch" + "${_patchsource}/zstd-patches-v5/0001-zstd-patches.patch" + "${_patchsource}/clearlinux-patches-v2/0001-clearlinux-patches.patch" + "${_patchsource}/v4l2loopback-patches-v2/0001-v4l2loopback-patches.patch" + ) BUILD_FLAGS=( LLVM=1 LLVM_IAS=1 @@ -124,502 +122,421 @@ BUILD_FLAGS=( OBJCOPY=llvm-objcopy OBJDUMP=objdump ) -sha256sums=('30caf51b8f8bd127f3dbcad8ed5e696c0c0e3ca5201ce34c3cb66d820590d705' - '9bf9b0632ee2f69e8073efb215ba907b2cd18b35cfc5a4e3e6b2834e8b631c13' - '5e0070b364a3d6f05b0c8fe32e6a30b8acfaf16d2b60d472375f780582fe36cf' - 'd498816b89a46bde060cbea77313ec14e293f820ea76c682870e894e6ff4af22' - '476c99cb010eb536ebf8b68044cd7f2a581c74e4d5c5e71e0983541f727bafde' - 'a65035f7b751ea792989784083d5063293d1a0979bcf4c428b4ba94aeac17809' - 'e1d58afdd4a9bf5a6a9ff0ff8e943d8a67da24fd4160b94655bf3fae5820e135' - '034d12a73b507133da2c69a34d61efd2f6b6618549650aa26d748142d22002e1' - 'd9b37cb7edfd48b368f6969e1698278f74f548474bd2707d14a78f371a5e3b15' - 'f39ce0a6a967e4c83f665288479c3236b211bbbb4ee508d6fbefee2904a4e80c' - '933cf04b6705e9564435163a514082f249b2a8e81e88f08fb3ce68bfe8ffcec7' - '0b2a42aad39d0feb26b7cf1996ba6792788d060f3b73a7019aa1df9c0922ced8' - '0735544a91293d9c192b7f9283541fe62ea5517c11e4b421b502ab76c064bd62' - '320e67ab827abb506481b9053fae85e494195e5d0ee3b61948999965856b425c' - '744a615a9099df44bb9c181f1d140a099fe11136c8dbb0b26e4af045460298a6' - 'aa5cbec74dc27591d47616c6c0748475ab55b5efdcbc9d81c2cc49b9b0bf2c00' - '7289f4ce29d653a0ca511410b66bd3cb42fbcc54f5e097c85e528d4e27ce41ff' - 'd2ba0ec7f76e267417f72abbf3ef35ce232d1e83c7ff33971bf8ccabb9739604' - '4c1bd02bdd1f3596f1066db8b0d5c38252ecaa830eb0719d4c0df11535523dc1' - 'e5818fcaa55ed416b08900db04f18ae6d29b89d19e0b2fb3feb410efd8099b32' - '0c1e42b6c197e5e5c8a0c5f4047037289063e064f6b841f05028c62b5449864b' - 'd562264ae4492ec07c55690cac0ee95703beed453330ab7a147e60c25b52e20f' - '8e56f88209ec69bf7004c52a7f31ba5fffa2c6af3db306e7ec385210a0b5944e' - '78b07f9d39573633ac7035201d7a95c44675084562995b7e60e549e44fbcfcb7' - 'a137f641dad68b0b29491c4e87a41569578aa3c95a37a654912b7d5c16a756bc' - '04205c627cd3dcb737bd7b432cd7172d30f4ca0114b003bc3ac0dc8dadfa3c01' - '825d83cc3f243d12a4501e6b691a78dfa812e61dcd4c042a07ab4be484052bda') -options=('!strip') - export KBUILD_BUILD_HOST=archlinux -export KBUILD_BUILD_USER="${pkgbase}" +export KBUILD_BUILD_USER=$pkgbase export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" prepare() { + cd ${_srcname} + + ### Add upstream patches + echo "Add upstream patches" + patch -Np1 -i ../patch-${pkgver} + + ### Setting version + echo "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel + echo "${pkgbase#linux}" > localversion.20-pkgname + + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + echo "Applying patch $src..." + patch -Np1 < "../$src" + done + + ### Setting config + echo "Setting config..." + cp "${srcdir}"/config .config + make ${BUILD_FLAGS[*]} olddefconfig + ### CPU_ARCH SCRIPT ## + source "${startdir}"/configure + cpu_arch - cd "${srcdir:?}/linux-${pkgver}" || ( - echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Prepare failed! \E[0m" - exit 1 - ) + ### Optionally set tickrate to 2000HZ + if [ -n "$_2k_HZ_ticks" ]; then + echo "Setting tick rate to 2k..." + scripts/config --disable CONFIG_HZ_300 + scripts/config --enable CONFIG_HZ_2000 + scripts/config --set-val CONFIG_HZ 2000 + fi - ### Setting version - echo "Setting version..." - scripts/setlocalversion --save-scmversion - echo "-$pkgrel" > localversion.10-pkgrel - echo "${pkgbase#linux}" > localversion.20-pkgname + ### Optionally set tickrate to 1000 + if [ -n "$_1k_HZ_ticks" ]; then + echo "Setting tick rate to 1k..." + scripts/config --disable CONFIG_HZ_300 + scripts/config --enable CONFIG_HZ_1000 + scripts/config --set-val CONFIG_HZ 1000 + fi + + ### Optionally set tickrate to 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 - local src - for src in "${source[@]}"; do - src="${src%%::*}" - src="${src##*/}" - [[ $src = *.patch ]] || continue - echo "Applying patch $src..." - patch -Np1 < "../$src" - done + ### Optionally disable NUMA for 64-bit kernels only + # (x86 kernels do not support NUMA) + if [ -n "$_NUMAdisable" ]; then + echo "Disabling NUMA from kernel config..." + scripts/config --disable CONFIG_NUMA + fi + if [ -n "$_fsync" ]; then + echo "Enable Fsync support" + scripts/config --enable CONFIG_FUTEX + scripts/config --enable CONFIG_FUTEX_PI + fi - echo "Setting config..." - cp ../config .config + if [ -n "$_futex2" ]; then + echo "Enable Futex2 support" + scripts/config --enable CONFIG_FUTEX2 + fi - make ${BUILD_FLAGS[*]} olddefconfig + if [ -n "$_winesync" ]; then + echo "Enable winesync support" + scripts/config --module CONFIG_WINESYNC + fi - ### CPU_ARCH SCRIPT ## - source "${startdir}"/configure + ### 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 "Disabling uneeded governors..." + scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND + scripts/config --disable CONFIG_CPU_FREQ_GOV_CONSERVATIVE + scripts/config --disable CONFIG_CPU_FREQ_GOV_USERSPACE + scripts/config --disable CONFIG_CPU_FREQ_GOV_SCHEDUTIL + fi - cpu_arch - ### Optionally set tickrate to 2000HZ - if [ -n "$_2k_HZ_ticks" ]; then - echo "Setting tick rate to 2k..." - scripts/config --disable CONFIG_HZ_300 - scripts/config --enable CONFIG_HZ_2000 - scripts/config --set-val CONFIG_HZ 2000 - fi - - ### Optionally set tickrate to 1000 - if [ -n "$_1k_HZ_ticks" ]; then - echo "Setting tick rate to 1k..." - scripts/config --disable CONFIG_HZ_300 - scripts/config --enable CONFIG_HZ_1000 - scripts/config --set-val CONFIG_HZ 1000 + ### Disable Deadline I/O scheduler + if [ -n "$_deadline_disable" ]; then + echo "Disabling 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 + + + ### Enable protect file mappings under memory pressure + if [ -n "$_mm_protect" ]; then + echo "Enabling protect file mappings under memory pressure..." + scripts/config --enable CONFIG_UNEVICTABLE_FILE + scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144 + scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_MIN 131072 + scripts/config --enable CONFIG_UNEVICTABLE_ANON + scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_LOW 65536 + scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_MIN 32768 + fi + + ### Enable multigenerational LRU + if [ -n "$_lru_enable" ]; then + echo "Enabling multigenerational LRU..." + scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG + scripts/config --enable CONFIG_LRU_GEN + scripts/config --set-val CONFIG_NR_LRU_GENS 7 + scripts/config --set-val CONFIG_TIERS_PER_GEN 4 + scripts/config --enable CONFIG_LRU_GEN_ENABLED + scripts/config --disable CONFIG_LRU_GEN_STATS + fi + + ### Enabling ZSTD COMPRESSION ## + echo "Set module compression to ZSTD" + scripts/config --enable CONFIG_MODULE_COMPRESS + scripts/config --disable CONFIG_MODULE_COMPRESS_XZ + scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD + scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19 + scripts/config --disable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA + + + ### 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 - ### 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 - fi - - if [ -n "$_fsync" ]; then - echo "Enable Fsync support" - scripts/config --enable CONFIG_FUTEX - scripts/config --enable CONFIG_FUTEX_PI - fi - - if [ -n "$_futex2" ]; then - echo "Enable Futex2 support" - scripts/config --enable CONFIG_FUTEX2 - fi - - if [ -n "$_winesync" ]; then - echo "Enable winesync support" - scripts/config --module CONFIG_WINESYNC - 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 "Disabling uneeded governors..." - scripts/config --enable CONFIG_CPU_FREQ_GOV_ONDEMAND - scripts/config --disable CONFIG_CPU_FREQ_GOV_CONSERVATIVE - scripts/config --disable CONFIG_CPU_FREQ_GOV_USERSPACE - scripts/config --disable CONFIG_CPU_FREQ_GOV_SCHEDUTIL - fi - - ### Disable Deadline I/O scheduler - if [ -n "$_deadline_disable" ]; then - echo "Disabling Deadline I/O scheduler..." - scripts/config --disable CONFIG_MQ_IOSCHED_DEADLINE + ### Enable Linux Random Number Generator + if [ -n "$_lrng_enable" ]; then + echo "Enabling Linux Random Number Generator ..." + scripts/config --enable CONFIG_LRNG + scripts/config --disable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES + scripts/config --set-val CONFIG_CONFIG_LRNG_OVERSAMPLE_ES_BITS 0 + scripts/config --set-val CONFIG_LRNG_SEED_BUFFER_INIT_ADD_BITS 0 + scripts/config --enable CONFIG_LRNG_CONTINUOUS_COMPRESSION_ENABLED + scripts/config --disable CONFIG_LRNG_CONTINUOUS_COMPRESSION_DISABLED + scripts/config --disable CONFIG_LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION + scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_32 + 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 --disable CONFIG_LRNG_HEALTH_TESTS + scripts/config --set-val CONFIG_LRNG_RCT_CUTOFF 31 + scripts/config --set-val CONFIG_LRNG_APT_CUTOFF 325 + scripts/config --set-val CONFIG_LRNG_IRQ_ENTROPY_RATE 256 + scripts/config --enable CONFIG_LRNG_JENT + scripts/config --set-val CONFIG_LRNG_JENT_ENTROPY_RATE 16 + scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8 + scripts/config --disable CONFIG_LRNG_DRNG_SWITCH + scripts/config --disable CONFIG_LRNG_DRBG + scripts/config --disable CONFIG_LRNG_TESTING_MENU + scripts/config --disable CONFIG_LRNG_SELFTEST fi - ### Disable Kyber I/O scheduler - if [ -n "$_kyber_disable" ]; then - echo "Disabling Kyber I/O scheduler..." - scripts/config --disable CONFIG_MQ_IOSCHED_KYBER + ### Enable SECURITY_FORK_BRUTE + if [ -n "$_fork_brute" ]; then + echo "Enabling SECURITY_FORK_BRUTE..." + scripts/config --enable CONFIG_SECURITY_FORK_BRUTE + scripts/config --set-str CONFIG_LSM lockdown,yama,brute fi - - - - - ### Enable protect file mappings under memory pressure - if [ -n "$_mm_protect" ]; then - echo "Enabling protect file mappings under memory pressure..." - scripts/config --enable CONFIG_UNEVICTABLE_FILE - scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_LOW 262144 - scripts/config --set-val CONFIG_UNEVICTABLE_FILE_KBYTES_MIN 131072 - scripts/config --enable CONFIG_UNEVICTABLE_ANON - scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_LOW 65536 - scripts/config --set-val CONFIG_UNEVICTABLE_ANON_KBYTES_MIN 32768 + ### Enabling Cacule-Config ## + echo "Enable CacULE CPU scheduler..." + scripts/config --enable CONFIG_CACULE_SCHED + scripts/config --enable CONFIG_CACULE_RDB + scripts/config --set-val CONFIG_RDB_INTERVAL 19 + scripts/config --disable CONFIG_RDB_TASKS_GROUP + scripts/config --enable CONFIG_FAIR_GROUP_SCHED + scripts/config --enable CONFIG_SCHED_AUTOGROUP + scripts/config --disable CONFIG_EXPERT + scripts/config --disable CONFIG_SCHED_DEBUG + scripts/config --disable CONFIG_SCHED_INFO + scripts/config --disable CONFIG_SCHEDSTATS + scripts/config --disable CONFIG_DEBUG_KERNEL +ยด echo "Enabling Full Tickless" + scripts/config --disable CONFIG_HZ_PERIODIC + scripts/config --disable CONFIG_NO_HZ_IDLE + scripts/config --disable CONFIG_NO_HZ_FULL + scripts/config --enable CONFIG_NO_HZ + scripts/config --enable CONFIG_NO_HZ_COMMON + scripts/config --enable CONFIG_CONTEXT_TRACKING + scripts/config --disable CONFIG_CONTEXT_TRACKING_FORCE + echo "Enabling KBUILD_CFLAGS -O3..." + scripts/config --disable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE + scripts/config --enable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 + echo "Enable PREEMPT" + 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 + echo "Enable NTFS3" + scripts/config --module CONFIG_NTFS_FS + scripts/config --enable CONFIG_NTFS_RW + scripts/config --enable CONFIG_NTFS_DEBUG + scripts/config --module CONFIG_NTFS3_FS + scripts/config --enable CONFIG_NTFS3_64BIT_CLUSTER + scripts/config --enable CONFIG_NTFS3_LZX_XPRESS + scripts/config --enable CONFIG_NTFS3_FS_POSIX_ACL + echo "Enable Anbox" + scripts/config --module CONFIG_ASHMEM + scripts/config --enable CONFIG_ANDROID_BINDER_IPC_SELFTEST + scripts/config --enable CONFIG_ANDROID + scripts/config --enable CONFIG_ANDROID_BINDER_IPC + scripts/config --enable CONFIG_ANDROID_BINDERFS + scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES binder,hwbinder,vndbinder + echo "Disabling TCP_CONG_CUBIC..." + scripts/config --module CONFIG_TCP_CONG_CUBIC + scripts/config --disable CONFIG_DEFAULT_CUBIC + echo "Enabling TCP_CONG_BBR2..." + scripts/config --enable CONFIG_TCP_CONG_BBR2 + scripts/config --enable CONFIG_DEFAULT_BBR2 + scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2 + echo "Enable VHBA-Module" + scripts/config --module CONFIG_VHBA + + + ### 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 - - ### Enable multigenerational LRU - if [ -n "$_lru_enable" ]; then - echo "Enabling multigenerational LRU..." - scripts/config --enable CONFIG_HAVE_ARCH_PARENT_PMD_YOUNG - scripts/config --enable CONFIG_LRU_GEN - scripts/config --set-val CONFIG_NR_LRU_GENS 7 - scripts/config --set-val CONFIG_TIERS_PER_GEN 4 - scripts/config --enable CONFIG_LRU_GEN_ENABLED - scripts/config --disable CONFIG_LRU_GEN_STATS + fi + + ### 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 LSMOD=$HOME/.config/modprobed.db localmodconfig + else + echo "No modprobed.db data found" + exit fi + 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 Linux Random Number Generator - if [ -n "$_lrng_enable" ]; then - echo "Enabling Linux Random Number Generator ..." - scripts/config --enable CONFIG_LRNG - scripts/config --disable CONFIG_LRNG_OVERSAMPLE_ENTROPY_SOURCES - scripts/config --set-val CONFIG_CONFIG_LRNG_OVERSAMPLE_ES_BITS 0 - scripts/config --set-val CONFIG_LRNG_SEED_BUFFER_INIT_ADD_BITS 0 - scripts/config --enable CONFIG_LRNG_CONTINUOUS_COMPRESSION_ENABLED - scripts/config --disable CONFIG_LRNG_CONTINUOUS_COMPRESSION_DISABLED - scripts/config --disable CONFIG_LRNG_SWITCHABLE_CONTINUOUS_COMPRESSION - scripts/config --disable CONFIG_LRNG_COLLECTION_SIZE_32 - 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 --disable CONFIG_LRNG_HEALTH_TESTS - scripts/config --set-val CONFIG_LRNG_RCT_CUTOFF 31 - scripts/config --set-val CONFIG_LRNG_APT_CUTOFF 325 - scripts/config --set-val CONFIG_LRNG_IRQ_ENTROPY_RATE 256 - scripts/config --enable CONFIG_LRNG_JENT - scripts/config --set-val CONFIG_LRNG_JENT_ENTROPY_RATE 16 - scripts/config --set-val CONFIG_LRNG_CPU_ENTROPY_RATE 8 - scripts/config --disable CONFIG_LRNG_DRNG_SWITCH - scripts/config --disable CONFIG_LRNG_DRBG - scripts/config --disable CONFIG_LRNG_TESTING_MENU - scripts/config --disable CONFIG_LRNG_SELFTEST - fi - - ### Enable SECURITY_FORK_BRUTE - if [ -n "$_fork_brute" ]; then - echo "Enabling SECURITY_FORK_BRUTE..." - scripts/config --enable CONFIG_SECURITY_FORK_BRUTE - scripts/config --set-str CONFIG_LSM lockdown,yama,brute - fi - - ### Enabling ZSTD COMPRESSION ## - echo "Set module compression to ZSTD" - scripts/config --enable CONFIG_MODULE_COMPRESS - scripts/config --disable CONFIG_MODULE_COMPRESS_XZ - scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD - scripts/config --set-val CONFIG_MODULE_COMPRESS_ZSTD_LEVEL 19 - scripts/config --disable CONFIG_KERNEL_ZSTD_LEVEL_ULTRA - - ### Enabling Cacule-Config ## - echo "Enable CacULE CPU scheduler..." - scripts/config --enable CONFIG_CACULE_SCHED - scripts/config --enable CONFIG_CACULE_RDB - scripts/config --set-val CONFIG_RDB_INTERVAL 19 - scripts/config --disable CONFIG_RDB_TASKS_GROUP - scripts/config --disable CONFIG_FAIR_GROUP_SCHED - scripts/config --disable CONFIG_SCHED_AUTOGROUP - scripts/config --disable CONFIG_EXPERT - scripts/config --disable CONFIG_SCHED_DEBUG - scripts/config --disable CONFIG_SCHED_INFO - scripts/config --disable CONFIG_SCHEDSTATS - scripts/config --disable CONFIG_DEBUG_KERNEL - echo "Enabling Full Tickless" - scripts/config --disable CONFIG_HZ_PERIODIC - scripts/config --disable CONFIG_NO_HZ_IDLE - scripts/config --disable CONFIG_NO_HZ_FULL - scripts/config --enable CONFIG_NO_HZ - scripts/config --enable CONFIG_NO_HZ_COMMON - scripts/config --disable CONFIG_CONTEXT_TRACKING - scripts/config --disable CONFIG_CONTEXT_TRACKING_FORCE - echo "Enabling KBUILD_CFLAGS -O3..." - scripts/config --disable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE - scripts/config --enable CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 - echo "Enable PREEMPT" - 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 - echo "Enable NTFS3" - scripts/config --module CONFIG_NTFS_FS - scripts/config --enable CONFIG_NTFS_RW - scripts/config --enable CONFIG_NTFS_DEBUG - scripts/config --module CONFIG_NTFS3_FS - scripts/config --enable CONFIG_NTFS3_64BIT_CLUSTER - scripts/config --enable CONFIG_NTFS3_LZX_XPRESS - scripts/config --enable CONFIG_NTFS3_FS_POSIX_ACL - echo "Enable Anbox" - scripts/config --module CONFIG_ASHMEM - scripts/config --enable CONFIG_ANDROID_BINDER_IPC_SELFTEST - scripts/config --enable CONFIG_ANDROID - scripts/config --enable CONFIG_ANDROID_BINDER_IPC - scripts/config --enable CONFIG_ANDROID_BINDERFS - scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES binder,hwbinder,vndbinder - echo "Disabling TCP_CONG_CUBIC..." - scripts/config --module CONFIG_TCP_CONG_CUBIC - scripts/config --disable CONFIG_DEFAULT_CUBIC - echo "Enabling TCP_CONG_BBR2..." - scripts/config --enable CONFIG_TCP_CONG_BBR2 - scripts/config --enable CONFIG_DEFAULT_BBR2 - scripts/config --set-str CONFIG_DEFAULT_TCP_CONG bbr2 - echo "Enable VHBA-Module" - scripts/config --module CONFIG_VHBA - # General Setup - scripts/config --disable CONFIG_BSD_PROCESS_ACCT - scripts/config --disable CONFIG_TASK_XACCT - scripts/config --enable CONFIG_PSI - scripts/config --disable CONFIG_MEMCG - scripts/config --enable CONFIG_CGROUP_CPUACCT - scripts/config --disable CONFIG_CGROUP_DEBUG - scripts/config --disable CONFIG_CHECKPOINT_RESTORE - scripts/config --disable CONFIG_SLAB_MERGE_DEFAULT - scripts/config --disable CONFIG_SLAB_FREELIST_HARDENED - scripts/config --disable CONFIG_SLUB_CPU_PARTIAL - scripts/config --disable CONFIG_PROFILING - - # Processor type and features - scripts/config --disable CONFIG_X86_5LEVEL - scripts/config --disable CONFIG_KEXEC - scripts/config --disable CONFIG_KEXEC_FILE - scripts/config --disable CONFIG_CRASH_DUMPs - scripts/config --disable CONFIG_KPROBES - # Kernel hacking - scripts/config --disable CONFIG_FTRACE - scripts/config --disable CONFIG_DEBUG_KERNEL - scripts/config --disable CONFIG_PAGE_EXTENSION - scripts/config --set-val CONFIG_RCU_CPU_STALL_TIMEOUT 4 - scripts/config --disable CONFIG_PRINTK_TIME - scripts/config --disable CONFIG_DEBUG_INFO - scripts/config --disable CONFIG_ENABLE_MUST_CHECK - scripts/config --disable CONFIG_STRIP_ASM_SYMS - scripts/config --disable CONFIG_UNUSED_SYMBOLS - scripts/config --disable CONFIG_DEBUG_FS - scripts/config --disable CONFIG_OPTIMIZE_INLINING - scripts/config --disable CONFIG_DEBUG_SECTION_MISMATCH - scripts/config --disable CONFIG_SECTION_MISMATCH_WARN_ONLY - scripts/config --disable CONFIG_STACK_VALIDATION - scripts/config --disable CONFIG_DEBUG_FORCE_WEAK_PER_CPU - scripts/config --disable CONFIG_MAGIC_SYSRQ - scripts/config --disable CONFIG_MAGIC_SYSRQ_SERIAL - scripts/config --disable CONFIG_PAGE_EXTENSION - scripts/config --disable CONFIG_DEBUG_PAGEALLOC - scripts/config --disable CONFIG_PAGE_OWNER - scripts/config --disable CONFIG_DEBUG_MEMORY_INIT - scripts/config --disable CONFIG_HARDLOCKUP_DETECTOR - scripts/config --disable CONFIG_SOFTLOCKUP_DETECTOR - scripts/config --disable CONFIG_DETECT_HUNG_TASK - scripts/config --disable CONFIG_WQ_WATCHDOG - scripts/config --set-val CONFIG_PANIC_TIMEOUT 10 - scripts/config --disable CONFIG_SCHEDSTATS - scripts/config --disable CONFIG_SCHED_STACK_END_CHECK - scripts/config --disable CONFIG_STACKTRACE - scripts/config --disable CONFIG_DEBUG_BUGVERBOSE - scripts/config --disable CONFIG_RCU_TRACE - scripts/config --disable CONFIG_FAULT_INJECTION - scripts/config --disable CONFIG_LATENCYTOP - scripts/config --disable CONFIG_PROVIDE_OHCI1394_DMA_INIT - scripts/config --disable RUNTIME_TESTING_MENU - scripts/config --disable CONFIG_MEMTEST - scripts/config --disable CONFIG_KGDB - scripts/config --disable CONFIG_EARLY_PRINTK - scripts/config --disable CONFIG_DOUBLEFAULT - - - ### 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 LSMOD=$HOME/.config/modprobed.db localmodconfig - else - echo "No modprobed.db data found" - exit - fi - fi - - - make ${BUILD_FLAGS[*]} -s kernelrelease >version - echo "Prepared ${pkgbase} version $(<version)" - + make ${BUILD_FLAGS[*]} -s kernelrelease > version + echo "Prepared $pkgbase version $(<version)" [[ -z "$_makenconfig" ]] || make nconfig - ## Save configuration for later reuse + ### Save configuration for later reuse cp -Tf ./.config "${startdir}/config-${pkgver}-${pkgrel}${pkgbase#linux}" - } +} build() { - - cd "${srcdir:?}/linux-${pkgver}" || ( - echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Build failed! \E[0m" - exit 1 - ) - - make ${BUILD_FLAGS[*]} all - + cd $_srcname + make ${BUILD_FLAGS[*]} all } -package_linux-cacule-rdb-llvm() { +_package() { + pkgdesc="The $pkgdesc kernel and modules" + depends=('coreutils' 'kmod' 'initramfs') + optdepends=('crda: to set the correct wireless channels of your country' + 'linux-firmware: firmware images needed for some devices' + 'modprobed-db: Keeps track of EVERY kernel module that has ever been probed - useful for those of us who make localmodconfig') + provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) - pkgdesc="The ${pkgdesc} 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') - provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) - replaces=(virtualbox-guest-modules-arch wireguard-arch) + cd $_srcname - cd "${srcdir:?}/linux-${pkgver}" || ( - echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Package linux kernel failed! \E[0m" - exit 1 - ) - - 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" + local kernver="$(<version)" + local modulesdir="$pkgdir/usr/lib/modules/$kernver" - # Used by mkinitcpio to name the kernel - echo "${pkgbase}" | install -Dm644 /dev/stdin "${modulesdir}/pkgbase" + 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" - echo "Installing modules..." - make INSTALL_MOD_PATH="${pkgdir:?}/usr" INSTALL_MOD_STRIP=1 modules_install + # Used by mkinitcpio to name the kernel + echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" - # remove build and source links - rm "${modulesdir}/"{source,build} + echo "Installing modules..." + make INSTALL_MOD_PATH="$pkgdir/usr" modules_install + # remove build and source links + rm "$modulesdir"/{source,build} } -package_linux-cacule-rdb-llvm-headers() { - - pkgdesc="Headers and scripts for building modules for the ${pkgdesc}" - depends=("linux-cacule-rdb-llvm=${pkgver}" pahole) - - cd "${srcdir:?}/linux-${pkgver}" || ( - echo -e "\E[1;31mCan't cd to ${srcdir:?}/linux-${pkgver} directory! Package linux headers failed! \E[0m" - exit 1 - ) - - 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 - - # add objtool for external module building and enabled VALIDATION_STACK option - install -Dt "${builddir}/tools/objtool" tools/objtool/objtool - - # add xfs and shmem for aufs building - mkdir -p "${builddir}"/{fs/xfs,mm} - - 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" - ln -sr "${builddir}" "${pkgdir:?}/usr/src/${pkgbase}" - +_package-headers() { + pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel" + + 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 + + # add objtool for external module building and enabled VALIDATION_STACK option + install -Dt "$builddir/tools/objtool" tools/objtool/objtool + + # add xfs and shmem for aufs building + mkdir -p "$builddir"/{fs/xfs,mm} + + 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 + + # http://bugs.archlinux.org/task/13146 + install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h + + # http://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 + + 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 "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() { + $(declare -f "_package${_p#$pkgbase}") + _package${_p#$pkgbase} + }" +done + +md5sums=('76c60fb304510a7bbd9c838790bc5fe4' + '4d745d474d07277daee24107239c8902' + '4b922991e637a20e8d4e2f2fd88451ee' + '6d8a2a8f499dd9643ca4af2254389ce7' + '078da517ec2d54283af81d7da3af671a' + '7640a753a7803248543675a6edc75e08' + '85f4be6562ee033b83814353a12b61bd' + '3ec9a8784a9e73462def2e9c33de9a1e' + '9573b92353399343db8a691c9b208300' + 'e15a64663e6221ea40b02aeb8517e70a' + '1217799f33d6ba822152a0e2fb6f2e34' + '31c897f53b91f98532321cd24928c0d7' + '698d661fa23611933146b83e0fa9cade' + '4f9e72e7edb909da5cd650afe13aadb6' + '9bbbd88f0303ccd59064648eaaf80edd' + '1bd37d8e71b2a7aae8ebd2853a08f445' + '65a4399a10b2abd0f327145d479db12d' + '81f27f12e20971c7d7fc3a53ffb6842c' + 'f9b3c2263204ebfae89f29b83278b54b' + 'e84f0dadb9e7487fac39541c5bd85d7a' + 'b6623f818462d08b03fdc1b573c90e9f' + '2b2be59407dd342f1cea80602a93b6c0' + '9977ba0e159416108217a45438ebebb4' + '92e9db1a7777666a1e6353b4760f1275' + '9e5114dba6da65e8d444aa225b109a21' + '2aa4d3664fc16dac2f18fe8c22ba1df1' + '7dd37a74d7926f4c5ae3b3f76d7172a2' + '08590776013d05bc7a96ef5557c54200') |