diff options
author | Piotr Gorski | 2024-05-21 08:24:49 +0200 |
---|---|---|
committer | Piotr Gorski | 2024-05-21 08:24:49 +0200 |
commit | 7ad7435959c298d0c407990f868d696ba6cdf049 (patch) | |
tree | eadd8153579b8795167b9f10977fadae3e784d26 | |
parent | b04b64fb75967b3eb20f5717e3f849945508c498 (diff) | |
download | aur-7ad7435959c298d0c407990f868d696ba6cdf049.tar.gz |
Sync with Github
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
-rw-r--r-- | .SRCINFO | 1 | ||||
-rw-r--r-- | PKGBUILD | 58 |
2 files changed, 56 insertions, 3 deletions
@@ -23,6 +23,7 @@ pkgbase = linux-cachyos makedepends = python options = !strip options = !debug + options = !lto source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.9.1.tar.xz source = config source = auto-cpu-optimization.sh @@ -136,6 +136,11 @@ _build_zfs=${_build_zfs-} # This does replace the requirement of nvidia-dkms _build_nvidia=${_build_nvidia-} +# Builds the open nvidia module and package it into a own base +# This does replace the requirement of nvidia-open-dkms +# Use this only if you have Turing+ GPU +_build_nvidia_open=${_build_nvidia_open-} + if [[ "$_use_llvm_lto" = "thin" || "$_use_llvm_lto" = "full" ]] && [ "$_use_lto_suffix" = "y" ]; then pkgsuffix=cachyos-lto pkgbase=linux-$pkgsuffix @@ -160,7 +165,7 @@ _kernver=$pkgver-$pkgrel arch=('x86_64' 'x86_64_v3') url="https://github.com/CachyOS/linux-cachyos" license=('GPL-2.0-only') -options=('!strip' '!debug') +options=('!strip' '!debug' '!lto') makedepends=('bc' 'libelf' 'pahole' 'cpio' 'perl' 'tar' 'xz' 'zstd' 'gcc' 'gcc-libs' 'glibc' 'binutils' 'make' 'patch' 'python') # LLVM makedepends if [[ "$_use_llvm_lto" = "thin" || "$_use_llvm_lto" = "full" ]] || [ -n "$_use_kcfi" ]; then @@ -176,6 +181,7 @@ fi _patchsource="https://raw.githubusercontent.com/cachyos/kernel-patches/master/${_major}" _nv_ver=550.78 _nv_pkg="NVIDIA-Linux-x86_64-${_nv_ver}" +_nv_open_pkg="open-gpu-kernel-modules-${_nv_ver}" source=( "https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/${_srcname}.tar.xz" "config" @@ -200,6 +206,13 @@ if [ -n "$_build_nvidia" ]; then "${_patchsource}/misc/nvidia/0001-NVIDIA-take-modeset-ownership-early.patch") fi +if [ -n "$_build_nvidia_open" ]; then + source+=("nvidia-open-${_nv_ver}.tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/${_nv_ver}.tar.gz" + "${_patchsource}/misc/nvidia/make-modeset-fbdev-default.patch" + "${_patchsource}/misc/nvidia/0001-NVIDIA-take-modeset-ownership-early.patch" + "${_patchsource}/misc/nvidia/nvidia-open-gcc-ibt-sls.patch") +fi + ## List of CachyOS schedulers case "$_cpusched" in cachyos) # CachyOS Scheduler (Sched-ext + BORE + Cachy Sauce) @@ -244,6 +257,7 @@ prepare() { src="${src%.zst}" [[ $src = make-modeset-fbdev-default.patch ]] && continue [[ $src = 0001-NVIDIA-take-modeset-ownership-early.patch ]] && continue + [[ $src = nvidia-open-gcc-ibt-sls.patch ]] && continue [[ $src = *.patch ]] || continue echo "Applying patch $src..." patch -Np1 < "../$src" @@ -493,9 +507,17 @@ prepare() { sh "${_nv_pkg}.run" --extract-only # Use fbdev and modeset as default - patch -Np1 -i "${srcdir}/make-modeset-fbdev-default.patch" -d "${srcdir}/${_nv_pkg}" + patch -Np1 -i "${srcdir}/make-modeset-fbdev-default.patch" -d "${srcdir}/${_nv_pkg}/kernel" patch -Np2 --no-backup-if-mismatch -i "${srcdir}/0001-NVIDIA-take-modeset-ownership-early.patch" -d "${srcdir}/${_nv_pkg}/kernel" fi + + if [ -n "$_build_nvidia_open" ]; then + patch -Np1 -i "${srcdir}/make-modeset-fbdev-default.patch" -d "${srcdir}/${_nv_open_pkg}/kernel-open" + patch -Np2 --no-backup-if-mismatch -i "${srcdir}/0001-NVIDIA-take-modeset-ownership-early.patch" -d "${srcdir}/${_nv_open_pkg}/kernel-open" + + # Fix for https://bugs.archlinux.org/task/74886 + patch -Np1 --no-backup-if-mismatch -i "${srcdir}/nvidia-open-gcc-ibt-sls.patch" -d "${srcdir}/${_nv_open_pkg}" + fi } build() { @@ -504,7 +526,6 @@ build() { make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1 if [ -n "$_build_nvidia" ]; then - cd "${srcdir}/${_nv_pkg}/kernel" local MODULE_FLAGS=( KERNEL_UNAME="${pkgver}-${pkgsuffix}" IGNORE_PREEMPT_RT_PRESENCE=1 @@ -512,7 +533,22 @@ build() { SYSSRC="${srcdir}/${_srcname}" SYSOUT="${srcdir}/${_srcname}" ) + + cd "${srcdir}/${_nv_pkg}/kernel" make ${BUILD_FLAGS[*]} ${MODULE_FLAGS[*]} -j$(nproc) modules + + fi + + if [ -n "$_build_nvidia_open" ]; then + cd "${srcdir}/${_nv_open_pkg}" + local MODULE_FLAGS=( + KERNEL_UNAME="${pkgver}-${pkgsuffix}" + IGNORE_PREEMPT_RT_PRESENCE=1 + IGNORE_CC_MISMATCH=yes + SYSSRC="${srcdir}/${_srcname}" + SYSOUT="${srcdir}/${_srcname}" + ) + CFLAGS= CXXFLAGS= LDFLAGS= make ${BUILD_FLAGS[*]} ${MODULE_FLAGS[*]} -j$(nproc) modules fi if [ -n "$_build_zfs" ]; then @@ -649,6 +685,7 @@ _package-zfs(){ pkgdesc="zfs module for the $pkgdesc kernel" depends=('pahole' $pkgbase=$_kernver) provides=('ZFS-MODULE') + license=('CDDL') cd ${srcdir}/"zfs" install -dm755 "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" @@ -670,9 +707,24 @@ _package-nvidia(){ find "$pkgdir" -name '*.ko' -exec zstd --rm -10 {} + } +_package-nvidia-open(){ + pkgdesc="nvidia open modules of ${_nv_ver} driver for the linux-$pkgsuffix kernel" + depends=("$pkgbase=$_kernver" "nvidia-utils=${_nv_ver}" "libglvnd") + provides=('NVIDIA-MODULE') + license=('GPL') + + cd "${srcdir}/${_nv_open_pkg}" + install -dm755 "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" + install -m644 kernel-open/*.ko "$pkgdir/usr/lib/modules/${_kernver}-${pkgsuffix}" + install -Dt "$pkgdir/usr/share/licenses/${pkgname}" -m644 COPYING + + find "$pkgdir" -name '*.ko' -exec zstd --rm -10 {} + +} + pkgname=("$pkgbase" "$pkgbase-headers") [ -n "$_build_zfs" ] && pkgname+=("$pkgbase-zfs") [ -n "$_build_nvidia" ] && pkgname+=("$pkgbase-nvidia") +[ -n "$_build_nvidia_open" ] && pkgname+=("$pkgbase-nvidia-open") for _p in "${pkgname[@]}"; do eval "package_$_p() { $(declare -f "_package${_p#$pkgbase}") |