diff options
Diffstat (limited to 'system/nvidia-legacy71-driver/nvidia-switch')
-rw-r--r-- | system/nvidia-legacy71-driver/nvidia-switch | 334 |
1 files changed, 0 insertions, 334 deletions
diff --git a/system/nvidia-legacy71-driver/nvidia-switch b/system/nvidia-legacy71-driver/nvidia-switch deleted file mode 100644 index 647c6ef2a9..0000000000 --- a/system/nvidia-legacy71-driver/nvidia-switch +++ /dev/null @@ -1,334 +0,0 @@ -#!/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.0 -# -# A tool to switch between nvidia-binary-driver and stock xorg-driver -# if both are installed in parallel. - -set -e - -ROOT="/" -CWD=$(pwd) -INC="${ROOT}usr/include/GL" -LIB="${ROOT}usr/lib" -XMOD="${ROOT}usr/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 libGLcore.so libGLcore.la 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 -} - -libwfb_nvidia(){ -#Recreate the link removed by --xorg -if ! [ -e "$XMOD/libwfb.so" ]; then - cd $XMOD - ln -s libnvidia-wfb.so.1 libwfb.so - cd $CWD -fi -} - -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 -} - -nvidia(){ - echo $'Switching to nvidia-driver files!\n' - echo "You have to ENABLE the nvidia driver 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 - libwfb_nvidia - - LD_NVIDIA="/usr/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 "You have to DISABLE the nvidia driver 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 - remove_link "$XMOD/libwfb.so" - - LD_NVIDIA="/usr/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 " --help Show this help message" -} - -if [ "$1" = '--nvidia' ]; then - nvidia -elif [ "$1" = '--install' ]; then - ROOT="" - CWD=$(pwd) - INC="${ROOT}usr/include/GL" - LIB="${ROOT}usr/lib" - XMOD="${ROOT}usr/lib/xorg/modules" - XLIB="$XMOD/extensions" - nvidia -elif [ "$1" = '--xorg' ]; then - xorg "" -elif [ "$1" = '--cleanup' ]; then - xorg "cleanup" -elif [ "$1" = '--help' ]; then - usage -else - usage -fi |