system/nvidia-driver: Updated for version 440.36.

Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
Edward W. Koenig 2019-11-29 23:27:10 +01:00 committed by Willy Sudiarto Raharjo
parent 991aea6304
commit acb2993d3e
No known key found for this signature in database
GPG key ID: 887B8374D7333381
5 changed files with 52 additions and 100 deletions

View file

@ -7,11 +7,10 @@ use nvidia-legacy390-{driver,kernel}
Installing the 32-bit compatibility libraries is available: if desired, do:
COMPAT32="yes" ./nvidia-driver.SlackBuild
GLVND GLX client libraries are now the default. If these cause any
compatibility issues with older GLX sofware, either upgrade your software
or try:
GLVND="no" ./nvidia-driver.SlackBuild
If you plan to test this buildscript on current (15.0), to avoid stomping
on the installed libglvnd, do:
CURRENT="yes" ./nvidia-driver.SlackBuild
Several useful utilities are included: nvidia-xsettings, nvidia-smi, and
nvidia-settings. Please refer to the Nvidia documentation and man pages
@ -24,39 +23,3 @@ you might need to include the following line in your /etc/rc.d/rc.local:
/usr/bin/nvidia-modprobe -c 0 -u
------------->8---------------
Since this nvidia-driver conflicts with some files of xorg, it's a bit
complex to install/uninstall the driver. However, installation of the
nvidia-driver package itself backs up the conflicting files and puts
the nvidia-specific files into place.
Included is a script called nvidia-switch, which is used to switch from
the xorg driver to the nvidia driver, but it will not edit xorg.conf
for you; you have to do that manually. The nvidia-switch script is
installed to /usr/sbin. NOTE: Although nvidia-switch is aware of a
COMPAT32 environment, its use therein is not supported.
Usage of nvidia-switch:
nvidia-switch --install <--> install the nvidia files and save the
stock xorg files.
nvidia-switch --remove <--> remove the nvidia files and symlinks and
restore the stock xorg files.
You do NOT have to run nvidia-switch after installing the package.
Before uninstalling or upgrading this package, it is important that
you execute 'nvidia-switch --remove', which will switch back to the
stock xorg files and remove all links created by nvidia-switch during
installation. If you forget to do this, you might have to do the switch
manually, since 'nvidia-switch --install' may fail, resulting in xorg
not working. Here are the affected files:
/usr/lib[64]/libGL.so.1.2
/usr/lib[64]/libGL.la
/usr/lib[64]/libGLESv1_CM.so.1.0.0
/usr/lib[64]/libGLESv2.so.2.0.0
/usr/lib[64]/libEGL.so.1.0.0
/usr/lib[64]/xorg/modules/libwfb.so
/usr/lib[64]/xorg/modules/extensions/libglx.so
Simply remove the dead nvidia symlinks and and reinstall the mesa and
xorg-server packages. See 'nvidia-switch --help'.

View file

@ -45,3 +45,4 @@
6.5 14-MAY-2019 version update LLB
6.6 10-AUG-2019 version update LLB, drop non-glvnd libs. This script will NOT work on current
6.7 11-SEP-2019 version update LLB, fix for pre-Turing GPUs (This script will NOT work on current).
7.0 28-NOV-2019 version update LLB, add temp glvnd switch for 15.0, remove nvidia-switch

View file

@ -2,5 +2,3 @@ if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications
fi
./usr/sbin/nvidia-switch --install

View file

