forked from MrMEEE/bumblebee-Old-and-abbandoned
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bumblebee-check.opensuse
executable file
·175 lines (164 loc) · 6.05 KB
/
bumblebee-check.opensuse
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#!/bin/bash
#
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <mj@casalogic.dk> wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return Martin Juhl
# ----------------------------------------------------------------------------
#
# This file is part of bumblebee.
#
# bumblebee 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.
#
# bumblebee 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 bumblebee. If not, see <http://www.gnu.org/licenses/>.
#
ROOT_UID=0
if [ `cat /etc/issue | grep -nir fedora | wc -l` -gt 0 ] ; then
DISTRO=FEDORA
elif [ `cat /etc/issue | grep -nir ubuntu | wc -l` -gt 0 ] || \
[ `cat /etc/issue | grep -nir "Linux Mint" | wc -l` -gt 0 ] || \
[ `cat /etc/issue | grep -nir "Backtrack 5" | wc -l` -gt 0 ] ; then
DISTRO=UBUNTU
elif [ `cat /etc/issue | grep -nir opensuse | wc -l` -gt 0 ] ; then
DISTRO=OPENSUSE
if [ "$SUDO_USER" != "" ] ; then
HOME=`cat /etc/passwd | grep $SUDO_USER | cut -f6 -d':'`
fi
else
echo "Cannot handle this distribution."
fi
if [ "$UID" != "$ROOT_UID" ] ; then
echo "You don't have sufficient privileges to run this script."
echo
echo "Please run the script as root or with: sudo bumblebee-check <-restore>"
exit 1
fi
if [ "$DISTRO" != OPENSUSE ] ; then
echo "This script is ONLY for openSuSE."
echo
echo "It will probably kill the NVidia setup"
echo "on other systems."
echo
echo "You have been warned !!!"
exit 1
fi
#Determine Arch x86_64 or i686
ARCH=`uname -m`
#
# Check for repository
#
FOUND=`rpm -qa|grep x11-video-nvidia`
if [ "$FOUND" == "" ] ; then
if [ -d /usr/X11R6/lib-nvidia ] ; then
echo "Somebody uninstalled the packages from the nVidia repository."
echo "Trying to cleanup the system."
if [ "$ARCH" == "i686" ] ; then
rm -rf /usr/X11R6/lib-nvidia
rm -rf /usr/lib/xorg-nvidia
else
rm -rf /usr/X11R6/lib-nvidia
rm -rf /usr/X11R6/lib64-nvidia
rm -rf /usr/lib64/xorg-nvidia
fi
else
echo "You are not using the nVidia repository for openSUSE."
echo "Sorry, cannot help you."
fi
exit 1
fi
if [ "$1" == "-restore" ] ; then
#
# Try to restore
#
if [ "$ARCH" == "i686" ] ; then
#
# Restore conflicting NVidia libraries
#
if [ `ls /usr/X11R6/lib-nvidia/libGL.* 2> /dev/null | wc -l` -gt 0 ] ; then
mkdir -p /usr/X11R6/lib
mv -f /usr/X11R6/lib-nvidia/libGL.* /usr/X11R6/lib/
mv -f /usr/X11R6/lib-nvidia/libXvMCNVIDIA* /usr/X11R6/lib/
rm -rf /usr/X11R6/lib-nvidia
fi
if [ -f /usr/lib/xorg-nvidia/modules/updates/drivers/nvidia_drv.so ] ; then
mv -f /usr/lib/xorg-nvidia/modules/updates/drivers/nvidia_drv.so /usr/lib/xorg/modules/updates/drivers/
mv -f /usr/lib/xorg-nvidia/modules/updates/extensions/libglx.* /usr/lib/xorg/modules/updates/extensions/
rm -rf /usr/lib/xorg-nvidia
fi
else
if [ `ls /usr/X11R6/lib-nvidia/libGL.* 2> /dev/null | wc -l` -gt 0 ] ; then
mkdir -p /usr/X11R6/lib
mv -f /usr/X11R6/lib-nvidia/libGL.* /usr/X11R6/lib/
rm -rf /usr/X11R6/lib-nvidia
fi
if [ `ls /usr/X11R6/lib64-nvidia/libGL.* 2> /dev/null | wc -l` -gt 0 ] ; then
mkdir -p /usr/X11R6/lib64
mv -f /usr/X11R6/lib64-nvidia/libGL.* /usr/X11R6/lib64/
mv -f /usr/X11R6/lib64-nvidia/libXvMCNVIDIA* /usr/X11R6/lib64/
rm -rf /usr/X11R6/lib64-nvidia
fi
if [ -f /usr/lib64/xorg-nvidia/modules/updates/drivers/nvidia_drv.so ] ; then
mv -f /usr/lib64/xorg-nvidia/modules/updates/drivers/nvidia_drv.so /usr/lib64/xorg/modules/updates/drivers/
mv -f /usr/lib64/xorg-nvidia/modules/updates/extensions/libglx.* /usr/lib64/xorg/modules/updates/extensions/
rm -rf /usr/lib64/xorg-nvidia
fi
fi
else
if [ "$ARCH" == "i686" ] ; then
if [ `ls /usr/X11R6/lib/libGL.* 2> /dev/null | wc -l` -gt 0 ] ; then
#
# Move conflicting NVidia libraries to a safer place.
#
rm -rf /usr/X11R6/lib-nvidia
mkdir -p /usr/X11R6/lib-nvidia
mv -f /usr/X11R6/lib/libGL.* /usr/X11R6/lib-nvidia/
mv -f /usr/X11R6/lib/libXvMCNVIDIA* /usr/X11R6/lib-nvidia/
fi
if [ -f /usr/lib/xorg/modules/updates/drivers/nvidia_drv.so ] ; then
#
# Move NVidia xorg modules to a safer place
#
rm -rf /usr/lib/xorg-nvidia
cp -a /usr/lib/xorg /usr/lib/xorg-nvidia
rm -f /usr/lib/xorg/modules/updates/drivers/nvidia_drv.so
rm -f /usr/lib/xorg/modules/updates/extensions/libglx.*
fi
else
if [ `ls /usr/X11R6/lib/libGL.* 2> /dev/null | wc -l` -gt 0 ] ; then
#
# Move conflicting i686 NVidia libraries to a safer place.
#
rm -rf /usr/X11R6/lib-nvidia
mkdir -p /usr/X11R6/lib-nvidia
mv -f /usr/X11R6/lib/libGL.* /usr/X11R6/lib-nvidia/
fi
if [ `ls /usr/X11R6/lib64/libGL.* 2> /dev/null | wc -l` -gt 0 ] ; then
#
# Move conflicting x86_64 NVidia libraries to a safer place.
#
rm -rf /usr/X11R6/lib64-nvidia
mkdir -p /usr/X11R6/lib64-nvidia
mv -f /usr/X11R6/lib64/libGL.* /usr/X11R6/lib64-nvidia/
mv -f /usr/X11R6/lib64/libXvMCNVIDIA* /usr/X11R6/lib64-nvidia/
fi
if [ -f /usr/lib64/xorg/modules/updates/drivers/nvidia_drv.so ] ; then
#
# Move NVidia xorg modules to a safer place
#
rm -rf /usr/lib64/xorg-nvidia
cp -a /usr/lib64/xorg /usr/lib64/xorg-nvidia
rm -f /usr/lib64/xorg/modules/updates/drivers/nvidia_drv.so
rm -f /usr/lib64/xorg/modules/updates/extensions/libglx.*
fi
fi
fi