system/nvidia-legacy96-driver: Added.
Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
parent
f9c2de6754
commit
6c513cb06e
|
@ -0,0 +1,32 @@
|
|||
# Copyright (c) 2008 NVIDIA, Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
RANLIB ?= ranlib
|
||||
|
||||
libXNVCtrl.a : libXNVCtrl.a(NVCtrl.o)
|
||||
$(RANLIB) $@
|
||||
|
||||
NVCtrl.o : NVCtrl.h nv_control.h NVCtrlLib.h
|
||||
.INTERMEDIATE: NVCtrl.o
|
||||
|
||||
clean ::
|
||||
rm -f libXNVCtrl.a *.o
|
||||
.PHONY: clean
|
|
@ -0,0 +1,10 @@
|
|||
--- nvidia-settings-1.0/src/libXNVCtrlAttributes/NvCtrlAttributesVidMode.c 2010-10-28 04:23:19.000000000 +0200
|
||||
+++ nvidia-settings-1.0-mod/src/libXNVCtrlAttributes/NvCtrlAttributesVidMode.c 2011-01-04 11:43:54.888000046 +0100
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "msg.h"
|
||||
|
||||
#include <X11/extensions/xf86vmode.h>
|
||||
+#include <X11/extensions/xf86vmproto.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
|
@ -0,0 +1,40 @@
|
|||
This is the proprietary binary video driver for legacy cards (Geforce 4
|
||||
Backwards) from NVidia for the X.Org X-server. This package does not
|
||||
include the kernel-module - it is a part of the nvidia-kernel package
|
||||
at SlackBuilds.org.
|
||||
|
||||
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.
|
||||
|
||||
Heinz Wiesinger, the author of the build script, has written a script called
|
||||
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.
|
||||
|
||||
Usage of nvidia-switch:
|
||||
nvidia-switch --xorg <--> switch to the stock xorg files
|
||||
nvidia-switch --nvidia <--> switch to the proprietary nvidia files
|
||||
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.
|
||||
|
||||
Before uninstalling this package, it is important that you execute
|
||||
'nvidia-switch --cleanup', which will switch back to the stock xorg files
|
||||
and remove all links created by nvidia-switch before.
|
||||
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/{libglx.so libglx.la}
|
||||
|
||||
This also requires the nvidia-legacy96-kernel package from SlackBuilds.org.
|
|
@ -0,0 +1,6 @@
|
|||
if [ -x /usr/bin/update-desktop-database ]; then
|
||||
./usr/bin/update-desktop-database -q usr/share/applications
|
||||
fi
|
||||
|
||||
/usr/sbin/nvidia-switch --install
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for nvidia-legacy96-driver
|
||||
|
||||
# Copyright 2008-2011 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.
|
||||
#
|
||||
# Maintainer: Edward Koenig, <kingbeowulf[at]gmail.com>
|
||||
|
||||
|
||||
PRGNAM=nvidia-legacy96-driver
|
||||
VERSION=96.43.23
|
||||
APPVER=96.43.20
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
NVPKG="pkg1"
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
i?86) ARCH=i486 ;;
|
||||
arm*) ARCH=arm ;;
|
||||
*) ARCH=$( uname -m ) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
CWD=$(pwd)
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i486" ]; then
|
||||
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
|
||||
TARGET="x86"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
TARGET="x86"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
TARGET="x86_64"
|
||||
LIBDIRSUFFIX="64"
|
||||
NVPKG="pkg2"
|
||||
else
|
||||
SLKCFLAGS="-O2"
|
||||
LIBDIRSUFFIX=""
|
||||
fi
|
||||
|
||||
SRCNAM=NVIDIA-Linux-$TARGET-$VERSION-$NVPKG
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf nvidia-installer-1.0.7
|
||||
tar xvf $CWD/nvidia-installer-$APPVER.tar.gz
|
||||
rm -rf nvidia-settings-1.0
|
||||
tar xvf $CWD/nvidia-settings-$APPVER.tar.gz
|
||||
rm -rf nvidia-xconfig-1.0
|
||||
tar xvf $CWD/nvidia-xconfig-$APPVER.tar.gz
|
||||
rm -rf $SRCNAM
|
||||
sh $CWD/$SRCNAM.run --extract-only
|
||||
cd $SRCNAM
|
||||
chown -R root:root .
|
||||
chmod -R u+w,go+r-w,a-s .
|
||||
|
||||
mkdir -p $PKG/usr/{bin,share,lib$LIBDIRSUFFIX,sbin} $PKG/usr/include/GL \
|
||||
$PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/{drivers,extensions} \
|
||||
$PKG/usr/man/man1
|
||||
|
||||
# Start with the libraries
|
||||
cd usr/lib
|
||||
#remove duplicate libnvidia-tls
|
||||
rm libnvidia-tls.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$LIBDIRSUFFIX/$i $PKG/usr/lib$LIBDIRSUFFIX/$i-nvidia ;
|
||||
done
|
||||
cd -
|
||||
|
||||
# This is the driver itself
|
||||
cd usr/X11R6/lib
|
||||
cp -a * $PKG/usr/lib$LIBDIRSUFFIX/xorg/
|
||||
for i in libXvMCNVIDIA.a libXvMCNVIDIA.so.$VERSION; do
|
||||
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$LIBDIRSUFFIX/xorg/modules/extensions/libglx.so.$VERSION \
|
||||
$PKG/usr/lib$LIBDIRSUFFIX/xorg/modules/extensions/libglx.so.$VERSION-nvidia
|
||||
cd -
|
||||
|
||||
# These are the includes
|
||||
cd usr/include/GL
|
||||
for i in glxext.h glext.h gl.h glx.h; do
|
||||
cp -a $i $PKG/usr/include/GL/$i-nvidia
|
||||
done
|
||||
cd -
|
||||
|
||||
# Next come the apps
|
||||
cp -a usr/bin/nvidia-bug-report.sh $PKG/usr/bin/
|
||||
|
||||
# symlinks
|
||||
cd $PKG/usr/lib$LIBDIRSUFFIX
|
||||
ln -sf libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
|
||||
ln -sf libnvidia-cfg.so.1 libnvidia-cfg.so
|
||||
ln -sf tls/libnvidia-tls.so.$VERSION libnvidia-tls.so.1
|
||||
ln -sf libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1
|
||||
cd -
|
||||
|
||||
cd $PKG/usr/lib$LIBDIRSUFFIX/tls
|
||||
ln -sf libnvidia-tls.so.$VERSION libnvidia-tls.so.1
|
||||
cd -
|
||||
|
||||
cd $PKG/usr/lib$LIBDIRSUFFIX/xorg/modules
|
||||
ln -sf libnvidia-wfb.so.$VERSION libnvidia-wfb.so.1
|
||||
cd -
|
||||
|
||||
# XDG stuff
|
||||
cd usr/share
|
||||
for i in applications pixmaps; do
|
||||
cp -a $i $PKG/usr/share/
|
||||
done
|
||||
cd -
|
||||
|
||||
# Compiling nvidia-installer from source
|
||||
cd $TMP/nvidia-installer-1.0.7
|
||||
chown -R root:root .
|
||||
chmod -R u+w,go+r-w,a-s .
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
LDFLAGS="-lz" \
|
||||
make
|
||||
|
||||
install -m 755 nvidia-installer $PKG/usr/bin/
|
||||
install -m 644 nvidia-installer.1 $PKG/usr/man/man1/
|
||||
cd -
|
||||
|
||||
# Compiling nvidia-settings from source
|
||||
cd $TMP/nvidia-settings-1.0
|
||||
chown -R root:root .
|
||||
chmod -R u+w,go+r-w,a-s .
|
||||
|
||||
# Fix missing include necessary for newer version of libXxf86vm
|
||||
patch -p1 -i $CWD/NvCtrlAttributesVidMode.diff
|
||||
|
||||
# Slackware doesn't ship a static libXxf86vm, so we link against the shared one
|
||||
sed -i "s|-Wl,-Bstatic -lXxf86vm -Wl,-Bdynamic|-Wl,-Bdynamic -lXxf86vm|" \
|
||||
Makefile
|
||||
|
||||
cd src/libXNVCtrl
|
||||
rm libXNVCtrl.a
|
||||
cp $CWD/Makefile-libXNVCtrl ./Makefile
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
make
|
||||
cd ../../
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
NV_CFLAGS="$SLKCFLAGS" \
|
||||
X11_LIB_DIRS="-L/usr/lib$LIBDIRSUFFIX -ldl" \
|
||||
make
|
||||
|
||||
install -m 755 nvidia-settings $PKG/usr/bin/
|
||||
install -m 644 doc/nvidia-settings.1 $PKG/usr/man/man1/
|
||||
cd ../
|
||||
|
||||
# Compiling nvidia-xconfig from source
|
||||
cd $TMP/nvidia-xconfig-1.0
|
||||
chown -R root:root .
|
||||
chmod -R u+w,go+r-w,a-s .
|
||||
|
||||
NV_CFLAGS="$SLKCFLAGS" \
|
||||
make
|
||||
|
||||
install -m 755 nvidia-xconfig $PKG/usr/bin/
|
||||
install -m 644 nvidia-xconfig.1 $PKG/usr/man/man1/
|
||||
cd -
|
||||
|
||||
# Self written bash script which I use to switch between nvidia and nv.
|
||||
# It is now also used by doinst.sh to switch to the nvidia-driver right
|
||||
# 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
|
||||
|
||||
# Compress man-pages
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
|
||||
# These correct wrong paths
|
||||
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|" \
|
||||
$PKG/usr/share/applications/nvidia-settings.desktop
|
||||
|
||||
cd $TMP/$SRCNAM
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a LICENSE pkg-history.txt ./usr/share/doc* $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
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
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$TARGET-$BUILD$TAG.${PKGTYPE:-tgz}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
PRGNAM="nvidia-legacy96-driver"
|
||||
VERSION="96.43.23"
|
||||
HOMEPAGE="http://www.nvidia.com"
|
||||
DOWNLOAD="ftp://download.nvidia.com/XFree86/Linux-x86/96.43.23/NVIDIA-Linux-x86-96.43.23-pkg1.run \
|
||||
ftp://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-96.43.20.tar.gz \
|
||||
ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-96.43.20.tar.gz \
|
||||
ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-96.43.20.tar.gz"
|
||||
MD5SUM="21f6eb657e651a83ff4271438122b379\
|
||||
8a5bdb1c455953e8cc4c089f4404f373 \
|
||||
c27decb2951a393620bb469757314c19 \
|
||||
394956f6d29e642bda2a16ade02d27ad"
|
||||
DOWNLOAD_x86_64="ftp://download.nvidia.com/XFree86/Linux-x86_64/96.43.23/NVIDIA-Linux-x86_64-96.43.23-pkg2.run"
|
||||
MD5SUM_x86_64="dd8546e5ae7d10da072306e5f13952b8"
|
||||
REQUIRES="nvidia-legacy96-kernel"
|
||||
MAINTAINER="Edward Koenig"
|
||||
EMAIL="kinbeowulf@gmail.com"
|
|
@ -0,0 +1,512 @@
|
|||
#!/bin/sh
|
||||
|
||||
# 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.2
|
||||
#
|
||||
# A tool to switch between nvidia-binary-driver and stock xorg-driver
|
||||
# if both are installed in parallel.
|
||||
|
||||
set -e
|
||||
|
||||
ROOT="/"
|
||||
CWD=$(pwd)
|
||||
LIBSUFFIX="LIBDIRSUFFIX" # This will be replaced in the build script
|
||||
INC="${ROOT}usr/include/GL"
|
||||
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"
|
||||
|
||||
remove_link(){
|
||||
if [ -L "$1" ]; then
|
||||
rm -f "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
remove_existing(){
|
||||
if [ -e "$1" ]; then
|
||||
rm -f $1
|
||||
fi
|
||||
}
|
||||
|
||||
move_existing(){
|
||||
if [ -e "$1" ]; then
|
||||
mv $1 $2
|
||||
fi
|
||||
}
|
||||
|
||||
setup_link(){
|
||||
if [ "$1" = "mv" ]; then
|
||||
mv "$2" "$3"
|
||||
else
|
||||
rm -f $2
|
||||
fi
|
||||
ln -s "$3" "$2"
|
||||
}
|
||||
|
||||
# Move and rename files in /usr/include
|
||||
# $1 = from
|
||||
# $2 = to
|
||||
incs(){
|
||||
cd "$INC"
|
||||
|
||||
if [ "$2" = "cleanup" ]; then
|
||||
CMD="mv"
|
||||
THREE="$1"
|
||||
else
|
||||
CMD="ln -s"
|
||||
THREE="$2"
|
||||
fi
|
||||
|
||||
for i in glxext.h glext.h glx.h gl.h; do
|
||||
if [ -L "$i" ]; then
|
||||
rm -f "$i"
|
||||
$CMD "$i-$THREE" "$i"
|
||||
elif [ -e "$i" ]; then
|
||||
if [ "$2" = "cleanup" ]; then
|
||||
rm -f "$i-$1"
|
||||
else
|
||||
mv "$i" "$i-$1"
|
||||
ln -s "$i-$THREE" "$i"
|
||||
fi
|
||||
else
|
||||
$CMD "$i-$THREE" "$i"
|
||||
fi
|
||||
done
|
||||
|
||||
cd "$CWD"
|
||||
}
|
||||
|
||||
libs(){
|
||||
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"
|
||||
else
|
||||
#If .so does not exist, and *-xorg does, then remove the -xorg
|
||||
if [ -e "$XLIB/$i" ]; then
|
||||
remove_existing "$XLIB/$i-xorg"
|
||||
else
|
||||
move_existing "$XLIB/$i-xorg" "$XLIB/$i"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
libs_basic(){
|
||||
for i in libGL.so libGLcore.so; do
|
||||
#if this link exists, remove it, if it's a file, move it to *.nvidia
|
||||
if [ -L "$LIB/$i.$NV_VERSION" ]; then
|
||||
rm -f "$LIB/$i.$NV_VERSION"
|
||||
elif [ -e "$LIB/$i.$NV_VERSION" ]; then
|
||||
mv "$LIB/$i.$NV_VERSION" "$LIB/$i.$NV_VERSION-nvidia"
|
||||
fi
|
||||
remove_link "$LIB/$i.1"
|
||||
done
|
||||
}
|
||||
|
||||
libgl_nvidia(){
|
||||
#if libGL.so.$GL_VERSION does exist, move it to libGL.so.$GL_VERSION-xorg, as it conflicts if nvidia's libGL.so
|
||||
# then remove the libGL.so.1 symlink and create a new one pointing to nvidia's libGL.so
|
||||
if [ -e "$LIB/libGL.so.$GL_VERSION" ]; then
|
||||
cd "$LIB"
|
||||
mv libGL.so.$GL_VERSION libGL.so.$GL_VERSION-xorg
|
||||
setup_link "" "libGL.so.1" "libGL.so.$NV_VERSION"
|
||||
cd "$CWD"
|
||||
fi
|
||||
}
|
||||
|
||||
libgl_xorg(){
|
||||
#if libGL.so.$GL_VERSION does not exist and libGL.so.$GL_VERSION-xorg does, move it to libGL.so.$GL_VERSION
|
||||
# then remove the libGL.so.1 symlink and create a new one pointing to nvidia's libGL.so
|
||||
if [ -e "$LIB/libGL.so.$GL_VERSION" ]; then
|
||||
remove_existing "$LIB/libGL.so.$GL_VERSION-xorg"
|
||||
else
|
||||
if [ -e "$LIB/libGL.so.$GL_VERSION-xorg" ]; then
|
||||
cd "$LIB"
|
||||
mv libGL.so.$GL_VERSION-xorg libGL.so.$GL_VERSION
|
||||
ln -s libGL.so.$GL_VERSION libGL.so.1
|
||||
cd "$CWD"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
libglcore_nvidia(){
|
||||
#If libGLcore.so.$NV_VERSION-nvidia does exists, then remove the -nvidia and make it usable that way
|
||||
if [ -e "$LIB/libGLcore.so.$NV_VERSION-nvidia" ]; then
|
||||
cd "$LIB"
|
||||
rm -f libGLcore.so.$NV_VERSION libGLcore.so.1
|
||||
ln -s libGLcore.so.$NV_VERSION-nvidia libGLcore.so.$NV_VERSION
|
||||
ln -s libGLcore.so.$NV_VERSION libGLcore.so.1
|
||||
cd "$CWD"
|
||||
fi
|
||||
}
|
||||
|
||||
lib_nvidia(){
|
||||
for i in libGL.so libglx.so; do
|
||||
if [ "$i" = "libGL.so" ]; then
|
||||
cd "$LIB"
|
||||
elif [ "$i" = "libglx.so" ]; then
|
||||
cd "$XLIB"
|
||||
fi
|
||||
#If libGL.so.$NV_VERSION-nvidia does exists, then remove the -nvidia and make it usable that way
|
||||
if [ -e "$i.$NV_VERSION-nvidia" ]; then
|
||||
setup_link "" "$i.$NV_VERSION" "$i.$NV_VERSION-nvidia"
|
||||
fi
|
||||
cd "$CWD"
|
||||
done
|
||||
}
|
||||
|
||||
libglx_base(){
|
||||
for i in $(ls libglx.so* | grep -v -); do
|
||||
if ! [ "$i" = "libglx.so.$NV_VERSION" ]; then
|
||||
rm -f $i
|
||||
fi
|
||||
done
|
||||
ln -s libglx.so.$NV_VERSION libglx.so
|
||||
}
|
||||
|
||||
libglx_nvidia(){
|
||||
# if libglx.so is not a link, back it up to *-xorg, and create a symlink to nvidia's one
|
||||
# if it's a link, then remove it and create a new one.
|
||||
if ! [ -L "$XLIB/libglx.so" ]; then
|
||||
cd $XLIB
|
||||
mv libglx.so libglx.so-xorg
|
||||
libglx_base
|
||||
else
|
||||
cd $XLIB
|
||||
libglx_base
|
||||
fi
|
||||
cd $CWD
|
||||
}
|
||||
|
||||
libglx_xorg(){
|
||||
if [ "$1" = "xorg" ]; then
|
||||
CMD="ln -s"
|
||||
else
|
||||
CMD="mv"
|
||||
fi
|
||||
|
||||
#if this library exists, move it to *-nvidia
|
||||
if [ -L "$XLIB/libglx.so.$NV_VERSION" ]; then
|
||||
rm $XLIB/libglx.so.$NV_VERSION
|
||||
elif [ -e "$XLIB/libglx.so.$NV_VERSION" ]; then
|
||||
mv $XLIB/libglx.so.$NV_VERSION $XLIB/libglx.so.$NV_VERSION-nvidia
|
||||
fi
|
||||
|
||||
# if libglx.so exists and is a link, remove it and create a new one
|
||||
# If it does exists and is not a link, remove the old one, and create the new one.
|
||||
# if it does not exist, create a symlink
|
||||
if [ -L "$XLIB/libglx.so" ]; then
|
||||
cd $XLIB
|
||||
rm libglx.so
|
||||
$CMD libglx.so-xorg libglx.so
|
||||
elif [ -e "$XLIB/libglx.so" ]; then
|
||||
if [ "$1" = "xorg" ]; then
|
||||
cd $XLIB
|
||||
setup_link "mv" "libglx.so" "libglx.so-xorg"
|
||||
else
|
||||
remove_existing "$XLIB/libglx.so-xorg"
|
||||
fi
|
||||
else
|
||||
cd $XLIB
|
||||
$CMD libglx.so-xorg libglx.so
|
||||
fi
|
||||
cd $CWD
|
||||
}
|
||||
|
||||
nvidia_ldconfig(){
|
||||
/sbin/ldconfig
|
||||
#Generate correct symink for that lib
|
||||
/sbin/ldconfig -l $1
|
||||
|
||||
if [ "$2" = "xorg" ]; then
|
||||
#Remove so-link, recreated by ldconfig
|
||||
cd $LIB
|
||||
remove_link "libGLcore.so.1"
|
||||
cd $CWD
|
||||
fi
|
||||
}
|
||||
|
||||
check(){
|
||||
echo -n "checking $2...."
|
||||
if [ -e "$1/$2" ]; then
|
||||
if [ "$3" = "exist" ]; then
|
||||
echo "ERROR: $1/$2 does exist!!!!!"
|
||||
else
|
||||
echo -n "exists"
|
||||
if [ -h "$1/$2" ]; then
|
||||
echo "(link)"
|
||||
echo -n " points to:"
|
||||
ls -o "$1/$2" | cut -d ">" -f 2
|
||||
else
|
||||
if [ "$3" = "link" ]; then
|
||||
echo " (!)"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [ "$3" = "exist" ]; then
|
||||
echo "does not exist"
|
||||
else
|
||||
echo "ERROR: $1/$2 does not exist!!!!!"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
check_includes(){
|
||||
if [ "$1" = "cleanup" ]; then
|
||||
cleanup=""
|
||||
cleanup2="exist"
|
||||
else
|
||||
cleanup="link"
|
||||
cleanup2=""
|
||||
fi
|
||||
|
||||
for i in glext.h glxext.h gl.h glx.h; do
|
||||
check $INC $i $cleanup
|
||||
check $INC $i-nvidia
|
||||
check $INC $i-xorg $cleanup2
|
||||
echo ""
|
||||
done
|
||||
}
|
||||
|
||||
check_glcore(){
|
||||
if [ "$1" = "nvidia" ]; then
|
||||
CHECK="link"
|
||||
else
|
||||
CHECK="exist"
|
||||
fi
|
||||
|
||||
for i in libGLcore.so.1 libGLcore.so.$NV_VERSION libGLcore.so.$NV_VERSION-nvidia; do
|
||||
if [ "$i" = "libGLcore.so.1" ]; then
|
||||
check $LIB $i $CHECK
|
||||
elif [ "$i" = "libGLcore.so.$NV_VERSION" ]; then
|
||||
check $LIB $i $CHECK
|
||||
else
|
||||
check $LIB $i
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
}
|
||||
|
||||
check_glx(){
|
||||
if [ "$1" = "xorg" ]; then
|
||||
xorg="exist"
|
||||
cleanup="link"
|
||||
cleanup2=""
|
||||
EXT="-xorg"
|
||||
elif [ "$1" = "cleanup" ]; then
|
||||
xorg="exist"
|
||||
cleanup=""
|
||||
cleanup2="exist"
|
||||
EXT="-xorg"
|
||||
else
|
||||
xorg="link"
|
||||
cleanup="link"
|
||||
cleanup2=""
|
||||
EXT=""
|
||||
fi
|
||||
|
||||
for i in libglx.la libglx.so libglx.so.$NV_VERSION libglx.so.$NV_VERSION-nvidia \
|
||||
libglx.so-xorg libglx.la-xorg; do
|
||||
if [ "$i" = "libglx.so" ]; then
|
||||
check $XLIB $i $cleanup
|
||||
elif [ "$i" = "libglx.so-xorg" ]; then
|
||||
check $XLIB $i $cleanup2
|
||||
elif [ "$i" = "libglx.so.$NV_VERSION" ]; then
|
||||
check $XLIB $i $xorg
|
||||
elif [ "$i" = "libglx.la$EXT" ]; then
|
||||
check $XLIB $i "exist"
|
||||
else
|
||||
check $XLIB $i
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
}
|
||||
|
||||
check_wfb(){
|
||||
for i in libnvidia-wfb.so.1 libnvidia-wfb.so.$NV_VERSION; do
|
||||
if [ "$i" = "libnvidia-wfb.so.1" ]; then
|
||||
check $XMOD $i "link"
|
||||
else
|
||||
check $XMOD $i
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_gl(){
|
||||
if [ "$1" = "nvidia" ]; then
|
||||
nvidia="link"
|
||||
EXT=""
|
||||
else
|
||||
nvidia="exist"
|
||||
EXT="-xorg"
|
||||
fi
|
||||
|
||||
for i in libGL.la libGL.so libGL.so.1 libGL.so.$NV_VERSION libGL.so.$NV_VERSION-nvidia \
|
||||
libGL.so.$GL_VERSION libGL.so.$GL_VERSION-xorg; do
|
||||
if [ "$i" = "libGL.so" ]; then
|
||||
check $LIB $i "link"
|
||||
elif [ "$i" = "libGL.so.1" ]; then
|
||||
check $LIB $i "link"
|
||||
elif [ "$i" = "libGL.so.$NV_VERSION" ]; then
|
||||
check $LIB $i $nvidia
|
||||
elif [ "$i" = "libGL.so.${GL_VERSION}${EXT}" ]; then
|
||||
check $LIB $i "exist"
|
||||
else
|
||||
check $LIB $i
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
}
|
||||
|
||||
nvidia_check(){
|
||||
check_includes
|
||||
|
||||
check_gl "nvidia"
|
||||
|
||||
check_glcore "nvidia"
|
||||
|
||||
check_glx
|
||||
|
||||
check_wfb
|
||||
}
|
||||
|
||||
xorg_check(){
|
||||
check_includes
|
||||
|
||||
check_gl
|
||||
|
||||
check_glcore
|
||||
|
||||
check_glx "xorg"
|
||||
|
||||
check_wfb
|
||||
}
|
||||
|
||||
cleanup_check(){
|
||||
check_includes "cleanup"
|
||||
|
||||
check_gl
|
||||
|
||||
check_glcore
|
||||
|
||||
check_glx "cleanup"
|
||||
|
||||
check_wfb
|
||||
}
|
||||
|
||||
nvidia(){
|
||||
echo $'Switching to nvidia-driver files!\n'
|
||||
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"
|
||||
lib_nvidia
|
||||
libgl_nvidia
|
||||
libglcore_nvidia
|
||||
libs "nvidia"
|
||||
libglx_nvidia
|
||||
|
||||
LD_NVIDIA="${LIB}/libGL.so.$NV_VERSION-nvidia"
|
||||
nvidia_ldconfig $LD_NVIDIA
|
||||
}
|
||||
|
||||
xorg(){
|
||||
echo $'Switching to stock xorg files.\n'
|
||||
if [ "$1" = "cleanup" ]; then
|
||||
echo $'Cleaning up symlinks.\n'
|
||||
fi
|
||||
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
|
||||
incs "xorg" "cleanup"
|
||||
else
|
||||
incs "xorg" "xorg"
|
||||
fi
|
||||
|
||||
libs_basic
|
||||
libgl_xorg
|
||||
libs ""
|
||||
if [ "$1" = "cleanup" ]; then
|
||||
libglx_xorg ""
|
||||
else
|
||||
libglx_xorg "xorg"
|
||||
fi
|
||||
|
||||
LD_NVIDIA="${LIB}/libGL.so.1.2"
|
||||
nvidia_ldconfig $LD_NVIDIA "xorg"
|
||||
}
|
||||
|
||||
usage(){
|
||||
echo "Usage:"
|
||||
echo " --nvidia Switch to nvidia driver files"
|
||||
echo " --xorg Switch to stock xorg files"
|
||||
echo " --cleanup Switch to stock xorg files and remove all created symlinks"
|
||||
echo " --install Switch to nvidia driver files"
|
||||
echo " This is used on installation to handle installroot correctly"
|
||||
echo " Please use --nvidia for after-install switches instead"
|
||||
echo " --check-nvidia Check if everything is setup correctly for nvidia's driver"
|
||||
echo " --check-xorg Check if everything is setup correctly for xorg's driver"
|
||||
echo " --check-cleanup Check if everything has been cleaned up correctly"
|
||||
echo " --help Show this help message"
|
||||
}
|
||||
|
||||
if [ "$1" = '--nvidia' ]; then
|
||||
nvidia
|
||||
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${LIBSUFFIX}"
|
||||
XMOD="${LIB}/xorg/modules"
|
||||
XLIB="$XMOD/extensions"
|
||||
nvidia
|
||||
elif [ "$1" = '--xorg' ]; then
|
||||
xorg ""
|
||||
elif [ "$1" = '--check-nvidia' ]; then
|
||||
nvidia_check
|
||||
elif [ "$1" = '--check-xorg' ]; then
|
||||
xorg_check
|
||||
elif [ "$1" = '--check-cleanup' ]; then
|
||||
cleanup_check
|
||||
elif [ "$1" = '--cleanup' ]; then
|
||||
xorg "cleanup"
|
||||
elif [ "$1" = '--help' ]; then
|
||||
usage
|
||||
else
|
||||
usage
|
||||
fi
|
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||
# up the first '|' above the ':' following the base package name, and the '|'
|
||||
# on the right side marks the last column you can put a character in. You must
|
||||
# make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':'.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
nvidia-legacy96-driver: nvidia-legacy96-driver (Binary Nvidia Video Driver)
|
||||
nvidia-legacy96-driver:
|
||||
nvidia-legacy96-driver: This is the proprietary binary video driver for legacy cards
|
||||
nvidia-legacy96-driver: (Geforce 4) from nvidia for the X.org X server. This package does
|
||||
nvidia-legacy96-driver: not include the kernel module - it is included in the
|
||||
nvidia-legacy96-driver: nvidia-legacy96-kernel package.
|
||||
nvidia-legacy96-driver:
|
||||
nvidia-legacy96-driver: See /usr/doc/nvidia-legacy96-driver-PKGVERSION/README.Slackware
|
||||
nvidia-legacy96-driver: for more information.
|
||||
nvidia-legacy96-driver:
|
||||
nvidia-legacy96-driver:
|
Loading…
Reference in New Issue