Skip to content
Snippets Groups Projects
PKGBUILD 3.95 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
##############################

Philip Müller's avatar
Philip Müller committed
# FATAL: modpost: GPL-incompatible module nvidia-uvm.ko uses GPL-only symbol 'radix_tree_preloads'

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>
Philip Müller's avatar
Philip Müller committed
# Contributor: Alonso Rodriguez <alonsorodi20 (at) gmail (dot) com>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: Thomas Baechler <thomas@archlinux.org>
# Contributor: loqs
# Contributor: Dede Dindin Qudsy <xtrymind+gmail+com>
# Contributor: Ike Devolder <ike.devolder+gmail+com>
Philip Müller's avatar
Philip Müller committed

_linuxprefix=linux510
_extramodules=extramodules-5.10-MANJARO
# don't edit here
Philip Müller's avatar
Philip Müller committed
pkgver=390.138
Philip Müller's avatar
Philip Müller committed

_nver=390
# edit here for new version
Philip Müller's avatar
Philip Müller committed
_sver=138
Philip Müller's avatar
Philip Müller committed
# edit here for new build
Philip Müller's avatar
Philip Müller committed
pkgrel=1
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"
Helmut Stult's avatar
Helmut Stult committed
           "$_linuxprefix-nvidia-435xx" "$_linuxprefix-nvidia-440xx" "$_linuxprefix-nvidia-450xx"
           "$_linuxprefix-nvidia-455xx")
Philip Müller's avatar
Philip Müller committed
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"
Philip Müller's avatar
Philip Müller committed
        "kernel-4.16.patch" "kernel-5.7.patch" "kernel-5.8.patch" "kernel-5.9.patch" "kernel-5.10.patch")
sha256sums=('a34a19b618be0eb06c4699247489833a8f22c59423f246248614e0a59b1508da'
            '622ac792ec200b2239cb663c0010392118b78c9904973d82cd261165c16d6385'
Philip Müller's avatar
Philip Müller committed
            'b5f733102fb749c5dc2a959004dd555d108989a6e375e52d46add290e0f6723f'
Philip Müller's avatar
Philip Müller committed
            'd5dbb2841234b892190de16dce83485457e934e2a239fc87dc5649dc80aa7cfc'
            '58f5d459b3096354bc02ac811a3089f0dc6ca01da946ce5e93e575673c93d686'
            '3d175e85a20dca2743f7a2627461baaa061d1f63ab4e175aafa8de0e9af0739e')
Philip Müller's avatar
Philip Müller committed

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

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

prepare() {
    sh "${_pkg}.run" --extract-only
    cd "${_pkg}"
    # patches here
Philip Müller's avatar
Philip Müller committed
    # Fix compile problem with 4.16
    msg2 "PATCH: kernel-4.16"
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-4.16.patch
    
Philip Müller's avatar
Philip Müller committed
    # Fix compile problem with 5.7
Philip Müller's avatar
Philip Müller committed
    msg2 "PATCH: kernel-5.7"    
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.7.patch    
Philip Müller's avatar
Philip Müller committed
    
    # Fix compile problem with 5.8
    msg2 "PATCH: kernel-5.8"    
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.8.patch
Helmut Stult's avatar
Helmut Stult committed
    
    # Fix compile problem with 5.9
    msg2 "PATCH: kernel-5.9"    
Philip Müller's avatar
Philip Müller committed
    patch -p1 --no-backup-if-mismatch -i "$srcdir"/kernel-5.9.patch
    
    # Fix compile problem with 5.10
    msg2 "PATCH: kernel-5.10"    
    patch -p1 -i "$srcdir"/kernel-5.10.patch        
Philip Müller's avatar
Philip Müller committed
}

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"
}