diff options
-rw-r--r-- | system/nvidia-driver/README | 21 | ||||
-rw-r--r-- | system/nvidia-driver/doinst.sh | 47 | ||||
-rw-r--r-- | system/nvidia-driver/nvidia-driver.SlackBuild | 54 | ||||
-rw-r--r-- | system/nvidia-driver/nvidia-driver.info | 12 | ||||
-rw-r--r-- | system/nvidia-driver/nvidia-switch | 80 |
5 files changed, 106 insertions, 108 deletions
diff --git a/system/nvidia-driver/README b/system/nvidia-driver/README index 3fd2ec81d446c..213218fe47103 100644 --- a/system/nvidia-driver/README +++ b/system/nvidia-driver/README @@ -8,7 +8,7 @@ nvidia-driver package itself backs up the conflicting files and puts the nvidia-specific files into place. Heinz Wiesinger, the author of the build script, has written a script called -nvidia-switch, which can be used to switch between the stock xorg driver and +nvidia-switch, which is used to switch between the stock xorg driver and 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. @@ -18,6 +18,11 @@ Usage of nvidia-switch: nvidia-switch --cleanup <--> switch to the stock xorg file and remove all symlinks created by nvidia-switch +You do NOT have to run nvidia-switch after installing or upgrading the +package. ONLY if you want to explicitely switch to the xorg files, +afterwards switching back to nvidia files or before uninstalling the +package. + No special steps are necessary when updating nvidia-driver from a previous package. If you update to a newer xorg, you do not have to reinstall nvidia-driver either. Just run "nvidia-switch --nvidia" in that case. @@ -29,16 +34,6 @@ If you forget to do this, you'll have to do the switch manually, or xorg won't work on next startup. Here are the affected files: /usr/lib/libGL.so.1.2 /usr/include/GL/{gl.h glx.h glxext.h glext.h} - /usr/lib/xorg/modules/extensions/{libGLcore.so libGLcore.la libglx.so libglx.la} - -This also requires the nvidia-kernel package from SlackBuilds.org. - -ATTENTION: There is a serious bug in this version regarding Fujitsu notebooks. -(See details in nvidia's announcement for 180.51 here: - - http://www.nvnews.net/vbulletin/showthread.php?p=1985816) + /usr/lib/xorg/modules/extensions/{libglx.so libglx.la} -If you are an owner of such a system, consider upgrading to a newer version of -nvidia-driver/kernel (by changing the version number in the respective -*.SlackBuild file). An update is not yet provided as newer versions of -nvidia-driver proved to be more unstable than the current one. +This also requires the nvidia-kernel and libvdpau package from SlackBuilds.org. diff --git a/system/nvidia-driver/doinst.sh b/system/nvidia-driver/doinst.sh index b78c85ae2387f..5d892d248a992 100644 --- a/system/nvidia-driver/doinst.sh +++ b/system/nvidia-driver/doinst.sh @@ -2,32 +2,27 @@ if [ -x /usr/bin/update-desktop-database ]; then ./usr/bin/update-desktop-database -q usr/share/applications fi -if ! [ -e usr/lib/xorg/modules/libwfb.so ]; then - ( cd usr/lib/xorg/modules ; ln -s libnvidia-wfb.so.1 libwfb.so ) +if ! [ -e usr/libLIBDIRSUFFIX/xorg/modules/libwfb.so ]; then + ( cd usr/libLIBDIRSUFFIX/xorg/modules ; ln -s libnvidia-wfb.so.1 libwfb.so ) fi -( cd usr/lib/tls ; rm -rf libnvidia-tls.so.1 ) -( cd usr/lib/tls ; ln -sf tls/libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 ) -( cd usr/lib/xorg/modules ; rm -rf libnvidia-wfb.so.1 ) -( cd usr/lib/xorg/modules ; ln -sf libnvidia-wfb.so.PKGVERSION libnvidia-wfb.so.1 ) -( cd usr/lib ; rm -rf libnvidia-cfg.so.1 ) -( cd usr/lib ; ln -sf libnvidia-cfg.so.PKGVERSION libnvidia-cfg.so.1 ) -( cd usr/lib ; rm -rf libnvidia-tls.so.1 ) -( cd usr/lib ; ln -sf libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 ) -( cd usr/lib ; rm -rf libXvMCNVIDIA_dynamic.so.1 ) -( cd usr/lib ; ln -sf libXvMCNVIDIA.so.PKGVERSION libXvMCNVIDIA_dynamic.so.1 ) -( cd usr/lib ; rm -rf libvdpau.so ) -( cd usr/lib ; ln -sf libvdpau.so.1 libvdpau.so ) -( cd usr/lib ; ln -sf libvdpau.so.PKGVERSION libvdpau.so.1 ) -( cd usr/lib ; rm -rf libvdpau_nvidia.so ) -( cd usr/lib ; ln -sf libvdpau_nvidia.so.PKGVERSION libvdpau_nvidia.so ) -( cd usr/lib ; rm -rf libvdpau_trace.so ) -( cd usr/lib ; ln -sf libvdpau_trace.so.PKGVERSION libvdpau_trace.so ) -( cd usr/lib ; rm -rf libnvidia-cfg.so ) -( cd usr/lib ; ln -sf libnvidia-cfg.so.1 libnvidia-cfg.so ) -( cd usr/lib ; rm -rf libcuda.so.1 ) -( cd usr/lib ; ln -sf libcuda.so.PKGVERSION libcuda.so.1 ) -( cd usr/lib ; rm -rf libcuda.so ) -( cd usr/lib ; ln -sf libcuda.so.1 libcuda.so ) +( cd usr/libLIBDIRSUFFIX/tls ; rm -rf libnvidia-tls.so.1 ) +( cd usr/libLIBDIRSUFFIX/tls ; ln -sf libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 ) +( cd usr/libLIBDIRSUFFIX/xorg/modules ; rm -rf libnvidia-wfb.so.1 ) +( cd usr/libLIBDIRSUFFIX/xorg/modules ; ln -sf libnvidia-wfb.so.PKGVERSION libnvidia-wfb.so.1 ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libnvidia-cfg.so.1 ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-cfg.so.PKGVERSION libnvidia-cfg.so.1 ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libnvidia-tls.so.1 ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-tls.so.PKGVERSION libnvidia-tls.so.1 ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libXvMCNVIDIA_dynamic.so.1 ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libXvMCNVIDIA.so.PKGVERSION libXvMCNVIDIA_dynamic.so.1 ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libvdpau_nvidia.so ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libvdpau_nvidia.so.PKGVERSION libvdpau_nvidia.so ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libnvidia-cfg.so ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libnvidia-cfg.so.1 libnvidia-cfg.so ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libcuda.so.1 ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libcuda.so.PKGVERSION libcuda.so.1 ) +( cd usr/libLIBDIRSUFFIX ; rm -rf libcuda.so ) +( cd usr/libLIBDIRSUFFIX ; ln -sf libcuda.so.1 libcuda.so ) -/usr/sbin/nvidia-switch --install
\ No newline at end of file +/usr/sbin/nvidia-switch --install diff --git a/system/nvidia-driver/nvidia-driver.SlackBuild b/system/nvidia-driver/nvidia-driver.SlackBuild index a7b38bcc80f9d..ab1a3ae556473 100644 --- a/system/nvidia-driver/nvidia-driver.SlackBuild +++ b/system/nvidia-driver/nvidia-driver.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for nvidia-driver -# Copyright 2007-2009 Heinz Wiesinger <pprkut@liwjatan.at> +# Copyright 2007-2009 Heinz Wiesinger, Amsterdam, The Netherlands # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -25,8 +25,8 @@ # Thanks to Robby Workman for suggestions to improve this script. PRGNAM=nvidia-driver -VERSION=180.29 -ARCH=${ARCH:-i586} +VERSION=190.42 +ARCH=${ARCH:-i486} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -35,7 +35,18 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -SRCNAM=NVIDIA-Linux-x86-$VERSION-pkg0 +if [ "$ARCH" = "i486" ]; then + TARGET="x86" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + TARGET="x86" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + TARGET="x86_64" + LIBDIRSUFFIX="64" +fi + +SRCNAM=NVIDIA-Linux-$TARGET-$VERSION-pkg0 set -e @@ -48,28 +59,30 @@ cd $SRCNAM chown -R root:root . chmod -R u+w,go+r-w,a-s . -mkdir -p $PKG/usr/{bin,share,lib,sbin} $PKG/usr/include/GL \ - $PKG/usr/lib/xorg/modules/{drivers,extensions} +mkdir -p $PKG/usr/{bin,share,lib$LIBDIRSUFFIX,sbin} $PKG/usr/include/GL \ + $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/{drivers,extensions} # Start with the libraries cd usr/lib - cp -a * $PKG/usr/lib + #Do not copy libvdpau and libvdpau_trace, those are now a separate script + rm libvdpau.so.$VERSION libvdpau_trace.so.$VERSION + cp -a * $PKG/usr/lib$LIBDIRSUFFIX #Rename those files which would overwrite xorg's original files for i in libGL.so.$VERSION libGLcore.so.$VERSION; do - mv $PKG/usr/lib/$i $PKG/usr/lib/$i-nvidia ; + mv $PKG/usr/lib$LIBDIRSUFFIX/$i $PKG/usr/lib$LIBDIRSUFFIX/$i-nvidia ; done cd - # This is the driver itself cd usr/X11R6/lib - cp -a * $PKG/usr/lib/xorg/ + cp -a * $PKG/usr/lib$LIBDIRSUFFIX/xorg/ for i in libXvMCNVIDIA.a libXvMCNVIDIA.so.$VERSION; do - mv $PKG/usr/lib/xorg/$i $PKG/usr/lib/ ; + mv $PKG/usr/lib$LIBDIRSUFFIX/xorg/$i $PKG/usr/lib$LIBDIRSUFFIX/ ; done # Rename those files which would overwrite xorg's original files - mv $PKG/usr/lib/xorg/modules/extensions/libglx.so.$VERSION \ - $PKG/usr/lib/xorg/modules/extensions/libglx.so.$VERSION-nvidia + mv $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/extensions/libglx.so.$VERSION \ + $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/extensions/libglx.so.$VERSION-nvidia cd - # These are the includes @@ -80,7 +93,6 @@ cd usr/include/GL cd - cp -a usr/include/cuda $PKG/usr/include/cuda -cp -a usr/include/vdpau $PKG/usr/include/vdpau # Next come the apps cp -a nvidia-installer $PKG/usr/bin/ @@ -103,13 +115,14 @@ cd - # after installation. 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 # These correct wrong paths -sed -i 's|__LIBGL_PATH__|/usr/lib/|' $PKG/usr/lib/libGL.la -sed -i 's|/usr/X11R6/lib|/usr/lib/|' $PKG/usr/lib/libGL.la -sed -i 's|__UTILS_PATH__|/usr/bin|' \ +sed -i "s|__LIBGL_PATH__|/usr/lib$LIBDIRSUFFIX/|" $PKG/usr/lib$LIBDIRSUFFIX/libGL.la +sed -i "s|/usr/X11R6/lib|/usr/lib$LIBDIRSUFFIX/|" $PKG/usr/lib$LIBDIRSUFFIX/libGL.la +sed -i "s|__UTILS_PATH__|/usr/bin|" \ $PKG/usr/share/applications/nvidia-settings.desktop -sed -i 's|__PIXMAP_PATH__|/usr/share/pixmaps|' \ +sed -i "s|__PIXMAP_PATH__|/usr/share/pixmaps|" \ $PKG/usr/share/applications/nvidia-settings.desktop cd $TMP/$SRCNAM @@ -119,8 +132,9 @@ cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.Slackware cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install -sed s/PKGVERSION/$VERSION/g $CWD/slack-desc > $PKG/install/slack-desc -sed s/PKGVERSION/$VERSION/g $CWD/doinst.sh > $PKG/install/doinst.sh +sed "s/PKGVERSION/$VERSION/g" $CWD/slack-desc > $PKG/install/slack-desc +sed "s/PKGVERSION/$VERSION/g" $CWD/doinst.sh > $PKG/install/doinst.sh +sed -i "s/LIBDIRSUFFIX/$LIBDIRSUFFIX/g" $PKG/install/doinst.sh cd $PKG -/sbin/makepkg -l n -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz +/sbin/makepkg -l n -c n $OUTPUT/$PRGNAM-$VERSION-$TARGET-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/system/nvidia-driver/nvidia-driver.info b/system/nvidia-driver/nvidia-driver.info index e6bfe46a2d378..23f7d64303a69 100644 --- a/system/nvidia-driver/nvidia-driver.info +++ b/system/nvidia-driver/nvidia-driver.info @@ -1,8 +1,10 @@ PRGNAM="nvidia-driver" -VERSION="180.29" +VERSION="190.42" HOMEPAGE="http://www.nvidia.com" -DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/180.29/NVIDIA-Linux-x86-180.29-pkg0.run" -MD5SUM="db9aa3683988b7b0872abae7182f5bc5" -MAINTAINER="ppr:kut" +DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/190.42/NVIDIA-Linux-x86-190.42-pkg0.run" +MD5SUM="f94806feee87de756d14fe3e9bcaf05a" +DOWNLOAD_x86_64="ftp://download.nvidia.com/XFree86/Linux-x86_64/190.42/NVIDIA-Linux-x86_64-190.42-pkg0.run" +MD5SUM_x86_64="ae431ff849ec01446e6724f9fcfe3bb4" +MAINTAINER="Heinz Wiesinger" EMAIL="pprkut@liwjatan.at" -APPROVED="dsomero" +APPROVED="rworkman" diff --git a/system/nvidia-driver/nvidia-switch b/system/nvidia-driver/nvidia-switch index c12f28e7e7d64..f4e0ed4948084 100644 --- a/system/nvidia-driver/nvidia-switch +++ b/system/nvidia-driver/nvidia-switch @@ -1,26 +1,26 @@ #!/bin/sh -# *************************************************************************** -# * Copyright (C) 2007-2008 by Heinz Wiesinger * -# * pprkut@liwjatan.at * -# * http://www.liwjatan.at * -# * * -# * This program is free software; you can redistribute it and/or modify * -# * it under the terms of the GNU General Public License as published by * -# * the Free Software Foundation; either version 3 of the License, or * -# * (at your option) any later version. * -# * * -# * This program is distributed in the hope that it will be useful, * -# * but WITHOUT ANY WARRANTY; without even the implied warranty of * -# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -# * GNU General Public License for more details. * -# * * -# * You should have received a copy of the GNU General Public License * -# * along with this program; if not, write to the * -# * Free Software Foundation, Inc., * -# * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -# ***************************************************************************/ -# nvidia-switch utility 0.7.5 +# Copyright 2007-2009 Heinz Wiesinger, Amsterdam, The Netherlands +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# nvidia-switch utility 0.8.1 # # A tool to switch between nvidia-binary-driver and stock xorg-driver # if both are installed in parallel. @@ -29,9 +29,10 @@ set -e ROOT="/" CWD=$(pwd) +LIBSUFFIX="LIBDIRSUFFIX" # This will be replaced in the build script INC="${ROOT}usr/include/GL" -LIB="${ROOT}usr/lib" -XMOD="${ROOT}usr/lib/xorg/modules" +LIB="${ROOT}usr/lib${LIBSUFFIX}" +XMOD="${LIB}/xorg/modules" XLIB="$XMOD/extensions" NV_VERSION='PKGVERSION' # This will be replaced in the build script GL_VERSION="1.2" @@ -97,7 +98,7 @@ cd "$CWD" } libs(){ -for i in libGLcore.so libGLcore.la libglx.la; do +for i in libglx.la; do if [ "$1" = "nvidia" ]; then #If this library exists, move it to *-xorg move_existing "$XLIB/$i" "$XLIB/$i-xorg" @@ -305,10 +306,8 @@ check_includes(){ check_glcore(){ if [ "$1" = "nvidia" ]; then CHECK="link" - EXT="" else CHECK="exist" - EXT="-xorg" fi for i in libGLcore.so.1 libGLcore.so.$NV_VERSION libGLcore.so.$NV_VERSION-nvidia; do @@ -322,18 +321,6 @@ check_glcore(){ done echo "" - - for i in libGLcore.so libGLcore.la libGLcore.so-xorg libGLcore.la-xorg; do - if [ "$i" = "libGLcore.so$EXT" ]; then - check $XLIB $i "exist" - elif [ "$i" = "libGLcore.la$EXT" ]; then - check $XLIB $i "exist" - else - check $XLIB $i - fi - done - - echo "" } check_glx(){ @@ -447,7 +434,7 @@ cleanup_check(){ nvidia(){ echo $'Switching to nvidia-driver files!\n' - echo "You have to ENABLE the nvidia driver in /etc/X11/xorg.conf." + echo "Make sure the nvidia driver is ENABLED in /etc/X11/xorg.conf." echo "Otherwise, this may lead to improperly working drivers." incs "xorg" "nvidia" @@ -458,7 +445,7 @@ nvidia(){ libglx_nvidia libwfb_nvidia - LD_NVIDIA="/usr/lib/libGL.so.$NV_VERSION-nvidia" + LD_NVIDIA="${LIB}/libGL.so.$NV_VERSION-nvidia" nvidia_ldconfig $LD_NVIDIA } @@ -467,7 +454,7 @@ xorg(){ if [ "$1" = "cleanup" ]; then echo $'Cleaning up symlinks.\n' fi - echo "You have to DISABLE the nvidia driver in /etc/X11/xorg.conf." + echo "Make sure the nvidia driver is DISABLED in /etc/X11/xorg.conf." echo "Otherwise, this may lead to improperly working drivers." if [ "$1" = "cleanup" ]; then @@ -486,7 +473,7 @@ xorg(){ fi remove_link "$XMOD/libwfb.so" - LD_NVIDIA="/usr/lib/libGL.so.1.2" + LD_NVIDIA="${LIB}/libGL.so.1.2" nvidia_ldconfig $LD_NVIDIA "xorg" } @@ -509,9 +496,14 @@ if [ "$1" = '--nvidia' ]; then elif [ "$1" = '--install' ]; then ROOT="" CWD=$(pwd) + if [ -e "${ROOT}usr/lib64" ]; then + LIBSUFFIX="64" + else + LIBSUFFIX="" + fi INC="${ROOT}usr/include/GL" - LIB="${ROOT}usr/lib" - XMOD="${ROOT}usr/lib/xorg/modules" + LIB="${ROOT}usr/lib${LIBSUFFIX}" + XMOD="${LIB}/xorg/modules" XLIB="$XMOD/extensions" nvidia elif [ "$1" = '--xorg' ]; then |