Gentoo initial tree
This commit is contained in:
commit
f5ccd68db6
44
etc/X11/xorg.conf.intel.snail
Normal file
44
etc/X11/xorg.conf.intel.snail
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
Section "Module"
|
||||||
|
Load "GLcore"
|
||||||
|
Load "dbe"
|
||||||
|
Load "dri"
|
||||||
|
Load "dri2"
|
||||||
|
Load "freetype"
|
||||||
|
Load "ddc"
|
||||||
|
Load "extmod"
|
||||||
|
Load "int10"
|
||||||
|
Load "vbe"
|
||||||
|
Load "dbe"
|
||||||
|
Load "glx"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Files"
|
||||||
|
FontPath "/usr/share/fonts/misc:unscaled"
|
||||||
|
FontPath "/usr/share/fonts/75dpi:unscaled"
|
||||||
|
FontPath "/usr/share/fonts/100dpi:unscaled"
|
||||||
|
FontPath "/usr/share/fonts/corefonts"
|
||||||
|
FontPath "/usr/share/fonts/freefonts"
|
||||||
|
FontPath "/usr/share/fonts/terminus"
|
||||||
|
FontPath "/usr/share/fonts/ttf-bitstream-vera"
|
||||||
|
FontPath "/usr/share/fonts/unifont"
|
||||||
|
FontPath "/usr/share/fonts/artwiz-latin1"
|
||||||
|
FontPath "/usr/share/fonts/cronyx"
|
||||||
|
FontPath "/usr/share/fonts/cyrillic"
|
||||||
|
FontPath "/usr/share/fonts/dejavu"
|
||||||
|
FontPath "/usr/share/fonts/droid"
|
||||||
|
FontPath "/usr/share/fonts/intlfonts"
|
||||||
|
FontPath "/usr/share/fonts/liberation-fonts"
|
||||||
|
FontPath "/usr/share/fonts/urw-fonts"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Device"
|
||||||
|
Identifier "Device0"
|
||||||
|
Driver "intel"
|
||||||
|
VendorName "onboard"
|
||||||
|
BusID "BusIDIntel"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Extensions"
|
||||||
|
Option "Composite" "Disable"
|
||||||
|
Option "RENDER" "Enable"
|
||||||
|
EndSection
|
63
etc/X11/xorg.conf.nvidia.snail
Normal file
63
etc/X11/xorg.conf.nvidia.snail
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
Section "ServerLayout"
|
||||||
|
Identifier "Layout0"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Module"
|
||||||
|
Disable "dri"
|
||||||
|
Disable "dri2"
|
||||||
|
Load "dbe"
|
||||||
|
Load "extmod"
|
||||||
|
Load "glx"
|
||||||
|
Load "record"
|
||||||
|
Load "freetype"
|
||||||
|
Load "type1"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Device"
|
||||||
|
Identifier "Device1"
|
||||||
|
Driver "nvidia"
|
||||||
|
VendorName "NVIDIA Corporation"
|
||||||
|
BusID "BusIDNvidia"
|
||||||
|
Option "IgnoreEDID" "False"
|
||||||
|
Option "UseEDID" "FALSE"
|
||||||
|
Option "NoDDC" "True"
|
||||||
|
Option "ConnectedMonitor" "CRT-0"
|
||||||
|
|
||||||
|
Option "AllowDDCCI" "True"
|
||||||
|
Option "AllowDFPStereo" "True"
|
||||||
|
Option "AllowGLXWithComposite" "False"
|
||||||
|
Option "NoBandWidthTest" "False"
|
||||||
|
Option "ConnectToAcpid" "True"
|
||||||
|
Option "ConstantDPI" "True"
|
||||||
|
# Option "Dac8Bit" "True"
|
||||||
|
Option "DisableGLXRootClipping" "True"
|
||||||
|
Option "DamageEvents" "True"
|
||||||
|
Option "ExactModeTimingsDVI" "True"
|
||||||
|
Option "NoFlip" "False"
|
||||||
|
Option "ForceStereoFlipping" "True"
|
||||||
|
Option "IncludeImplicitMetaModes" "True"
|
||||||
|
Option "NoLogo" "True"
|
||||||
|
Option "MultisampleCompatibility" "True"
|
||||||
|
Option "Overlay" "True"
|
||||||
|
Option "CIOverlay" "True"
|
||||||
|
Option "OverlayDefaultVisual" "True"
|
||||||
|
Option "RandRRotation" "True"
|
||||||
|
Option "NoRenderExtension" "False"
|
||||||
|
Option "RenderAccel" "True"
|
||||||
|
Option "AddARGBGLXVisuals" "True"
|
||||||
|
Option "CoolBits" "1"
|
||||||
|
# Battery settings:
|
||||||
|
Option "RegistryDwords" "PowerMizerLevel=0x3"
|
||||||
|
# auto perf depend on temp
|
||||||
|
Option "RegistryDwords" "PerfLevelSrc=0x3333"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "Extensions"
|
||||||
|
Option "Composite" "Disable"
|
||||||
|
Option "RENDER" "Enable"
|
||||||
|
EndSection
|
||||||
|
|
||||||
|
Section "ServerFlags"
|
||||||
|
Option "AllowEmptyInput" "yes"
|
||||||
|
EndSection
|
||||||
|
|
26
etc/init.d/snail
Executable file
26
etc/init.d/snail
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/sbin/runscript
|
||||||
|
|
||||||
|
DAEMON=/usr/bin/X
|
||||||
|
DAEMON_ARGS="-ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/local/lib/snail -nolisten tcp -noreset :1 vt9"
|
||||||
|
PIDFILE=/tmp/.X1-lock
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need xdm
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
ebegin "Starting bumblebee nVidia Optimus"
|
||||||
|
snail.nv_pwr_on || eend -1
|
||||||
|
! ps -p `cat $PIDFILE 2>&1` > /dev/null 2>&1 || eend -1
|
||||||
|
export LD_LIBRARY_PATH=/usr/lib/opengl/nvidia/lib:/usr/lib/opengl/nvidia/lib
|
||||||
|
start-stop-daemon --start --quiet --background --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
ebegin "Stopping bumblebee nVidia Optimus"
|
||||||
|
kill `cat $PIDFILE 2>&1` > /dev/null 2>&1 ; sleep 1 ; kill -9 `cat $PIDFILE 2>&1` > /dev/null 2>&1
|
||||||
|
snail.nv_pwr_off || eend -1
|
||||||
|
eend $result
|
||||||
|
}
|
||||||
|
|
3
etc/local.d/snail.start
Normal file
3
etc/local.d/snail.start
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# /etc/conf.d/local.start
|
||||||
|
|
||||||
|
snail.nv_pwr_off
|
45
snail-0.0.1.ebuild
Normal file
45
snail-0.0.1.ebuild
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
EAPI=4
|
||||||
|
inherit eutils
|
||||||
|
|
||||||
|
DESCRIPTION="Snail - nVidia Optimus support in a simple way"
|
||||||
|
|
||||||
|
SRC_URI="ftp://backbone.myftp.org/projects/snail/snail-0.0.1.tar.gz"
|
||||||
|
|
||||||
|
HOMEPAGE="http://backbone.myftp.org/projects/snail"
|
||||||
|
|
||||||
|
KEYWORDS="-* ~x86 ~amd64"
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
DEPEND="x11-drivers/nvidia-drivers"
|
||||||
|
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
echo "src_prepare=`pwd`" >>/tmp/snail.log
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
echo "src_configure=`pwd`" >>/tmp/snail.log
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
echo "src_compile=`pwd`" >>/tmp/snail.log
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
echo "src_install=`pwd`" >>/tmp/snail.log
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
echo "src_postinst=`pwd`" >>/tmp/snail.log
|
||||||
|
}
|
||||||
|
|
47
usr/local/bin/nvrun
Executable file
47
usr/local/bin/nvrun
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
LOCK_FILE=/tmp/.snail.nvrun.lock
|
||||||
|
|
||||||
|
(
|
||||||
|
flock -n 9
|
||||||
|
|
||||||
|
if [ 0 -ne $? ]; then
|
||||||
|
echo "Cann't lock $COUNT_FILE. Exiting..."
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
snail.nvstat || snail.nvon
|
||||||
|
|
||||||
|
if [ 0 -ne $? ]; then
|
||||||
|
echo "Cann't switch on nVidia graphics. Exiting..."
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
) 9>$LOCK_FILE || exit $?
|
||||||
|
|
||||||
|
snail.nvrun "$@"
|
||||||
|
|
||||||
|
(
|
||||||
|
flock -n 9
|
||||||
|
|
||||||
|
if [ 0 -ne $? ]; then
|
||||||
|
echo "Cann't lock $COUNT_FILE. Exiting..."
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pgrep snail.nvrun &>/dev/null
|
||||||
|
|
||||||
|
if [ 0 -eq $? ]; then
|
||||||
|
echo "Other applications still use nVidia chip. So we aren't switching off it, just exiting..."
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
snail.nvoff
|
||||||
|
[ 0 -ne $? ] && echo "Error: Cann't switch off nVidia graphics. Exiting..." && exit -1
|
||||||
|
echo "nVidia chip powered off."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
) 9>$LOCK_FILE
|
||||||
|
|
||||||
|
exit $?
|
||||||
|
|
95
usr/local/bin/snail.nv_pwr_off
Executable file
95
usr/local/bin/snail.nv_pwr_off
Executable file
@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
model=`sudo snail.dmidecode`
|
||||||
|
|
||||||
|
let retry=5
|
||||||
|
while [ $retry -ne 0 ]; do
|
||||||
|
|
||||||
|
case "$model" in
|
||||||
|
M11XR2)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.P0P2.PEGP.NVOP 0 0x100 0x1A {255,255,255,255}' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.P0P2.PEGP._PS3' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
1015PN)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\OSGS 0x03' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
1215N)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.P0P4.GFX0._DSM {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} 0x100 0x1A {0x1,0x0,0x0,0x3}' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.P0P4.GFX0._PS3' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
K42Jc|K52Jc|N53Jf|N53Jg|N71Jv|N73Jf|P52Jc|PL80Jt|U30Jc|U33Jc|U35Jc|U36Jc|UL80Jt)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG1.GFX0.DOFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
N61Jv|N73Sv)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEGR.GFX0.DOFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
P31Jg)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG1.GFX0._PS3' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
U43Jc)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.RP00.VGA._DSM {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} 0x100 0x1A {0x1,0x0,0x0,0x3}' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.RP00.VGA._PS3' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
UL30Vt)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.P0P1.VGA._OFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
E6420)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG0.VID._OFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
InspironN5110|XPSL702X)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG0.PEGP._DSM {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} 0x100 0x1A {0x1,0x0,0x0,0x3}' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.PEG0.PEGP._PS3' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
Vostro3300|Vostro3500)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.P0P1.PEGP._OFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
XPS15)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
ThinkPadT410)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG.VID._PS3' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.PEG.VID._OFF' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
ThinkPadT420)
|
||||||
|
modprobe -r nvidia \
|
||||||
|
&& echo '\_SB.PCI0.PEG.VID._DSM {0xF8,0xD8,0x86,0xA4,0xDA,0x0B,0x1B,0x47,0xA7,0x2B,0x60,0x42,0xA6,0xB5,0xBE,0xE0} 0x100 0x1A {0x1,0x0,0x0,0x3}' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.PEG.VID._PS3' > /proc/acpi/call \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
*) echo "Snail: unknown Notebook model: $model"; exit -1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
let retry--
|
||||||
|
sleep 1
|
||||||
|
echo "retry $retry"
|
||||||
|
done
|
||||||
|
|
||||||
|
exit -1
|
||||||
|
|
95
usr/local/bin/snail.nv_pwr_on
Executable file
95
usr/local/bin/snail.nv_pwr_on
Executable file
@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
model=`sudo snail.dmidecode`
|
||||||
|
|
||||||
|
let retry=5
|
||||||
|
while [ $retry -ne 0 ]; do
|
||||||
|
|
||||||
|
case "$model" in
|
||||||
|
M11XR2)
|
||||||
|
echo '\_SB.PCI0.P0P2.PEGP._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
1015PN)
|
||||||
|
echo '\_SB.PCI0.P0P4.DGPU.DON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
1215N)
|
||||||
|
echo '\_SB.PCI0.P0P4.GFX0._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
K42Jc|K52Jc|N53Jf|N53Jg|N71Jv|N73Jf|P52Jc|PL80Jt|U30Jc|U33Jc|U35Jc|U36Jc|UL80Jt)
|
||||||
|
echo '\_SB.PCI0.PEG1.GFX0.DON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
N53Sn|U41Sv|N53Sv)
|
||||||
|
echo '\_SB.PCI0.PEG0.GFX0.DON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
N61Jv|N73Sv)
|
||||||
|
echo '\_SB.PCI0.PEGR.GFX0.DON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
P31Jg)
|
||||||
|
echo '\_SB.PCI0.PEG1.GFX0._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
U43Jc)
|
||||||
|
echo '\_SB.PCI0.RP00.VGA._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
UL30Vt)
|
||||||
|
echo '\_SB.PCI0.P0P1.VGA._ON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
E6420)
|
||||||
|
echo '\_SB.PCI0.PEG0.VID._ON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
InspironN5110|XPSL702X)
|
||||||
|
echo '\_SB.PCI0.PEG0.PEGP._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
Vostro3300|Vostro3500)
|
||||||
|
echo '\_SB.PCI0.P0P1.PEGP._ON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
XPS15)
|
||||||
|
echo '\_SB.PCI0.PEG0.PEGP._ON' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
ThinkPadT410)
|
||||||
|
echo '\_SB.PCI0.PEG.VID._ON' > /proc/acpi/call \
|
||||||
|
&& echo '\_SB.PCI0.PEG.VID._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
ThinkPadT420)
|
||||||
|
echo '\_SB.PCI0.PEG.VID._PS0' > /proc/acpi/call \
|
||||||
|
&& modprobe nvidia \
|
||||||
|
&& exit 0
|
||||||
|
;;
|
||||||
|
*) echo "Snail: unknown Notebook model: $model"; exit -1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
let retry--
|
||||||
|
sleep 1
|
||||||
|
echo "retry $retry"
|
||||||
|
done
|
||||||
|
|
||||||
|
exit -1
|
||||||
|
|
4
usr/local/bin/snail.nvoff
Executable file
4
usr/local/bin/snail.nvoff
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo /etc/init.d/snail stop
|
||||||
|
|
4
usr/local/bin/snail.nvon
Executable file
4
usr/local/bin/snail.nvon
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sudo /etc/init.d/snail start
|
||||||
|
|
16
usr/local/bin/snail.nvrun
Executable file
16
usr/local/bin/snail.nvrun
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
snail.nvstat
|
||||||
|
|
||||||
|
if [ "$?" == 0 ]; then
|
||||||
|
echo "Running $@ on nVidia Optimus"
|
||||||
|
LD_PRELOAD="/usr/lib/opengl/nvidia/lib/libGL.so:\
|
||||||
|
/usr/lib/opengl/nvidia/lib/libnvidia-tls.so" snail.vglrun -d :1 "$@"
|
||||||
|
echo "Application $@ was performed on nVidia Optimus"
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Running $@ on Intel GPU"
|
||||||
|
"$@"
|
||||||
|
echo "Application $@ was performed on Intel GPU"
|
||||||
|
fi
|
||||||
|
|
11
usr/local/bin/snail.nvstat
Executable file
11
usr/local/bin/snail.nvstat
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
[ -f /tmp/.X1-lock ] && pgrep -s `cat /tmp/.X1-lock` &>/dev/null
|
||||||
|
|
||||||
|
let status=$?
|
||||||
|
|
||||||
|
[ 0 -eq $status ] && echo "nVidia graphics is ACTIVE" \
|
||||||
|
|| echo "nVidia graphics is NOT ACTIVE"
|
||||||
|
|
||||||
|
exit $status
|
||||||
|
|
300
usr/local/bin/snail.vglrun
Executable file
300
usr/local/bin/snail.vglrun
Executable file
@ -0,0 +1,300 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright (C)2004 Landmark Graphics Corporation
|
||||||
|
# Copyright (C)2005 Sun Microsystems, Inc.
|
||||||
|
# Copyright (C)2009-2011 D. R. Commander
|
||||||
|
#
|
||||||
|
# This library is free software and may be redistributed and/or modified under
|
||||||
|
# the terms of the wxWindows Library License, Version 3.1 or (at your option)
|
||||||
|
# any later version. The full license is in the LICENSE.txt file included
|
||||||
|
# with this distribution.
|
||||||
|
#
|
||||||
|
# This library 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
|
||||||
|
# wxWindows Library License for more details.
|
||||||
|
|
||||||
|
# The interpreter to use (if this script is submitted to N1 Grid Engine):
|
||||||
|
#$ -S /bin/sh
|
||||||
|
#
|
||||||
|
# This allocates a graphics device and passes it in the VGL_DISPLAY
|
||||||
|
# environment:
|
||||||
|
#$ -l gfx=1
|
||||||
|
#
|
||||||
|
# Specify other environment variables that N1GE should pass to this script:
|
||||||
|
#$ -v DISPLAY
|
||||||
|
#$ -v SSH_CLIENT
|
||||||
|
#$ -v VGL_CLIENT
|
||||||
|
#$ -v VGL_COMPRESS
|
||||||
|
#$ -v VGL_PORT
|
||||||
|
#$ -v VGL_SSL
|
||||||
|
#$ -v VGL_GLLIB
|
||||||
|
#$ -v VGL_X11LIB
|
||||||
|
#$ -v VGL_GAMMA
|
||||||
|
#$ -v VGL_PROGRESSIVE
|
||||||
|
#$ -v VGL_NPROCS
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo
|
||||||
|
echo "Usage: `basename $0` [options] [--] <OpenGL app> [OpenGL app arguments]"
|
||||||
|
echo
|
||||||
|
echo "VirtualGL options (see documentation for a more comprehensive list)"
|
||||||
|
echo
|
||||||
|
echo "-c <c> : proxy = Send 3D images uncompressed using X11 Transport"
|
||||||
|
echo " [default for local X connections]"
|
||||||
|
echo " jpeg = Compress 3D images using JPEG/send using VGL Transport"
|
||||||
|
echo " [default for remote X connections]"
|
||||||
|
echo " rgb = Encode 3D images as RGB/send using VGL Transport"
|
||||||
|
echo " xv = Encode 3D images as YUV420P/send using XV Transport"
|
||||||
|
echo " yuv = Encode 3D images as YUV420P/send using the VGL Transport"
|
||||||
|
echo " and display on the client using X Video"
|
||||||
|
echo " [If an image transport plugin is being used, then <c> can be any"
|
||||||
|
echo " number >= 0 (default=0).]"
|
||||||
|
echo
|
||||||
|
echo "-nodl : If an app uses dlopen() to explicitly access libGL.so, don't"
|
||||||
|
echo " force it to open VirtualGL instead (see docs)"
|
||||||
|
echo
|
||||||
|
echo "-d <d> : <d> = the X Display to use for 3D rendering [default = :0.0]"
|
||||||
|
echo
|
||||||
|
echo "-fps <f> : Limit client/server frame rate to <f> frames/sec"
|
||||||
|
echo
|
||||||
|
echo "-gamma <g>: Set gamma correction factor to <g> (see docs)"
|
||||||
|
echo
|
||||||
|
echo "-ge : Fool application into thinking that LD_PRELOAD is unset"
|
||||||
|
echo
|
||||||
|
echo "-ms <s> : Force VirtualGL to use OpenGL multisampling with <s>"
|
||||||
|
echo " samples (<s> = 0 forces multisampling to be disabled)"
|
||||||
|
echo
|
||||||
|
echo "-np <n> : Use <n> CPUs to perform image compression [default = 1]"
|
||||||
|
echo
|
||||||
|
echo "+/-pr : Enable/disable performance profiling output [default = disabled]"
|
||||||
|
echo
|
||||||
|
echo "-q <q> : Compression quality [1 <= <q> <= 100]"
|
||||||
|
echo " [default = 95 for JPEG/VGL Transport. Has no effect with"
|
||||||
|
echo " X11 Transport]"
|
||||||
|
echo
|
||||||
|
echo "-samp <s> : Chrominance subsampling factor"
|
||||||
|
echo " <s> = gray, 1x, 2x, 4x"
|
||||||
|
echo " [default = 1x for JPEG/VGL Transport. Has no effect with"
|
||||||
|
echo " X11 Transport or RGB encoding]"
|
||||||
|
echo
|
||||||
|
echo "+/-s : Enable/disable SSL encryption of VGL Transport or custom"
|
||||||
|
echo " image transport, if applicable."
|
||||||
|
echo " [default = disabled. Has no effect on the VGL Transport unless"
|
||||||
|
echo " VirtualGL was built with OpenSSL support]"
|
||||||
|
echo
|
||||||
|
echo "+/-sp : Turn on/off frame spoiling [default = enabled]"
|
||||||
|
echo
|
||||||
|
echo "-st <s> : left = Send only left eye buffer of stereo application"
|
||||||
|
echo " right = Send only right eye buffer of stereo application"
|
||||||
|
echo " quad = Use quad-buffered stereo if available, otherwise use"
|
||||||
|
echo " red/cyan (anaglyphic) stereo [default]"
|
||||||
|
echo " rc = Always use red/cyan (anaglyphic) stereo"
|
||||||
|
echo
|
||||||
|
echo "+/-sync : Enable/disable strict 2D/3D synchronization [default = disabled]"
|
||||||
|
echo
|
||||||
|
echo "+/-tr : Enable/disable function call tracing (generates a lot of output)"
|
||||||
|
echo " [default = disabled]"
|
||||||
|
echo
|
||||||
|
echo "-trans <t>: Use transport plugin contained in library libvgltrans_<t>.so"
|
||||||
|
echo
|
||||||
|
echo "+/-v : Enable/disable verbose VirtualGL messages [default = disabled]"
|
||||||
|
echo
|
||||||
|
echo "-64 : (Solaris only) Preload VirtualGL only into 64-bit apps"
|
||||||
|
echo "-32 : (Solaris only) Preload VirtualGL only into 32-bit apps"
|
||||||
|
echo
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
|
||||||
|
GEOPROBE_USEGLX=1
|
||||||
|
export GEOPROBE_USEGLX
|
||||||
|
PROMAGIC_USEGLX=1
|
||||||
|
export PROMAGIC_USEGLX
|
||||||
|
|
||||||
|
if [ "$OPENGL_DEVICE" != "" ]; then
|
||||||
|
echo "[VGL] NOTICE: The OPENGL_DEVICE environment variable is incompatible with"
|
||||||
|
echo "[VGL] VirtualGL. Temporarily unsetting this environment variable."
|
||||||
|
fi
|
||||||
|
unset OPENGL_DEVICE
|
||||||
|
export OPENGL_DEVICE
|
||||||
|
|
||||||
|
__VGL_DL=1
|
||||||
|
__VGL_GE=0
|
||||||
|
__VGL_64=0
|
||||||
|
__VGL_32=0
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
+sy*) VGL_SYNC=1 ; export VGL_SYNC ;;
|
||||||
|
-sy*) VGL_SYNC=0 ; export VGL_SYNC ;;
|
||||||
|
-st*) VGL_STEREO=$2 ; export VGL_STEREO ; shift ;;
|
||||||
|
+sp*) VGL_SPOIL=1 ; export VGL_SPOIL ;;
|
||||||
|
-sp*) VGL_SPOIL=0 ; export VGL_SPOIL ;;
|
||||||
|
-sa*) VGL_SUBSAMP=$2 ; export VGL_SUBSAMP ; shift ;;
|
||||||
|
-s*) VGL_SSL=0 ; export VGL_SSL ;;
|
||||||
|
+s*) VGL_SSL=1 ; export VGL_SSL ;;
|
||||||
|
-prog*) VGL_PROGRESSIVE=0 ; export VGL_PROGRESSIVE ;;
|
||||||
|
+prog*) VGL_PROGRESSIVE=1 ; export VGL_PROGRESSIVE ;;
|
||||||
|
-pr*) VGL_PROFILE=0 ; export VGL_PROFILE ;;
|
||||||
|
+pr*) VGL_PROFILE=1 ; export VGL_PROFILE ;;
|
||||||
|
-q*) VGL_QUAL=$2 ; export VGL_QUAL ; shift ;;
|
||||||
|
+de*) VGL_DEBUG=1 ; export VGL_DEBUG ;;
|
||||||
|
-de*) VGL_DEBUG=0 ; export VGL_DEBUG ;;
|
||||||
|
-nodl) __VGL_DL=0 ;;
|
||||||
|
-trans*) VGL_TRANSPORT=$2 ; export VGL_TRANSPORT; shift ;;
|
||||||
|
+tr*) VGL_TRACE=1 ; export VGL_TRACE ;;
|
||||||
|
-tr*) VGL_TRACE=0 ; export VGL_TRACE ;;
|
||||||
|
-d*) VGL_DISPLAY=$2 ; export VGL_DISPLAY ; shift ;;
|
||||||
|
-cl*) VGL_CLIENT=$2 ; export VGL_CLIENT ; shift ;;
|
||||||
|
-p*) VGL_PORT=$2 ; export VGL_PORT ; shift ;;
|
||||||
|
-c*) VGL_COMPRESS=$2 ; export VGL_COMPRESS ; shift ;;
|
||||||
|
-np*) VGL_NPROCS=$2 ; export VGL_NPROCS ; shift ;;
|
||||||
|
-gamma) VGL_GAMMA=$2 ; export VGL_GAMMA ; shift ;;
|
||||||
|
-ge) __VGL_GE=1 ;;
|
||||||
|
-g*) VGL_GAMMA=0 ; export VGL_GAMMA ;;
|
||||||
|
+g*) VGL_GAMMA=1 ; export VGL_GAMMA ;;
|
||||||
|
-v*) VGL_VERBOSE=0 ; export VGL_VERBOSE ;;
|
||||||
|
+v*) VGL_VERBOSE=1 ; export VGL_VERBOSE ;;
|
||||||
|
-fps) VGL_FPS=$2 ; export VGL_FPS ; shift ;;
|
||||||
|
-ms) VGL_SAMPLES=$2 ; export VGL_SAMPLES ; shift ;;
|
||||||
|
-ld) LD_LIBRARY_PATH=$2:$LD_LIBRARY_PATH ;
|
||||||
|
export LD_LIBRARY_PATH ; shift ;;
|
||||||
|
-64) __VGL_64=1; __VGL_32=0 ;;
|
||||||
|
-32) __VGL_32=1; __VGL_64=0 ;;
|
||||||
|
-h) usage 0 ;;
|
||||||
|
--help) usage 0 ;;
|
||||||
|
--) shift ; break ;;
|
||||||
|
-*) usage 1 ;;
|
||||||
|
*) break ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if [ $# -eq 0 ]
|
||||||
|
then
|
||||||
|
usage 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -r /etc/opt/VirtualGL/vgl_xauth_key ]; then
|
||||||
|
XAUTH=xauth
|
||||||
|
if [ -x /usr/X11R6/bin/xauth ]; then
|
||||||
|
XAUTH=/usr/X11R6/bin/xauth
|
||||||
|
fi
|
||||||
|
if [ -x /usr/openwin/bin/xauth ]; then
|
||||||
|
XAUTH=/usr/openwin/bin/xauth
|
||||||
|
fi
|
||||||
|
$XAUTH merge /etc/opt/VirtualGL/vgl_xauth_key
|
||||||
|
fi
|
||||||
|
|
||||||
|
SSH_IP=`echo $SSH_CLIENT | cut -d' ' -f1 | cut -d: -f4`
|
||||||
|
if [ -z "$DISPLAY" ]; then
|
||||||
|
if [ ! -z "$SSH_IP" ]; then
|
||||||
|
DISPLAY=$SSH_IP:0.0
|
||||||
|
export DISPLAY
|
||||||
|
echo "[VGL] NOTICE: Automatically setting the DISPLAY environment variable to"
|
||||||
|
echo "[VGL] $DISPLAY, based on the IP address of your SSh client."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
DISPLAYHOST=`echo $DISPLAY | cut -d: -f1`
|
||||||
|
if [ "$DISPLAYHOST" = "localhost" -o "$DISPLAYHOST" = "`hostname`" ]; then
|
||||||
|
if [ ! -z "$SSH_IP" -a -z "$VGL_CLIENT" -a -z "$RRCLIENT" ]; then
|
||||||
|
VGL_CLIENT=$SSH_IP:0.0
|
||||||
|
export VGL_CLIENT
|
||||||
|
echo "[VGL] NOTICE: Automatically setting VGL_CLIENT environment variable to"
|
||||||
|
echo "[VGL] $SSH_IP, the IP address of your SSh client."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
case `uname -s` in
|
||||||
|
|
||||||
|
SunOS)
|
||||||
|
|
||||||
|
if [ -z "$FAKERLIB" ]; then
|
||||||
|
FAKERLIB=librrfaker.so
|
||||||
|
if [ -f /opt/VirtualGL/lib/64/librrfaker.so ]
|
||||||
|
then
|
||||||
|
FAKERLIB=/opt/VirtualGL/lib/64/librrfaker.so
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export FAKERLIB
|
||||||
|
if [ -z "$FAKERLIB32" ]; then
|
||||||
|
FAKERLIB32=librrfaker.so
|
||||||
|
if [ -f /opt/VirtualGL/lib/librrfaker.so ]
|
||||||
|
then
|
||||||
|
FAKERLIB32=/opt/VirtualGL/lib/librrfaker.so
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export FAKERLIB32
|
||||||
|
if [ $__VGL_64 -eq 0 ]; then
|
||||||
|
if [ -z "$LD_PRELOAD_32" ]; then
|
||||||
|
LD_PRELOAD_32=$FAKERLIB32
|
||||||
|
else
|
||||||
|
LD_PRELOAD_32=$FAKERLIB32:$LD_PRELOAD_32
|
||||||
|
fi
|
||||||
|
if [ $__VGL_DL -eq 1 ]; then
|
||||||
|
if [ -f /opt/VirtualGL/lib/libdlfaker.so ]
|
||||||
|
then
|
||||||
|
LD_PRELOAD_32=/opt/VirtualGL/lib/libdlfaker.so:$LD_PRELOAD_32
|
||||||
|
else
|
||||||
|
LD_PRELOAD_32=libdlfaker.so:$LD_PRELOAD_32
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ $__VGL_GE -eq 1 ]; then
|
||||||
|
if [ -f /opt/VirtualGL/lib/libgefaker.so ]
|
||||||
|
then
|
||||||
|
LD_PRELOAD_32=/opt/VirtualGL/lib/libgefaker.so:$LD_PRELOAD_32
|
||||||
|
else
|
||||||
|
LD_PRELOAD_32=libgefaker.so:$LD_PRELOAD_32
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export LD_PRELOAD_32
|
||||||
|
fi
|
||||||
|
if [ $__VGL_32 -eq 0 ]; then
|
||||||
|
if [ -z "$LD_PRELOAD_64" ]; then
|
||||||
|
LD_PRELOAD_64=$FAKERLIB
|
||||||
|
else
|
||||||
|
LD_PRELOAD_64=$FAKERLIB:$LD_PRELOAD_64
|
||||||
|
fi
|
||||||
|
if [ $__VGL_DL -eq 1 ]; then
|
||||||
|
if [ -f /opt/VirtualGL/lib/64/libdlfaker.so ]
|
||||||
|
then
|
||||||
|
LD_PRELOAD_64=/opt/VirtualGL/lib/64/libdlfaker.so:$LD_PRELOAD_64
|
||||||
|
else
|
||||||
|
LD_PRELOAD_64=libdlfaker.so:$LD_PRELOAD_64
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ $__VGL_GE -eq 1 ]; then
|
||||||
|
if [ -f /opt/VirtualGL/lib/64/libgefaker.so ]
|
||||||
|
then
|
||||||
|
LD_PRELOAD_64=/opt/VirtualGL/lib/64/libgefaker.so:$LD_PRELOAD_64
|
||||||
|
else
|
||||||
|
LD_PRELOAD_64=libgefaker.so:$LD_PRELOAD_64
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export LD_PRELOAD_64
|
||||||
|
fi
|
||||||
|
exec ${1+"$@"}
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
|
||||||
|
if [ -z "$LD_PRELOAD" ]; then
|
||||||
|
LD_PRELOAD=librrfaker.so
|
||||||
|
else
|
||||||
|
LD_PRELOAD=librrfaker.so:$LD_PRELOAD
|
||||||
|
fi
|
||||||
|
if [ $__VGL_DL -eq 1 ]; then
|
||||||
|
LD_PRELOAD=libdlfaker.so:$LD_PRELOAD
|
||||||
|
fi
|
||||||
|
if [ $__VGL_GE -eq 1 ]; then
|
||||||
|
LD_PRELOAD=libgefaker.so:$LD_PRELOAD
|
||||||
|
fi
|
||||||
|
export LD_PRELOAD
|
||||||
|
exec ${1+"$@"}
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
BIN
usr/local/lib64/libdlfaker.so
Executable file
BIN
usr/local/lib64/libdlfaker.so
Executable file
Binary file not shown.
BIN
usr/local/lib64/libgefaker.so
Executable file
BIN
usr/local/lib64/libgefaker.so
Executable file
Binary file not shown.
BIN
usr/local/lib64/librrfaker.so
Executable file
BIN
usr/local/lib64/librrfaker.so
Executable file
Binary file not shown.
1
usr/local/lib64/snail/extensions
Symbolic link
1
usr/local/lib64/snail/extensions
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/usr/lib/opengl/nvidia/extensions
|
1
usr/local/lib64/snail/modules
Symbolic link
1
usr/local/lib64/snail/modules
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/usr/lib/xorg/modules
|
4
usr/local/sbin/snail.dmidecode
Executable file
4
usr/local/sbin/snail.dmidecode
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
dmidecode $@ -s system-product-name
|
||||||
|
|
27
usr/local/sbin/snail.install
Executable file
27
usr/local/sbin/snail.install
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PREFIX=/usr/local
|
||||||
|
|
||||||
|
# Tell the system to use xorg-x11 OpenGL libraries and nVidia GLX extensions
|
||||||
|
eselect opengl set xorg-x11
|
||||||
|
for arch in 32bit 64bit; do for chip in i915 i965 r300 r600 sw; do sudo eselect mesa set $arch $chip classic &>/dev/null; done; done
|
||||||
|
|
||||||
|
# Create backups of original xorg.conf.* files and replacing with snail's versions
|
||||||
|
[[ -f /etc/X11/xorg.conf && ! -f /etc/X11/xorg.conf.snail-bkp ]] && mv /etc/X11/xorg.conf /etc/X11/xorg.conf.snail-bkp
|
||||||
|
[[ -f /etc/X11/xorg.conf.intel && ! -f /etc/X11/xorg.conf.intel.snail-bkp ]] && mv /etc/X11/xorg.conf.intel /etc/X11/xorg.conf.intel.snail-bkp
|
||||||
|
[[ -f /etc/X11/xorg.conf.nvidia && ! -f /etc/X11/xorg.conf.nvidia.snail-bkp ]] && mv /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf.nvidia.snail-bkp
|
||||||
|
cp -f /etc/X11/xorg.conf.intel.snail /etc/X11/xorg.conf.intel
|
||||||
|
cp -f /etc/X11/xorg.conf.nvidia.snail /etc/X11/xorg.conf.nvidia
|
||||||
|
ln -sf xorg.conf.intel /etc/X11/xorg.conf
|
||||||
|
|
||||||
|
# Recognize BusID of both chips and set it in xorg.conf.* files
|
||||||
|
BusIDIntel="PCI:`lspci | grep VGA | grep Intel | cut -d" " -f1 | sed 's~\.~\:~g ; s~0\([0-9]\)~\1~g'`"
|
||||||
|
BusIDNvidia="PCI:`lspci | grep VGA | grep nVidia | cut -d" " -f1 | sed 's~\.~\:~g ; s~0\([0-9]\)~\1~g'`"
|
||||||
|
sed -i "s~BusIDIntel~$BusIDIntel~" /etc/X11/xorg.conf.intel
|
||||||
|
sed -i "s~BusIDNvidia~$BusIDNvidia~" /etc/X11/xorg.conf.nvidia
|
||||||
|
|
||||||
|
# Allow in sudo for %video group to start/stop second X-server with nVidia card and run snail.dmidecode
|
||||||
|
sed -i '/snail/d' /etc/sudoers
|
||||||
|
sudoers_lines=`wc -l /etc/sudoers | cut -d" " -f1`
|
||||||
|
sed -i "${sudoers_lines}a#snail:\n#snail: Allow %video group to start/stop second X-server with nVidia card\n#snail:\n%video ALL= NOPASSWD: /etc/init.d/snail start\n%video ALL= NOPASSWD: /etc/init.d/snail stop\n%video ALL= NOPASSWD: /usr/local/sbin/snail.dmidecode" /etc/sudoers
|
||||||
|
|
18
usr/local/sbin/snail.uninstall
Executable file
18
usr/local/sbin/snail.uninstall
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Tell the system to use both xorg-x11 OpenGL and GLX libraries
|
||||||
|
eselect opengl set xorg-x11
|
||||||
|
|
||||||
|
# Restore xorg.conf.* files from backups
|
||||||
|
[ -f /etc/X11/xorg.conf.snail-bkp ] && rm -f /etc/X11/xorg.conf && mv /etc/X11/xorg.conf.snail-bkp /etc/X11/xorg.conf
|
||||||
|
[ -f /etc/X11/xorg.conf.intel.snail-bkp ] && rm -f /etc/X11/xorg.conf.intel && mv /etc/X11/xorg.conf.intel.snail-bkp /etc/X11/xorg.conf.intel
|
||||||
|
[ -f /etc/X11/xorg.conf.nvidia.snail-bkp ] && rm -f /etc/X11/xorg.conf.nvidia && mv /etc/X11/xorg.conf.nvidia.snail-bkp /etc/X11/xorg.conf.nvidia
|
||||||
|
|
||||||
|
# Remove backup files
|
||||||
|
for f in "" .intel .nvidia ; do
|
||||||
|
rm -f /etc/X11/xorg.conf${f}.snail-bkp
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove records in sudoers
|
||||||
|
sed -i '/snail/d' /etc/sudoers
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user