From acb2993d3e52289d77b5f79884ff19bf8521843c Mon Sep 17 00:00:00 2001 From: Edward W. Koenig Date: Fri, 29 Nov 2019 23:27:10 +0100 Subject: system/nvidia-driver: Updated for version 440.36. Signed-off-by: Matteo Bernardini --- system/nvidia-driver/README | 45 ++-------------- system/nvidia-driver/changelog.txt | 1 + system/nvidia-driver/doinst.sh | 2 - system/nvidia-driver/nvidia-driver.SlackBuild | 78 ++++++++++++--------------- system/nvidia-driver/nvidia-driver.info | 26 ++++----- 5 files changed, 52 insertions(+), 100 deletions(-) diff --git a/system/nvidia-driver/README b/system/nvidia-driver/README index 78d093293b..cbfb71ee50 100644 --- a/system/nvidia-driver/README +++ b/system/nvidia-driver/README @@ -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'. diff --git a/system/nvidia-driver/changelog.txt b/system/nvidia-driver/changelog.txt index c3c9c0e9b9..ce4312bf9a 100644 --- a/system/nvidia-driver/changelog.txt +++ b/system/nvidia-driver/changelog.txt @@ -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 diff --git a/system/nvidia-driver/doinst.sh b/system/nvidia-driver/doinst.sh index 8ee62f049e..392c12adb9 100644 --- a/system/nvidia-driver/doinst.sh +++ b/system/nvidia-driver/doinst.sh @@ -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 - diff --git a/system/nvidia-driver/nvidia-driver.SlackBuild b/system/nvidia-driver/nvidia-driver.SlackBuild index 2b3f328aa7..cb536d4137 100644 --- a/system/nvidia-driver/nvidia-driver.SlackBuild +++ b/system/nvidia-driver/nvidia-driver.SlackBuild @@ -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 diff --git a/system/nvidia-driver/nvidia-driver.info b/system/nvidia-driver/nvidia-driver.info index f75518e937..929d009c5d 100644 --- a/system/nvidia-driver/nvidia-driver.info +++ b/system/nvidia-driver/nvidia-driver.info @@ -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" -- cgit v1.2.3