Skip to content
Snippets Groups Projects
PKGBUILD 3.22 KiB
Newer Older
Philip Müller's avatar
Philip Müller committed
##############################
Helmut Stult's avatar
Helmut Stult committed
# Not working with Kernel 5.10
Philip Müller's avatar
Philip Müller committed
##############################

# Maintainer: Philip Müller <philm[at]manjaro[dot]org>
# Maintainer: Bernhard Landauer <bernhard[at]manjaro[dot]org>
# Maintainer: Helmut Stult <helmut[at]manjaro[dot]org>

# Arch credits:
# Maintainer : Thomas Baechler <thomas@archlinux.org>

_linuxprefix=linux510
_extramodules=extramodules-5.10-MANJARO
# don't edit here
pkgver=390.132

_nver=390
# edit here for new version
_sver=132
# edit here for new build
Helmut Stult's avatar
Helmut Stult committed
pkgrel=0.4
Philip Müller's avatar
Philip Müller committed
pkgname=$_linuxprefix-nvidia-${_nver}xx
_pkgname=nvidia
_pkgver="${_nver}.${_sver}"
pkgdesc="NVIDIA drivers for linux."
arch=('x86_64')
url="http://www.nvidia.com/"
depends=("$_linuxprefix" "nvidia-390xx-utils=${_pkgver}")
makedepends=("$_linuxprefix-headers")
groups=("$_linuxprefix-extramodules")
provides=("nvidia=$pkgver")
conflicts=("$_linuxprefix-nvidia-340xx" "$_linuxprefix-nvidia-418xx" "$_linuxprefix-nvidia-430xx"
           "$_linuxprefix-nvidia-435xx" "$_linuxprefix-nvidia-440xx" "$_linuxprefix-nvidia-450xx")
license=('custom')
install=nvidia.install
options=(!strip)
durl="http://us.download.nvidia.com/XFree86/Linux-x86"
source=("${durl}_64/${_pkgver}/NVIDIA-Linux-x86_64-${_pkgver}-no-compat32.run"
        "kernel-5.5.patch" "kernel-5.6.patch" "kernel-5.7.patch" "kernel-5.8.patch")
sha256sums=('b6b4b8af37e78e026c9ebdf4a5c64ea412dfcb710931dd028c22dac228de659d'
            'c72d89546b6dbd332e678800e48acbcdb29c1e1f23f986f77cee2c46b1a91e75'
            'a1068603de0dbd5c4b1167a370811560313461fff71b66ee8d74adea4b596f7f'
            'b5f733102fb749c5dc2a959004dd555d108989a6e375e52d46add290e0f6723f'
            '96da198e7ff43d8673d79d5a7fa6b82972c85df0661753eb1cb235ccd5fdac22')

_pkg="NVIDIA-Linux-x86_64-${_pkgver}-no-compat32"

pkgver() {
  printf '%s' "${_pkgver}"
}

prepare() {
    sh "${_pkg}.run" --extract-only
    cd "${_pkg}"
    # patches here
    # Fix compile problem with 5.5
    msg2 "PATCH: kernel-5.5"
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.5.patch

    # Fix compile problem with 5.6
    msg2 "PATCH: kernel-5.6"
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.6.patch

    # Fix compile problem with 5.7
    msg2 "PATCH: kernel-5.7"
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.7.patch
    
    # Fix compile problem with 5.8
    msg2 "PATCH: kernel-5.8"    
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.8.patch
}

build() {
    _kernver="$(cat /usr/lib/modules/${_extramodules}/version)"
    cd "${_pkg}"/kernel
    make SYSSRC=/usr/lib/modules/"${_kernver}/build" module
}

package() {
    install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \
        "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia.ko"
    install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia-modeset.ko" \
         "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia-modeset.ko"
    install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia-drm.ko" \
         "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia-drm.ko"
    install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia-uvm.ko" \
         "${pkgdir}/usr/lib/modules/${_extramodules}/nvidia-uvm.ko"
    gzip "${pkgdir}/usr/lib/modules/${_extramodules}/"*.ko
    sed -i -e "s/EXTRAMODULES='.*'/EXTRAMODULES='${_extramodules}'/" "${startdir}/nvidia.install"
}