@ -25,13 +25,11 @@
# see changelog.txt
PRGNAM=nvidia-driver
VERSION=${VERSION:-430.50}
VERSION=${VERSION:-440.36}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
GLVND=yes
# libglnvd landed in mesa and is Nvidia recommended; no longer optional
# future will remove
CURRENT=${CURRENT:-no}
set -e
@ -68,7 +66,7 @@ mkdir -p $TMP $PKG $OUTPUT $PKG/install
mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/{drivers,extensions} \
$PKG/etc/OpenCL/vendors/ $PKG/usr/{bin,doc,man/man1,sbin} \
$PKG/usr/share/{applications,nvidia,pixmaps,egl/egl_external_platform.d} \
$PKG/usr/include/GL $PKG/etc/vulkan/icd.d $PKG/etc/X11/xorg.conf.d \
$PKG/usr/include/GL $PKG/etc/vulkan/{icd.d,implicit_layer.d} $PKG/etc/X11/xorg.conf.d \
$PKG/etc/X11/glvnd/egl_vendor.d $PKG/var/log/nvidia/{32,64}
if [ "$COMPAT32" = "yes" ]; then
@ -122,12 +120,6 @@ cd -
mv -f $PKG/usr/bin/nvidia-installer $TMP/$SRCNAM
mv -f $PKG/usr/man/man1/nvidia-installer.1.gz $TMP/$SRCNAM
# Configure options
if [ "$GLVND" = "yes" ]; then
GLVNDOPT="--install-libglvnd --glvnd-glx-client --glvnd-egl-client"
else
GLVNDOPT="--no-install-libglvnd --no-glvnd-glx-client --no-glvnd-egl-client"
fi
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
COMP32="--install-compat32-libs --compat32-prefix=$PKG/usr"
MULTI="_multi"
@ -158,28 +150,39 @@ cd $TMP/$SRCNAM
--log-file-name=$PKG/var/log/nvidia-installer.log \
--egl-external-platform-config-path=$PKG/usr/share/egl/egl_external_platform.d \
--no-nvidia-modprobe \
$GLVNDOPT \
--install-libglvnd \
$COMP32
# Clean-up: we really do not need this:
rm -rf /var/lib/nvidia
# which 32-bit tls? why? why?
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
install -m 755 32/libnvidia-tls.so.$VERSION $PKG/usr/lib/tls/libnvidia-tls.so.$VERSION
cd $PKG/usr/lib
ln -sf tls/libnvidia-tls.so.$VERSION libnvidia-tls.so.$VERSION
cd -
# If running current (15.0) remove duplicate libglvnd files
if [ "$CURRENT" = "yes" ]; then
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libEGL.so.1.1.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGL.so.1.7.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLESv1_CM.so.1.2.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLESv2.so.2.1.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLX.so.0.0.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLdispatch.so.0.0.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLdispatch.so.0
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libOpenGl.0.0.0
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
rm -f $PKG/usr/lib/libEGL.so.1.1.0
rm -f $PKG/usr/lib/libGL.so.1.7.0
rm -f $PKG/usr/lib/libGLESv1_CM.so.1.2.0
rm -f $PKG/usr/lib/libGLESv2.so.2.1.0
rm -f $PKG/usr/lib/libGLX.so.0.0.0
rm -f $PKG/usr/lib/libGLdispatch.so.0.0.0
rm -f $PKG/usr/lib/libGLdispatch.so.0
rm -f $PKG/usr/lib/libOpenGl.0.0.0
fi
fi
# Only one conflicting lib
cd $PKG/usr/lib$LIBDIRSUFFIX
mv libGL.la libGL.la-nvidia
cd -
# add tls
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
cd $PKG/usr/lib
mv libGL.la libGL.la-nvidia
cd -
install -m 755 32/libnvidia-tls.so.$VERSION $PKG/usr/lib/tls/libnvidia-tls.so.$VERSION
cd $PKG/usr/lib
ln -sf tls/libnvidia-tls.so.$VERSION libnvidia-tls.so.$VERSION
cd -
fi
# Compile utilites from source, replacing the precompiled versions
@ -261,34 +264,21 @@ cd -
install -m 644 _out/Linux_$TARGET/nvidia-persistenced.1.gz $PKG/usr/man/man1/
cd -
# Bash script to cleanly install (in doinst.sh) and uninstall the nvidia files
# so we don't stomp on the overlapping xorg files.
# Note: switching can be problematic ;-)
install -m 0755 $CWD/nvidia-switch $PKG/usr/sbin/
sed -i s/PKGVERSION/$VERSION/g $PKG/usr/sbin/nvidia-switch
sed -i s/LIBDIRSUFFIX/$LIBDIRSUFFIX/g $PKG/usr/sbin/nvidia-switch
if [ ${COMPAT32} = "yes" ]; then
sed -i s/LIB32FLAG/yes/g $PKG/usr/sbin/nvidia-switch
else
sed -i s/LIB32FLAG/no/g $PKG/usr/sbin/nvidia-switch
# Don't ship .la files:
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
rm -f $PKG/usr/lib/*.la
fi
# These update or correct wrong paths
sed -i "s|$TMP/package-$PRGNAM/usr|/usr|" $PKG/usr/lib$LIBDIRSUFFIX/libGL.la-nvidia
sed -i "s|/usr/X11R6/lib|/usr/lib$LIBDIRSUFFIX|" $PKG/usr/lib$LIBDIRSUFFIX/libGL.la-nvidia
sed -i "s|__UTILS_PATH__|/usr/bin|" $PKG/usr/share/applications/nvidia-settings.desktop
sed -i "s|__PIXMAP_PATH__|/usr/share/pixmaps|" $PKG/usr/share/applications/nvidia-settings.desktop
sed -i "s|__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__|Application;Settings;|" $PKG/usr/share/applications/nvidia-settings.desktop
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
sed -i "s|$TMP/package-$PRGNAM/usr|/usr|" $PKG/usr/lib/libGL.la-nvidia
sed -i "s|/usr/X11R6/lib|/usr/lib|" $PKG/usr/lib/libGL.la-nvidia
fi
# Move ICDs to $PKG and cleanup (no switch option in installer?)
mv /etc/OpenCL/vendors/nvidia.icd $PKG/etc/OpenCL/vendors/nvidia.icd
mv /etc/vulkan/icd.d/nvidia_icd.json $PKG/etc/vulkan/icd.d/nvidia_icd.json
mv /etc/vulkan/implicit_layer.d/nvidia_layers.json $PKG/etc/vulkan/implicit_layer.d/nvidia_layers.json
rm -rf /etc/OpenCL
rm -rf /etc/vulkan

View file

@ -1,20 +1,20 @@
PRGNAM="nvidia-driver"
VERSION="430.50"
VERSION="440.36"
HOMEPAGE="http://www.nvidia.com"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/Linux-x86_64/430.50/NVIDIA-Linux-x86_64-430.50.run \
https://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-430.50.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-430.50.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-430.50.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-430.50.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-430.50.tar.bz2"
MD5SUM_x86_64="f10833a9522b4c35ea3439dd17b11b28 \
48d65a19bc47b7898313d29d90e939f2 \
c633915dfe6af04014b02037d9c2ec81 \
0fd45f263f553e23f77b21a9edaf7b9e \
1d44fa4b7e7758af24e6bc629dad6706 \
f8c254fbac76bb192bf9cd8e99ba07ba"
DOWNLOAD_x86_64="https://download.nvidia.com/XFree86/Linux-x86_64/440.36/NVIDIA-Linux-x86_64-440.36.run \
https://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-440.36.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-modprobe/nvidia-modprobe-440.36.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-persistenced/nvidia-persistenced-440.36.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-440.36.tar.bz2 \
https://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-440.36.tar.bz2"
MD5SUM_x86_64="0a85672111e3eb348838a5919253411b \
e024b533882f834f7fbaabbded3a243a \
a505045ed590ad38093438263d225c9b \
b7a86c33ccc6d82289207d1295630025 \
923f6ea80fd6936b349107e2bc2209b6 \
aff1463ace949faa29a5ec6f6900d66f"
REQUIRES="nvidia-kernel"
MAINTAINER="Edward W. Koenig"
EMAIL="kingbeowulf@gmail.com"