@ -48,7 +48,7 @@ if [ -z "$_driver_version" ] || [ "$_driver_version" = "latest" ] || [ -z "$_dri
fi
fi
fi
fi
if [ [ -z $CONDITION ] ] ; then
if [ [ -z $CONDITION ] ] ; then
read -p " Which driver version do you want?`echo $'\n > 1.Vulkan dev: 535.43.1 5 \n 2.545 series: 545.29.02\n 3.535 series: 535.113.01\n 4.530 series: 530.41.03\n 5.470 series: 470.199.02\n 6.Older series\n 7.Custom version (396.xx series or higher)\n choice[1-7?]: '`" CONDITION;
read -p " Which driver version do you want?`echo $'\n > 1.Vulkan dev: 535.43.1 6 \n 2.545 series: 545.29.02\n 3.535 series: 535.113.01\n 4.530 series: 530.41.03\n 5.470 series: 470.199.02\n 6.Older series\n 7.Custom version (396.xx series or higher)\n choice[1-7?]: '`" CONDITION;
fi
fi
# This will be treated as the latest regular driver.
# This will be treated as the latest regular driver.
if [ " $CONDITION " = "2" ] ; then
if [ " $CONDITION " = "2" ] ; then
@ -148,8 +148,8 @@ if [ -z "$_driver_version" ] || [ "$_driver_version" = "latest" ] || [ -z "$_dri
echo " _driver_version= $_driver_version " >> options
echo " _driver_version= $_driver_version " >> options
# This (condition 1) will be treated as the latest Vulkan developer driver.
# This (condition 1) will be treated as the latest Vulkan developer driver.
else
else
echo '_driver_version=535.43.1 5 ' > options
echo '_driver_version=535.43.1 6 ' > options
echo '_md5sum= fa635d42b47dc2973be851a043baaa42 ' >> options
echo '_md5sum= 81d853f73de771bf9febbd604d52f0d3 ' >> options
echo '_driver_branch=vulkandev' >> options
echo '_driver_branch=vulkandev' >> options
fi
fi
# Package type selector
# Package type selector
@ -169,7 +169,7 @@ if [ -e options ]; then
source options
source options
if [ " $_open_source_modules " != "false" ] ; then
if [ " $_open_source_modules " != "false" ] ; then
# Open source kernel module availability check
# Open source kernel module availability check
if [ [ " $( curl -Is " https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source- $_driver_version .tar.xz " | head -n 1 ) " = *200* ] ] ; then
if [ [ " $( curl -Is " https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source- $_driver_version .tar.xz " | head -n 1 ) " = *200* ] ] || [ [ " $( curl -Is " https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/ $_driver_version .tar.gz " | head -n 1 ) " = *302* ] ] ; then
if [ -z " $_open_source_modules " ] ; then
if [ -z " $_open_source_modules " ] ; then
msg2 " - Open source kernel modules available - "
msg2 " - Open source kernel modules available - "
warning "IT ONLY OFFERS SUPPORT FOR TURING AND NEWER, AND DOESN'T OFFER ALL THE FEATURES OF THE PROPRIETARY ONE."
warning "IT ONLY OFFERS SUPPORT FOR TURING AND NEWER, AND DOESN'T OFFER ALL THE FEATURES OF THE PROPRIETARY ONE."
@ -181,6 +181,11 @@ if [ -e options ]; then
else
else
echo '_open_source_modules="false"' >> options
echo '_open_source_modules="false"' >> options
fi
fi
if [ [ " $( curl -Is " https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source- $_driver_version .tar.xz " | head -n 1 ) " = *200* ] ] ; then
echo '_srcbase="NVIDIA-kernel-module-source"' >> options
elif [ [ " $( curl -Is " https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/ $_driver_version .tar.gz " | head -n 1 ) " = *302* ] ] ; then
echo '_srcbase="open-gpu-kernel-modules"' >> options
fi
fi
fi
else
else
msg2 "No open source kernel module available"
msg2 "No open source kernel module available"
@ -416,7 +421,11 @@ md5sums=("$_md5sum"
'd11cb3bd76ab61a0f086aea9a0c53087' )
'd11cb3bd76ab61a0f086aea9a0c53087' )
if [ " $_open_source_modules " = "true" ] ; then
if [ " $_open_source_modules " = "true" ] ; then
source += ( " NVIDIA-kernel-module-source- $pkgver .tar.xz::https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source- ${ pkgver } .tar.xz " )
if [ [ " $_srcbase " = = "NVIDIA-kernel-module-source" ] ] ; then
source += ( " NVIDIA-kernel-module-source- $pkgver .tar.xz::https://download.nvidia.com/XFree86/NVIDIA-kernel-module-source/NVIDIA-kernel-module-source- ${ pkgver } .tar.xz " )
elif [ [ " $_srcbase " = = "open-gpu-kernel-modules" ] ] ; then
source += ( " $pkgname - $pkgver .tar.gz::https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/ ${ pkgver } .tar.gz " )
fi
md5sums += ( "SKIP" )
md5sums += ( "SKIP" )
fi
fi
@ -472,7 +481,7 @@ prepare() {
sh " $_pkg " .run -x
sh " $_pkg " .run -x
if [ " $_open_source_modules " = "true" ] ; then
if [ " $_open_source_modules " = "true" ] ; then
cd NVIDIA-kernel-module-source -${ pkgver }
cd ${ _srcbase } -${ pkgver }
# Fix for https://bugs.archlinux.org/task/74886
# Fix for https://bugs.archlinux.org/task/74886
if ( ( ${ pkgver %%.* } < 525 ) ) ; then
if ( ( ${ pkgver %%.* } < 525 ) ) ; then
@ -506,7 +515,7 @@ BUILT_MODULE_LOCATION[4]="kernel-open"\
DEST_MODULE_LOCATION[ 4] = "/kernel/drivers/video" ' kernel-open/dkms.conf
DEST_MODULE_LOCATION[ 4] = "/kernel/drivers/video" ' kernel-open/dkms.conf
# Clean version for later copying for DKMS
# Clean version for later copying for DKMS
cp -r ../NVIDIA-kernel-module-source -${ pkgver } " $srcdir " /open-gpu-kernel-modules-dkms
cp -r ../${ _srcbase } -${ pkgver } " $srcdir " /open-gpu-kernel-modules-dkms
else
else
cd " $_pkg "
cd " $_pkg "
@ -1394,7 +1403,7 @@ build() {
done
done
fi
fi
else
else
cd NVIDIA-kernel-module-source -${ pkgver }
cd ${ _srcbase } -${ pkgver }
make SYSSRC = "/usr/src/linux"
make SYSSRC = "/usr/src/linux"
fi
fi
}
}
@ -1772,7 +1781,7 @@ if [ "$_dkms" = "false" ] || [ "$_dkms" = "full" ]; then
conflicts = ( 'NVIDIA-MODULE' )
conflicts = ( 'NVIDIA-MODULE' )
provides = ( 'NVIDIA-MODULE' )
provides = ( 'NVIDIA-MODULE' )
cd NVIDIA-kernel-module-source -${ pkgver }
cd ${ _srcbase } -${ pkgver }
_extradir = " /usr/lib/modules/ $( </usr/src/linux/version) /extramodules "
_extradir = " /usr/lib/modules/ $( </usr/src/linux/version) /extramodules "
install -Dt " ${ pkgdir } ${ _extradir } " -m644 kernel-open/*.ko
install -Dt " ${ pkgdir } ${ _extradir } " -m644 kernel-open/*.ko
find " ${ pkgdir } " -name '*.ko' -exec strip --strip-debug { } +
find " ${ pkgdir } " -name '*.ko' -exec strip --strip-debug { } +
@ -1948,7 +1957,7 @@ if [ "$_dkms" = "true" ] || [ "$_dkms" = "full" ]; then
mkdir -p " $pkgdir " /usr/lib/modprobe.d
mkdir -p " $pkgdir " /usr/lib/modprobe.d
echo "options nvidia NVreg_OpenRmEnableUnsupportedGpus=1" > " $pkgdir " /usr/lib/modprobe.d/nvidia-open.conf
echo "options nvidia NVreg_OpenRmEnableUnsupportedGpus=1" > " $pkgdir " /usr/lib/modprobe.d/nvidia-open.conf
install -Dm644 NVIDIA-kernel-module-source -${ pkgver } /COPYING " $pkgdir " /usr/share/licenses/$pkgname
install -Dm644 ${ _srcbase } -${ pkgver } /COPYING " $pkgdir " /usr/share/licenses/$pkgname
else
else
pkgdesc = "NVIDIA kernel module sources (DKMS)"
pkgdesc = "NVIDIA kernel module sources (DKMS)"