Compare commits
98 Commits
Author | SHA1 | Date |
---|---|---|
Kolan Sh | 87b1bc751a | |
Kolan Sh | 906db09e41 | |
Kolan Sh | 115c5151f1 | |
Kolan Sh | 1e312098ae | |
Kolan Sh | 3dcdfa10ec | |
Kolan Sh | b367e25435 | |
Kolan Sh | 24badcb2fb | |
Kolan Sh | 74f4dacc9a | |
Kolan Sh | 8ebb0c6f90 | |
Kolan Sh | 82b80f6038 | |
Kolan Sh | 13acbebb29 | |
Kolan Sh | 1e5cf1fa07 | |
Kolan Sh | 54c0ab5125 | |
Kolan Sh | ff414cebfd | |
Kolan Sh | 9b3e0113ca | |
Kolan Sh | b0a367d8cd | |
Kolan Sh | b82852047e | |
Kolan Sh | 7347ff2e9a | |
Kolan Sh | eb8b54f5ac | |
Kolan Sh | 25cc887c25 | |
Kolan Sh | 4d6bf1b256 | |
Kolan Sh | 5b59f169e3 | |
Kolan Sh | 80028b2005 | |
Kolan Sh | 4a2acbbf06 | |
Kolan Sh | 3e4ea058b8 | |
Kolan Sh | a15b1d2117 | |
Kolan Sh | a374be74ce | |
Kolan Sh | 59b4525a81 | |
Kolan Sh | 75eb8f9fdb | |
Kolan Sh | f29f8fa32a | |
Kolan Sh | e2a6252c76 | |
Kolan Sh | 695ecc7306 | |
Kolan Sh | 93d452832e | |
Kolan Sh | 8e077bbba3 | |
Kolan Sh | 84be3fa6e3 | |
Kolan Sh | d7fce6d10f | |
Kolan Sh | d100e88e36 | |
Kolan Sh | b9586b1870 | |
Kolan Sh | 39ea202df2 | |
Kolan Sh | 969eb80026 | |
Kolan Sh | 16bb1e08e4 | |
kolan | 70c774de20 | |
kolan | 9e2d683478 | |
Kolan Sh | b040c57d84 | |
Kolan Sh | c84542b1cf | |
Kolan Sh | f8a5cb7ecb | |
Kolan Sh | 905823610d | |
Kolan Sh | 2afa920ce7 | |
Kolan Sh | 30981196a3 | |
Kolan Sh | 29e2e510c2 | |
Kolan Sh | 5cb8cce033 | |
Kolan Sh | 2c348e50fe | |
Kolan Sh | 81b9877b2e | |
Kolan Sh | 4aef233f2b | |
kolan | c37ed3c8e0 | |
Kolan Sh | 47ea4e747a | |
kolan | 1431123410 | |
kolan | 8e7f3f3332 | |
Kolan Sh | 6a6558d99d | |
Kolan Sh | 2b98295e12 | |
Kolan Sh | 21cddd9d2b | |
Kolan Sh | deae038661 | |
Kolan Sh | f6bb5d475b | |
Kolan Sh | 1c3cd44d3f | |
Kolan Sh | 798409ddbc | |
Kolan Sh | f5f24b84f0 | |
Kolan Sh | d0d596453f | |
Kolan Sh | 53c6096e12 | |
Kolan Sh | 5ab8dd3fea | |
Kolan Sh | 0824959805 | |
Kolan Sh | 852c8ea99d | |
Kolan Sh | ae952acf61 | |
Kolan Sh | 177e816d19 | |
Kolan Sh | bdc0353397 | |
Kolan Sh | 812288e0b8 | |
Kolan Sh | 991b106393 | |
Kolan | dedfdb5bd0 | |
Kolan | 612f5e31b0 | |
Kolan | 092418a5c6 | |
Kolan Sh | 3138697a21 | |
Kolan Sh | a0f7459f18 | |
kolan | d6444f186c | |
Kolan Sh | 413abffbaf | |
Kolan Sh | abbca96337 | |
Kolan Sh | 43dc115c52 | |
Kolan Sh | 1c198679d2 | |
Kolan Sh | e3ff58991a | |
Kolan Sh | 0c71d68fed | |
Kolan Sh | de265dda5e | |
Kolan Sh | d0a2bfe4fe | |
Kolan Sh | 3e69113a6e | |
Kolan Sh | f558f4c808 | |
Kolan Sh | 95424ec4b0 | |
Kolan Sh | 4c49d9d40a | |
Kolan Sh | 6651c663bb | |
Kolan Sh | 137559106b | |
Kolan Sh | 7e67c7f4cf | |
Kolan Sh | f836d22d61 |
48
Makefile
48
Makefile
|
@ -10,17 +10,51 @@ install:
|
||||||
install bin/* ${DESTDIR}/${PREFIX}/bin
|
install bin/* ${DESTDIR}/${PREFIX}/bin
|
||||||
install -d ${DESTDIR}/${PREFIX}/sbin
|
install -d ${DESTDIR}/${PREFIX}/sbin
|
||||||
install sbin/* ${DESTDIR}/${PREFIX}/sbin
|
install sbin/* ${DESTDIR}/${PREFIX}/sbin
|
||||||
install -d ${DESTDIR}/${PREFIX}/lib64
|
if test x86_64 = `uname -m` ; then \
|
||||||
install lib64/*.so ${DESTDIR}/${PREFIX}/lib64
|
if test -d /usr/lib32 ; then \
|
||||||
install -d ${DESTDIR}/${PREFIX}/lib64/snail
|
install -d ${DESTDIR}/${PREFIX}/lib32; \
|
||||||
install -d ${DESTDIR}/${PREFIX}/share
|
install lib32/*.so ${DESTDIR}/${PREFIX}/lib32; \
|
||||||
install -d ${DESTDIR}/${PREFIX}/share/snail
|
else \
|
||||||
install -d ${DESTDIR}/${PREFIX}/share/snail/init.d
|
install -d ${DESTDIR}/${PREFIX}/lib; \
|
||||||
install share/init.d/* ${DESTDIR}/${PREFIX}/share/snail/init.d
|
install lib32/*.so ${DESTDIR}/${PREFIX}/lib; \
|
||||||
|
fi; \
|
||||||
|
if test -d /usr/lib64 ; then \
|
||||||
|
install -d ${DESTDIR}/${PREFIX}/lib64; \
|
||||||
|
install lib64/*.so ${DESTDIR}/${PREFIX}/lib64; \
|
||||||
|
else \
|
||||||
|
install -d ${DESTDIR}/${PREFIX}/lib; \
|
||||||
|
install lib64/*.so ${DESTDIR}/${PREFIX}/lib; \
|
||||||
|
fi; \
|
||||||
|
if test ! -d /usr/lib ; then \
|
||||||
|
ln -sf lib64 /usr/lib; \
|
||||||
|
fi; \
|
||||||
|
install -d ${DESTDIR}/${PREFIX}/lib/snail/lib32; \
|
||||||
|
else \
|
||||||
|
install -d ${DESTDIR}/${PREFIX}/lib; \
|
||||||
|
install lib32/*.so ${DESTDIR}/${PREFIX}/lib; \
|
||||||
|
install -d ${DESTDIR}/${PREFIX}/lib/snail; \
|
||||||
|
fi; \
|
||||||
|
install -d ${DESTDIR}/${PREFIX}/share/snail/init.d; \
|
||||||
|
install share/init.d/* ${DESTDIR}/${PREFIX}/share/snail/init.d ; \
|
||||||
|
if test -d /lib/modules/`uname -r` ; then \
|
||||||
|
mkdir -p ${DESTDIR}/lib/modules/`uname -r`/video \
|
||||||
|
touch ${DESTDIR}/lib/modules/`uname -r`/video/snail_autorebuild ; \
|
||||||
|
elif test -d /lib64/modules/`uname -r` ; then \
|
||||||
|
mkdir -p ${DESTDIR}/lib64/modules/`uname -r`/video \
|
||||||
|
touch ${DESTDIR}/lib64/modules/`uname -r`/video/snail_autorebuild ; \
|
||||||
|
fi
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f ${DESTDIR}/etc/X11/xorg.conf.*.snail
|
rm -f ${DESTDIR}/etc/X11/xorg.conf.*.snail
|
||||||
rm -f ${DESTDIR}/etc/init.d/snail*
|
rm -f ${DESTDIR}/etc/init.d/snail*
|
||||||
|
rm -f ${DESTDIR}/etc/systemd/system/snail*
|
||||||
|
rm -f ${DESTDIR}/${PREFIX}/lib/libdlfaker.so
|
||||||
|
rm -f ${DESTDIR}/${PREFIX}/lib/libgefaker.so
|
||||||
|
rm -f ${DESTDIR}/${PREFIX}/lib/librrfaker.so
|
||||||
|
rm -rf ${DESTDIR}/${PREFIX}/lib/snail
|
||||||
|
rm -f ${DESTDIR}/${PREFIX}/lib32/libdlfaker.so
|
||||||
|
rm -f ${DESTDIR}/${PREFIX}/lib32/libgefaker.so
|
||||||
|
rm -f ${DESTDIR}/${PREFIX}/lib32/librrfaker.so
|
||||||
rm -f ${DESTDIR}/${PREFIX}/lib64/libdlfaker.so
|
rm -f ${DESTDIR}/${PREFIX}/lib64/libdlfaker.so
|
||||||
rm -f ${DESTDIR}/${PREFIX}/lib64/libgefaker.so
|
rm -f ${DESTDIR}/${PREFIX}/lib64/libgefaker.so
|
||||||
rm -f ${DESTDIR}/${PREFIX}/lib64/librrfaker.so
|
rm -f ${DESTDIR}/${PREFIX}/lib64/librrfaker.so
|
||||||
|
|
7
README
7
README
|
@ -5,6 +5,7 @@ Features
|
||||||
Auto power off for second X-server and nVidia chip.
|
Auto power off for second X-server and nVidia chip.
|
||||||
Easy installation (look at Wiki).
|
Easy installation (look at Wiki).
|
||||||
Multiuser access.
|
Multiuser access.
|
||||||
|
Multilib support.
|
||||||
Run in a way nvrun app.
|
Run in a way nvrun app.
|
||||||
|
|
||||||
Tested distros
|
Tested distros
|
||||||
|
@ -12,7 +13,11 @@ Tested distros
|
||||||
Gentoo amd64
|
Gentoo amd64
|
||||||
Debian Squeeze amd64
|
Debian Squeeze amd64
|
||||||
Debian Wheezy amd64
|
Debian Wheezy amd64
|
||||||
|
Fedora 16 (Verne) x86_64
|
||||||
|
Ubuntu 12.04 x86_64
|
||||||
|
|
||||||
Supported Models: M11XR2, 1015PN, 1215N, K42Jc, K52Jc, N53Jf, N53Jg, N71Jv, N73Jf, P52Jc, PL80Jt, U30Jc, U33Jc, U35Jc, U36Jc, UL80Jt, N53Sn, U41Sv, N53Sv, N61Jv, N73Sv, P31Jg, U43Jc, UL30Vt, E6420, InspironN5110, XPSL702X, Vostro3300, Vostro3500, XPS15, ThinkPadT410, ThinkPadT420.
|
Supported Models: All that supported by bbswitch, vgaswitcheroo (most of laptops with recent Linux kernel) + several by acpi_call (M11XR2, 1015PN, 1215N,
|
||||||
|
K42Jc, K52Jc, N53Jf, N53Jg, N71Jv, N73Jf, P52Jc, PL80Jt, U30Jc, U33Jc, U35Jc, U36Jc, UL80Jt, N53Sn, U41Sv, N53Sv, N61Jv, N73Sv, P31Jg, U43Jc, UL30Vt, E6420,
|
||||||
|
InspironN5110, XPSL702X, Vostro3300, Vostro3500, XPS15, ThinkPadT410, ThinkPadT420).
|
||||||
|
|
||||||
Video on YouTube: http://www.youtube.com/watch?v=c6RH69j-gMY&feature=plcp&context=C3f5cbeeUDOEgsToPDskLOX8DnELkwYsi2QZ7_phwJ
|
Video on YouTube: http://www.youtube.com/watch?v=c6RH69j-gMY&feature=plcp&context=C3f5cbeeUDOEgsToPDskLOX8DnELkwYsi2QZ7_phwJ
|
||||||
|
|
32
bin/nvrun
32
bin/nvrun
|
@ -2,26 +2,34 @@
|
||||||
|
|
||||||
PATH=/usr/local/sbin:/usr/local/bin:$PATH
|
PATH=/usr/local/sbin:/usr/local/bin:$PATH
|
||||||
|
|
||||||
TIMEOUT=10 # wait timeout for X server start
|
TIMEOUT=8 # wait timeout for X server start
|
||||||
let INTEL_IF_FAIL=1 # run on Intel if nVidia fails
|
|
||||||
|
|
||||||
LOCK_FILE=/tmp/.snail.lock
|
LOCK_FILE=/tmp/.snail.lock
|
||||||
FIFO_FILE=/tmp/.snail.fifo
|
FIFO_FILE=/tmp/.snail.fifo
|
||||||
|
|
||||||
|
[ ! -f $LOCK_FILE ] && echo "Snail daemon is not running. Please start it." && exit -1
|
||||||
|
|
||||||
{
|
{
|
||||||
echo -n > $FIFO_FILE &
|
flock -w 1 -s 9
|
||||||
flock -w $TIMEOUT -s 9
|
if [ 0 -ne $? ]; then
|
||||||
|
(nohup echo -n > $FIFO_FILE &>/dev/null)&
|
||||||
|
flock -w $TIMEOUT -s 9
|
||||||
|
fi
|
||||||
|
|
||||||
if [ 0 -eq $? ]; then
|
if [ 0 -eq $? ]; then
|
||||||
echo "Running $@ on nVidia"
|
echo "Trying to run $@ on nVidia"
|
||||||
export LD_LIBRARY_PATH=/usr/lib/snail
|
export LD_LIBRARY_PATH=/usr/lib/snail
|
||||||
snail.vglrun -d :1 "$@"
|
LD_PRELOAD="/usr/lib/snail/lib32/libGL.so.1 \
|
||||||
echo "Application $@ was performed on nVidia"
|
/usr/lib/snail/lib32/libnvidia-tls.so \
|
||||||
|
/usr/lib/snail/lib32/libnvidia-glcore.so" \
|
||||||
|
snail.vglrun -d :8293 "$@" 2>/dev/null \
|
||||||
|
&& echo "Application $@ was performed on nVidia ;-)" && exit 0
|
||||||
|
|
||||||
elif [ 0 -ne $INTEL_IF_FAIL ]; then
|
echo "nvrun $@ returns an error. Here is nVidia X-server error log:"
|
||||||
echo "Running $@ on Intel"
|
grep '] (EE) ' /var/log/Xorg.8293.log
|
||||||
"$@"
|
|
||||||
echo "Application $@ was performed on Intel"
|
else
|
||||||
|
echo "Timout received for 'power on' request to Snail-daemon ;-("
|
||||||
fi
|
fi
|
||||||
|
|
||||||
flock -u 9
|
flock -u 9
|
||||||
|
|
|
@ -1,22 +1,3 @@
|
||||||
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"
|
Section "Device"
|
||||||
Identifier "Device0"
|
Identifier "Device0"
|
||||||
Driver "intel"
|
Driver "intel"
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,34 +0,0 @@
|
||||||
# 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"
|
|
||||||
|
|
||||||
SRC_URI="ftp://backbone.ws/projects/snail/${P}.tar.bz2"
|
|
||||||
|
|
||||||
HOMEPAGE="https://chili.backbone.ws/projects/snail"
|
|
||||||
|
|
||||||
KEYWORDS="-* ~x86 ~amd64"
|
|
||||||
|
|
||||||
SLOT="0"
|
|
||||||
|
|
||||||
LICENSE="GPL-3"
|
|
||||||
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
DEPEND="x11-drivers/nvidia-drivers
|
|
||||||
sys-apps/dmidecode"
|
|
||||||
|
|
||||||
RDEPEND="${DEPEND}"
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
emake install DESTDIR="${D}" || die
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
snail.configure
|
|
||||||
}
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
DIST snail-1.2.6.tar.bz2 628927 RMD160 64a1c556fc72729ea19e25355769b528187d9542 SHA1 d7381c4c86dcd3c08ceb8d88e2a882aafa90a9d7 SHA256 3b4f81d3a2b46281bf494343ecdf0980b231cfe558e57f1403ea873ddcc35196
|
||||||
|
EBUILD snail-1.2.6.ebuild 976 RMD160 3f6d32cf30f0f98ef51a6c18c8a2912baca69e62 SHA1 413f601abf3b8ce458e07b8dfd3f49012d769fd1 SHA256 0d623003f723d520a901af0d096c7055a33b69427f9394788230605898e22d42
|
||||||
|
EBUILD snail-9999.ebuild 919 RMD160 406c48d01df438632f76564877867da5c300e2ea SHA1 af8e6f07f6846800ac4695b68da5f4a0daf1e929 SHA256 6f3866d6f6c5466627563042425a2dc7d1144a64d6edb04c1e57a0be676263d1
|
|
@ -0,0 +1,53 @@
|
||||||
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
EAPI=4
|
||||||
|
|
||||||
|
inherit eutils
|
||||||
|
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
EGIT_REPO_URI=${EGIT_REPO_URI:-"git://github.com/backbone/snail.git"}
|
||||||
|
inherit git-2
|
||||||
|
KEYWORDS=""
|
||||||
|
else
|
||||||
|
SRC_URI="ftp://backbone.ws/projects/snail/${P}.tar.bz2"
|
||||||
|
KEYWORDS="-* ~x86 ~amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Snail - nVidia Optimus support"
|
||||||
|
|
||||||
|
SRC_URI="ftp://backbone.ws/projects/snail/${P}.tar.bz2"
|
||||||
|
|
||||||
|
HOMEPAGE="https://chili.backbone.ws/projects/snail"
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
DEPEND="x11-drivers/nvidia-drivers
|
||||||
|
sys-power/bbswitch
|
||||||
|
sys-apps/dmidecode"
|
||||||
|
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
# Allow user patches to be applied without modifying the ebuild
|
||||||
|
epatch_user
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
emake install DESTDIR="${D}"
|
||||||
|
else
|
||||||
|
emake install DESTDIR="${D}" || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
snail.configure
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
# Copyright 1999-2011 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
EAPI=4
|
||||||
|
|
||||||
|
inherit eutils
|
||||||
|
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
EGIT_REPO_URI=${EGIT_REPO_URI:-"git://github.com/backbone/snail.git"}
|
||||||
|
inherit git-2
|
||||||
|
KEYWORDS=""
|
||||||
|
else
|
||||||
|
SRC_URI="ftp://backbone.ws/projects/snail/${P}.tar.bz2"
|
||||||
|
KEYWORDS="-* ~x86 ~amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DESCRIPTION="Snail - nVidia Optimus support"
|
||||||
|
|
||||||
|
HOMEPAGE="https://chili.backbone.ws/projects/snail"
|
||||||
|
|
||||||
|
SLOT="0"
|
||||||
|
|
||||||
|
LICENSE="GPL-3"
|
||||||
|
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
DEPEND="x11-drivers/nvidia-drivers
|
||||||
|
sys-power/bbswitch
|
||||||
|
sys-apps/dmidecode"
|
||||||
|
|
||||||
|
RDEPEND="${DEPEND}"
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
# Allow user patches to be applied without modifying the ebuild
|
||||||
|
epatch_user
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
if [[ ${PV} == "9999" ]] ; then
|
||||||
|
emake install DESTDIR="${D}"
|
||||||
|
else
|
||||||
|
emake install DESTDIR="${D}" || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
snail.configure
|
||||||
|
}
|
|
@ -20,6 +20,15 @@ FIFO_FILE=/tmp/.snail.fifo
|
||||||
|
|
||||||
$XSERVER_STOP_CMD && snail.nv_pwr_off # stop X service
|
$XSERVER_STOP_CMD && snail.nv_pwr_off # stop X service
|
||||||
|
|
||||||
|
sigterm ()
|
||||||
|
{
|
||||||
|
rm -f $LOCK_FILE
|
||||||
|
rm -f $FIFO_FILE
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
trap sigterm SIGTERM
|
||||||
|
|
||||||
touch $LOCK_FILE && chown root:video $LOCK_FILE && chmod 660 $LOCK_FILE # create lock file
|
touch $LOCK_FILE && chown root:video $LOCK_FILE && chmod 660 $LOCK_FILE # create lock file
|
||||||
rm -f $FIFO_FILE && mkfifo --mode 660 $FIFO_FILE && chgrp video $FIFO_FILE # create fifo
|
rm -f $FIFO_FILE && mkfifo --mode 660 $FIFO_FILE && chgrp video $FIFO_FILE # create fifo
|
||||||
|
|
||||||
|
@ -29,8 +38,10 @@ rm -f $FIFO_FILE && mkfifo --mode 660 $FIFO_FILE && chgrp video $FIFO_FILE # cre
|
||||||
|
|
||||||
while [ 1 ]; do
|
while [ 1 ]; do
|
||||||
read <$FIFO_FILE
|
read <$FIFO_FILE
|
||||||
|
echo >$FIFO_FILE | cat $FIFO_FILE >/dev/null # flush fifo
|
||||||
snail.nv_pwr_on && $XSERVER_START_CMD # starting X server
|
snail.nv_pwr_on && $XSERVER_START_CMD # starting X server
|
||||||
flock -u 9
|
flock -u 9
|
||||||
|
echo >$FIFO_FILE | cat $FIFO_FILE >/dev/null # flush fifo
|
||||||
flock 9
|
flock 9
|
||||||
echo >$FIFO_FILE | cat $FIFO_FILE >/dev/null # flush fifo
|
echo >$FIFO_FILE | cat $FIFO_FILE >/dev/null # flush fifo
|
||||||
$XSERVER_STOP_CMD && snail.nv_pwr_off # stopping X server
|
$XSERVER_STOP_CMD && snail.nv_pwr_off # stopping X server
|
||||||
|
|
|
@ -1,29 +1,28 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "Test for acpi_call/vgaswitcheroo"
|
echo "Test for acpi_call/vgaswitcheroo"
|
||||||
if [ -f /sys/kernel/debug/vgaswitcheroo/switch ]; then
|
modprobe bbswitch &>/dev/null
|
||||||
|
modprobe acpi_call &>/dev/null
|
||||||
|
if [ -f /proc/acpi/bbswitch ]; then
|
||||||
|
echo "bbswitch is OK! ;-)"
|
||||||
|
elif [ -f /proc/acpi/call ]; then
|
||||||
|
echo "acpi_call is OK! ;-)"
|
||||||
|
elif [ -f /sys/kernel/debug/vgaswitcheroo/switch ]; then
|
||||||
echo "vgaswitcheroo is OK! ;-)"
|
echo "vgaswitcheroo is OK! ;-)"
|
||||||
else
|
else
|
||||||
if [ -f /proc/acpi/call ]; then
|
echo "No bbswitch/acpi_call/vgaswitcheroo found. Please configure/install one of them! ;-("
|
||||||
echo "acpi_call is OK! ;-)"
|
echo "Also You can run 'snail.configure' manually when the problem is resolved."
|
||||||
else
|
|
||||||
modprobe acpi_call
|
|
||||||
if [ -f /proc/acpi/call ]; then
|
|
||||||
echo "Warning: Please configure acpi_call module for autoloading on system startup!"
|
|
||||||
else
|
|
||||||
echo "No vgaswitcheroo/acpi_call found. Please configure/install one of them! ;-("
|
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Test for nVidia driver"
|
echo "Test for nVidia driver"
|
||||||
snail.nv_pwr_on && snail.nv_pwr_off
|
modinfo nvidia &>/dev/null || modinfo nvidia-current &>/dev/null
|
||||||
if [ 0 -eq $? ]; then
|
if [ 0 -eq $? ]; then
|
||||||
echo "nVidia driver is OK! ;-)"
|
echo "nVidia kernel module found! ;-)"
|
||||||
else
|
else
|
||||||
echo "Test failed ;-("
|
echo "nVidia kernel module not found ;-("
|
||||||
echo "Probably you need to install standart nVidia driver or make a bug report..."
|
echo "Probably you need to install standart nVidia driver or make a bug report..."
|
||||||
|
echo "Also You can run 'snail.configure' manually when the problem is resolved."
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -32,7 +31,7 @@ which dmidecode &>/dev/null
|
||||||
if [ 0 -eq $? ]; then
|
if [ 0 -eq $? ]; then
|
||||||
echo "dmidecode utility is OK! ;-)"
|
echo "dmidecode utility is OK! ;-)"
|
||||||
else
|
else
|
||||||
echo "Please install dmidecode and run the script again."
|
echo "Please install dmidecode and run the 'snail.configure' script again."
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -46,6 +45,12 @@ if [ -f /etc/gentoo-release ]; then
|
||||||
DISTRIB_DESCRIPTION=`cat /etc/gentoo-release`
|
DISTRIB_DESCRIPTION=`cat /etc/gentoo-release`
|
||||||
DISTRIB_RELEASE=${DISTRIB_DESCRIPTION##* }
|
DISTRIB_RELEASE=${DISTRIB_DESCRIPTION##* }
|
||||||
DISTRIB_CODENAME=gentoo
|
DISTRIB_CODENAME=gentoo
|
||||||
|
elif [ -f /etc/lsb-release ]; then
|
||||||
|
DISTRIB_ID=`grep ^DISTRIB_ID /etc/lsb-release | cut -d= -f2`
|
||||||
|
DISTRIB_RELEASE=`grep ^DISTRIB_RELEASE /etc/lsb-release | cut -d= -f2`
|
||||||
|
DISTRIB_CODENAME=`grep ^DISTRIB_CODENAME /etc/lsb-release | cut -d= -f2`
|
||||||
|
DISTRIB_DESCRIPTION=`grep ^DISTRIB_DESCRIPTION /etc/lsb-release | cut -d= -f2`
|
||||||
|
|
||||||
elif [ -f /etc/debian_version ]; then
|
elif [ -f /etc/debian_version ]; then
|
||||||
DISTRIB_ID=debian
|
DISTRIB_ID=debian
|
||||||
DISTRIB_RELEASE=`cat /etc/debian_version`
|
DISTRIB_RELEASE=`cat /etc/debian_version`
|
||||||
|
@ -77,6 +82,9 @@ elif [ -f /etc/fedora-release ]; then
|
||||||
DISTRIB_RELEASE=${DISTRIB_RELEASE##* }
|
DISTRIB_RELEASE=${DISTRIB_RELEASE##* }
|
||||||
DISTRIB_CODENAME=${DISTRIB_DESCRIPTION##*\(}
|
DISTRIB_CODENAME=${DISTRIB_DESCRIPTION##*\(}
|
||||||
DISTRIB_CODENAME=${DISTRIB_CODENAME%%\)*}
|
DISTRIB_CODENAME=${DISTRIB_CODENAME%%\)*}
|
||||||
|
elif [ -f /etc/issue ]; then
|
||||||
|
DISTRIB_ID=`cut -d" " -f1 /etc/issue | head -n1`
|
||||||
|
DISTRIB_RELEASE=`cut -d" " -f2 /etc/issue | head -n1`
|
||||||
else
|
else
|
||||||
DISTRIB_DESCRIPTION=`cat /etc/*release* | head -n1`
|
DISTRIB_DESCRIPTION=`cat /etc/*release* | head -n1`
|
||||||
DISTRIB_ID=`echo ${DISTRIB_DESCRIPTION%% *} | tr 'A-Z' 'a-z'`
|
DISTRIB_ID=`echo ${DISTRIB_DESCRIPTION%% *} | tr 'A-Z' 'a-z'`
|
||||||
|
@ -92,7 +100,8 @@ echo "DISTRIB_CODENAME=$DISTRIB_CODENAME"
|
||||||
|
|
||||||
SNAIL_INIT_D_PATH=/usr/share/snail/init.d
|
SNAIL_INIT_D_PATH=/usr/share/snail/init.d
|
||||||
echo "Copying system init scripts (SysV/OpenRC/Systemd), start snail-watcher, configuring kernel modules and OpenGL libraries"
|
echo "Copying system init scripts (SysV/OpenRC/Systemd), start snail-watcher, configuring kernel modules and OpenGL libraries"
|
||||||
[[ -d /usr/lib64/snail && ! -d /usr/lib/snail ]] && ln -s /usr/lib64/snail /usr/lib/snail
|
rm -f /usr/lib/snail/* &>/dev/null
|
||||||
|
rm -f /usr/lib/snail/lib32/* &>/dev/null
|
||||||
case "$DISTRIB_ID" in
|
case "$DISTRIB_ID" in
|
||||||
"gentoo")
|
"gentoo")
|
||||||
cp -f $SNAIL_INIT_D_PATH/snail-watcher.openrc /etc/init.d/snail-watcher
|
cp -f $SNAIL_INIT_D_PATH/snail-watcher.openrc /etc/init.d/snail-watcher
|
||||||
|
@ -103,19 +112,22 @@ case "$DISTRIB_ID" in
|
||||||
eselect rc stop snail-xserver
|
eselect rc stop snail-xserver
|
||||||
eselect rc restart snail-watcher
|
eselect rc restart snail-watcher
|
||||||
|
|
||||||
grep acpi_call /etc/conf.d/modules || echo 'modules="${modules} acpi_call' >> /etc/conf.d/modules
|
grep bbswitch /etc/conf.d/modules || echo 'modules="${modules} bbswitch"' >> /etc/conf.d/modules
|
||||||
|
grep acpi_call /etc/conf.d/modules || echo 'modules="${modules} acpi_call"' >> /etc/conf.d/modules
|
||||||
|
|
||||||
eselect opengl set xorg-x11
|
eselect opengl set xorg-x11
|
||||||
for arch in 32bit 64bit; do
|
for arch in 32bit 64bit; do
|
||||||
for chip in i915 i965 r300 r600 sw; do
|
for chip in i915 i965 sw; do
|
||||||
eselect mesa set $arch $chip classic &>/dev/null;
|
eselect mesa set $arch $chip classic &>/dev/null;
|
||||||
done;
|
done;
|
||||||
done
|
done
|
||||||
ln -sf /usr/lib/opengl/nvidia/lib/libGL.so.[0-9][0-9]* /usr/lib/snail/libGL.so.1
|
ln -sf /usr/lib/opengl/nvidia/lib/libGL.so.[0-9][0-9]* /usr/lib/snail/libGL.so.1
|
||||||
|
ln -sf /usr/lib32/opengl/nvidia/lib/libGL.so.1 /usr/lib/snail/lib32/libGL.so.1
|
||||||
ln -sf /usr/lib/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
ln -sf /usr/lib/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
||||||
ln -sf /usr/lib/xorg/modules/libwfb.so /usr/lib/snail/libwfb.so
|
ln -sf /usr/lib/xorg/modules/libwfb.so /usr/lib/snail/libwfb.so
|
||||||
ln -sf /usr/lib/opengl/nvidia/extensions/libglx.so.[0-9][0-9]* /usr/lib/snail/libglx.so
|
ln -sf /usr/lib/opengl/nvidia/extensions/libglx.so.[0-9][0-9]* /usr/lib/snail/libglx.so
|
||||||
ln -sf /usr/lib/opengl/nvidia/lib/libnvidia-tls.so.[0-9][0-9]* /usr/lib/snail/
|
ln -sf /usr/lib/opengl/nvidia/lib/libnvidia-tls.so.[0-9][0-9]* /usr/lib/snail/
|
||||||
|
ln -sf /usr/lib32/opengl/nvidia/lib/libnvidia-tls.so /usr/lib/snail/lib32/libnvidia-tls.so
|
||||||
ln -sf /usr/lib/xorg/modules/drivers/nvidia_drv.so /usr/lib/snail/nvidia_drv.so
|
ln -sf /usr/lib/xorg/modules/drivers/nvidia_drv.so /usr/lib/snail/nvidia_drv.so
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -125,9 +137,12 @@ case "$DISTRIB_ID" in
|
||||||
update-rc.d snail-xserver remove
|
update-rc.d snail-xserver remove
|
||||||
update-rc.d snail-watcher defaults
|
update-rc.d snail-watcher defaults
|
||||||
/etc/init.d/snail-xserver stop
|
/etc/init.d/snail-xserver stop
|
||||||
|
/etc/init.d/snail-watcher stop
|
||||||
/etc/init.d/snail-watcher start
|
/etc/init.d/snail-watcher start
|
||||||
|
|
||||||
|
grep '^bbswitch$' /etc/modules || echo bbswitch >> /etc/modules
|
||||||
grep '^acpi_call$' /etc/modules || echo acpi_call >> /etc/modules
|
grep '^acpi_call$' /etc/modules || echo acpi_call >> /etc/modules
|
||||||
|
|
||||||
case "$DISTRIB_RELEASE" in
|
case "$DISTRIB_RELEASE" in
|
||||||
6.?.?)
|
6.?.?)
|
||||||
# nVidia driver installed from Debian repositories
|
# nVidia driver installed from Debian repositories
|
||||||
|
@ -157,6 +172,13 @@ case "$DISTRIB_ID" in
|
||||||
mv -f /usr/lib/libGL.so.* /tmp
|
mv -f /usr/lib/libGL.so.* /tmp
|
||||||
apt-get install --reinstall libgl1-mesa-glx
|
apt-get install --reinstall libgl1-mesa-glx
|
||||||
mv -f /tmp/libGL.so.* /usr/lib
|
mv -f /tmp/libGL.so.* /usr/lib
|
||||||
|
|
||||||
|
rm -f /usr/lib32/libGL.so.1
|
||||||
|
rm -f /usr/lib32/libGL.so
|
||||||
|
ln -sf libGL.so.1.2 /usr/lib32/libGL.so.1
|
||||||
|
ln -sf libGL.so.1 /usr/lib32/libGL.so
|
||||||
|
ln -sf /usr/lib32/libGL.so.[0-9][0-9]* /usr/lib/snail/lib32/libGL.so.1
|
||||||
|
ln -sf /usr/lib32/tls/libnvidia-tls.so.[0-9][0-9]* /usr/lib/snail/lib32/libnvidia-tls.so
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -165,6 +187,10 @@ case "$DISTRIB_ID" in
|
||||||
ln -sf /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1 /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
|
ln -sf /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1 /etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
|
||||||
rm -f /etc/alternatives/glx--linux-libglx.so
|
rm -f /etc/alternatives/glx--linux-libglx.so
|
||||||
ln -sf /usr/lib/xorg/modules/extensions/libglx.so /etc/alternatives/glx--linux-libglx.so
|
ln -sf /usr/lib/xorg/modules/extensions/libglx.so /etc/alternatives/glx--linux-libglx.so
|
||||||
|
rm -f /etc/alternatives/ia32-libGL.so.1
|
||||||
|
ln -sf /usr/lib32/nvidia/diversions/libGL.so.1.2 /etc/alternatives/ia32-libGL.so.1
|
||||||
|
rm -f /etc/alternatives/ia32-libGL.so
|
||||||
|
ln -sf /usr/lib32/nvidia/diversions/libGL.so.1.2 /etc/alternatives/ia32-libGL.so
|
||||||
|
|
||||||
ln -sf /usr/lib/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
ln -sf /usr/lib/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
||||||
ln -sf /usr/lib/xorg/modules/libwfb.so /usr/lib/snail/libwfb.so
|
ln -sf /usr/lib/xorg/modules/libwfb.so /usr/lib/snail/libwfb.so
|
||||||
|
@ -172,6 +198,47 @@ case "$DISTRIB_ID" in
|
||||||
ln -sf /usr/lib/x86_64-linux-gnu/nvidia/current/libGL.so.1 /usr/lib/snail/libGL.so.1
|
ln -sf /usr/lib/x86_64-linux-gnu/nvidia/current/libGL.so.1 /usr/lib/snail/libGL.so.1
|
||||||
ln -sf /etc/alternatives/nvidia/libglx.so /usr/lib/snail/libglx.so
|
ln -sf /etc/alternatives/nvidia/libglx.so /usr/lib/snail/libglx.so
|
||||||
ln -sf /usr/lib/nvidia/nvidia/nvidia_drv.so /usr/lib/snail/nvidia_drv.so
|
ln -sf /usr/lib/nvidia/nvidia/nvidia_drv.so /usr/lib/snail/nvidia_drv.so
|
||||||
|
ln -sf /usr/lib32/nvidia/libGL.so.1 /usr/lib/snail/lib32/libGL.so.1
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "No rules for Your distribution. Please make a bug report."
|
||||||
|
exit -1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
|
||||||
|
"Ubuntu")
|
||||||
|
cp -f $SNAIL_INIT_D_PATH/snail-watcher.sysv /etc/init.d/snail-watcher
|
||||||
|
cp -f $SNAIL_INIT_D_PATH/snail-xserver.sysv /etc/init.d/snail-xserver
|
||||||
|
update-rc.d snail-xserver remove
|
||||||
|
update-rc.d snail-watcher defaults
|
||||||
|
/etc/init.d/snail-xserver stop
|
||||||
|
/etc/init.d/snail-watcher stop
|
||||||
|
/etc/init.d/snail-watcher start
|
||||||
|
|
||||||
|
grep '^bbswitch$' /etc/modules || echo bbswitch >> /etc/modules
|
||||||
|
grep '^acpi_call$' /etc/modules || echo acpi_call >> /etc/modules
|
||||||
|
|
||||||
|
case "$DISTRIB_RELEASE" in
|
||||||
|
12.*)
|
||||||
|
rm -f /etc/alternatives/x86_64-linux-gnu_gl_conf
|
||||||
|
ln -sf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf /etc/alternatives/x86_64-linux-gnu_gl_conf
|
||||||
|
ldconfig
|
||||||
|
rm -f /usr/lib/x86_64-linux-gnu/xorg/extra-modules
|
||||||
|
ln -sf /usr/lib/nvidia-current/libGL.so.1 /usr/lib/snail/libGL.so.1
|
||||||
|
ln -sf /usr/lib/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
||||||
|
ln -sf /usr/lib/nvidia-current/xorg/libglx.so /usr/lib/snail/libglx.so
|
||||||
|
ln -sf /usr/lib/nvidia-current/libnvidia-glcore.so.[0-9][0-9]* /usr/lib/snail/
|
||||||
|
ln -sf /usr/lib/nvidia-current/tls/libnvidia-tls.so.[0-9][0-9]* /usr/lib/snail/
|
||||||
|
ln -sf /usr/lib/xorg/modules/libwfb.so /usr/lib/snail/libwfb.so
|
||||||
|
ln -sf /usr/lib/nvidia-current/xorg/nvidia_drv.so /usr/lib/snail/nvidia_drv.so
|
||||||
|
|
||||||
|
rm -f /etc/alternatives/i386-linux-gnu_gl_conf
|
||||||
|
ln -sf /usr/lib/i386-linux-gnu/mesa/ld.so.conf /etc/alternatives/i386-linux-gnu_gl_conf
|
||||||
|
ln -sf /usr/lib32/nvidia-current/libGL.so.1 /usr/lib/snail/lib32/libGL.so.1
|
||||||
|
ln -sf /usr/lib32/nvidia-current/tls/libnvidia-tls.so.[0-9][0-9]* /usr/lib/snail/lib32/libnvidia-tls.so
|
||||||
|
ln -sf /usr/lib32/nvidia-current/libnvidia-glcore.so.[0-9][0-9]* /usr/lib/snail/lib32/libnvidia-glcore.so
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
@ -184,10 +251,13 @@ case "$DISTRIB_ID" in
|
||||||
"fedora")
|
"fedora")
|
||||||
case "$DISTRIB_CODENAME" in
|
case "$DISTRIB_CODENAME" in
|
||||||
Verne)
|
Verne)
|
||||||
echo acpi_call > /etc/modules-load.d/snail.conf
|
echo bbswitch > /etc/modules-load.d/snail.conf
|
||||||
|
echo acpi_call > /etc/modules-load.d/snail.conf
|
||||||
cp -f $SNAIL_INIT_D_PATH/snail-watcher.systemd /etc/systemd/system/snail-watcher.service
|
cp -f $SNAIL_INIT_D_PATH/snail-watcher.systemd /etc/systemd/system/snail-watcher.service
|
||||||
cp -f $SNAIL_INIT_D_PATH/snail-xserver.systemd /etc/systemd/system/snail-xserver.service
|
cp -f $SNAIL_INIT_D_PATH/snail-xserver.systemd /etc/systemd/system/snail-xserver.service
|
||||||
systemctl --system daemon-reload
|
systemctl --system daemon-reload
|
||||||
|
systemctl stop snail-xserver.service
|
||||||
|
systemctl stop snail-watcher.service
|
||||||
systemctl start snail-watcher.service
|
systemctl start snail-watcher.service
|
||||||
systemctl enable snail-watcher.service
|
systemctl enable snail-watcher.service
|
||||||
ln -sf /usr/lib64/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
ln -sf /usr/lib64/xorg/modules/libfb.so /usr/lib/snail/libfb.so
|
||||||
|
@ -197,6 +267,7 @@ case "$DISTRIB_ID" in
|
||||||
rm -f /usr/lib64/nvidia/libGL.so.1
|
rm -f /usr/lib64/nvidia/libGL.so.1
|
||||||
ln -sf /usr/lib64/nvidia/libGL.so.[0-9][0-9]* /usr/lib/snail/libGL.so.1
|
ln -sf /usr/lib64/nvidia/libGL.so.[0-9][0-9]* /usr/lib/snail/libGL.so.1
|
||||||
ln -sf /usr/lib64/xorg/modules/extensions/nvidia/libglx.so.[0-9][0-9]* /usr/lib/snail/libglx.so
|
ln -sf /usr/lib64/xorg/modules/extensions/nvidia/libglx.so.[0-9][0-9]* /usr/lib/snail/libglx.so
|
||||||
|
ln -sf /usr/lib/nvidia/libGL.so.1 /usr/lib/snail/lib32/libGL.so.1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
@ -213,17 +284,22 @@ case "$DISTRIB_ID" in
|
||||||
esac
|
esac
|
||||||
|
|
||||||
echo "Creating backups of original xorg.conf.* files and replacing with snail's versions..."
|
echo "Creating 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
|
if [[ ! -f /etc/X11/xorg.conf.nvidia.snail \
|
||||||
[[ -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.intel.snail \
|
||||||
[[ -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
|
|| "`grep 'Driver *\"intel\"' /etc/X11/xorg.conf`" == "" \
|
||||||
cp -f /etc/X11/xorg.conf.intel.snail /etc/X11/xorg.conf.intel
|
|| "`grep 'BusID *"PCI:[0-9]:[0-9]:[0-9]' /etc/X11/xorg.conf{,.nvidia} | wc -l`" != 2 ]]; then
|
||||||
cp -f /etc/X11/xorg.conf.nvidia.snail /etc/X11/xorg.conf.nvidia
|
[[ -f /etc/X11/xorg.conf && ! -f /etc/X11/xorg.conf.snail-bkp ]] && mv /etc/X11/xorg.conf /etc/X11/xorg.conf.snail-bkp
|
||||||
ln -sf xorg.conf.intel /etc/X11/xorg.conf
|
[[ -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
|
||||||
|
|
||||||
echo "Recognizing BusID of both chips and set it in xorg.conf.* files..."
|
echo "Recognizing 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'`"
|
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'`"
|
BusIDNvidia="PCI:`lspci | grep VGA | grep -i 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~BusIDIntel~$BusIDIntel~" /etc/X11/xorg.conf.intel
|
||||||
sed -i "s~BusIDNvidia~$BusIDNvidia~" /etc/X11/xorg.conf.nvidia
|
sed -i "s~BusIDNvidia~$BusIDNvidia~" /etc/X11/xorg.conf.nvidia
|
||||||
|
fi
|
||||||
|
|
||||||
echo "`basename -- $0` is complete! ;-)"
|
echo "`basename -- $0` is complete! ;-)"
|
||||||
|
|
|
@ -1,116 +1,85 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
TRIES=8
|
rmmod -w nvidia &>/dev/null
|
||||||
|
|
||||||
lsmod | grep '^nouveau ' >/dev/null && modprobe -rf nouveau &>/dev/null
|
# Trying bbswitch method
|
||||||
|
if [ -f /proc/acpi/bbswitch ]; then
|
||||||
|
echo 'OFF' > /proc/acpi/bbswitch \
|
||||||
|
&& a=`cat /proc/acpi/bbswitch` \
|
||||||
|
&& [ OFF == ${a##* } ] \
|
||||||
|
&& echo "nVidia chip powered off using bbswitch" \
|
||||||
|
&& exit 0
|
||||||
|
|
||||||
# Trying vgaswitcheroo method
|
echo "Cann't power off nVidia chip using bbswitch"
|
||||||
if [ -f /sys/kernel/debug/vgaswitcheroo/switch ]; then
|
|
||||||
let tries=$TRIES
|
|
||||||
while [ 0 -lt $tries ]; do
|
|
||||||
modprobe -r nvidia \
|
|
||||||
&& echo 'OFF DIS' > /sys/kernel/debug/vgaswitcheroo/switch \
|
|
||||||
&& exit 0
|
|
||||||
|
|
||||||
sleep 0.01
|
|
||||||
let tries--
|
|
||||||
echo "tries left: $tries"
|
|
||||||
done
|
|
||||||
echo "Cann't power off nVidia chip ;-("
|
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Trying acpi_call method
|
# Trying acpi_call method
|
||||||
if [ -f /proc/acpi/call ]; then
|
if [ -f /proc/acpi/call ]; then
|
||||||
model=`dmidecode $@ -s system-product-name`
|
model=`dmidecode -s system-product-name`
|
||||||
tries=$TRIES
|
case "$model" in
|
||||||
while [ 0 -lt $tries ]; do
|
M11XR2)
|
||||||
case "$model" in
|
echo '\_SB.PCI0.P0P2.PEGP.NVOP 0 0x100 0x1A {255,255,255,255}' > /proc/acpi/call \
|
||||||
M11XR2)
|
&& echo '\_SB.PCI0.P0P2.PEGP._PS3' > /proc/acpi/call
|
||||||
modprobe -r nvidia \
|
;;
|
||||||
&& echo '\_SB.PCI0.P0P2.PEGP.NVOP 0 0x100 0x1A {255,255,255,255}' > /proc/acpi/call \
|
1015PN)
|
||||||
&& echo '\_SB.PCI0.P0P2.PEGP._PS3' > /proc/acpi/call \
|
echo '\OSGS 0x03' > /proc/acpi/call
|
||||||
&& exit 0
|
;;
|
||||||
;;
|
1215N)
|
||||||
1015PN)
|
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 \
|
||||||
modprobe -r nvidia \
|
&& echo '\_SB.PCI0.P0P4.GFX0._PS3' > /proc/acpi/call
|
||||||
&& echo '\OSGS 0x03' > /proc/acpi/call \
|
;;
|
||||||
&& exit 0
|
K42Jc|K52Jc|N53Jf|N53Jg|N71Jv|N73Jf|P52Jc|PL80Jt|U30Jc|U33Jc|U35Jc|U36Jc|UL80Jt)
|
||||||
;;
|
echo '\_SB.PCI0.PEG1.GFX0.DOFF' > /proc/acpi/call
|
||||||
1215N)
|
;;
|
||||||
modprobe -r nvidia \
|
N61Jv|N73Sv)
|
||||||
&& 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.PEGR.GFX0.DOFF' > /proc/acpi/call
|
||||||
&& echo '\_SB.PCI0.P0P4.GFX0._PS3' > /proc/acpi/call \
|
;;
|
||||||
&& exit 0
|
P31Jg)
|
||||||
;;
|
echo '\_SB.PCI0.PEG1.GFX0._PS3' > /proc/acpi/call
|
||||||
K42Jc|K52Jc|N53Jf|N53Jg|N71Jv|N73Jf|P52Jc|PL80Jt|U30Jc|U33Jc|U35Jc|U36Jc|UL80Jt)
|
;;
|
||||||
modprobe -r nvidia \
|
U43Jc)
|
||||||
&& echo '\_SB.PCI0.PEG1.GFX0.DOFF' > /proc/acpi/call \
|
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 \
|
||||||
&& exit 0
|
&& echo '\_SB.PCI0.RP00.VGA._PS3' > /proc/acpi/call
|
||||||
;;
|
;;
|
||||||
N61Jv|N73Sv)
|
UL30Vt)
|
||||||
modprobe -r nvidia \
|
echo '\_SB.PCI0.P0P1.VGA._OFF' > /proc/acpi/call
|
||||||
&& echo '\_SB.PCI0.PEGR.GFX0.DOFF' > /proc/acpi/call \
|
;;
|
||||||
&& exit 0
|
E6420)
|
||||||
;;
|
echo '\_SB.PCI0.PEG0.VID._OFF' > /proc/acpi/call
|
||||||
P31Jg)
|
;;
|
||||||
modprobe -r nvidia \
|
InspironN5110|XPSL702X)
|
||||||
&& echo '\_SB.PCI0.PEG1.GFX0._PS3' > /proc/acpi/call \
|
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 \
|
||||||
&& exit 0
|
&& echo '\_SB.PCI0.PEG0.PEGP._PS3' > /proc/acpi/call
|
||||||
;;
|
;;
|
||||||
U43Jc)
|
Vostro3300|Vostro3500)
|
||||||
modprobe -r nvidia \
|
echo '\_SB.PCI0.P0P1.PEGP._OFF' > /proc/acpi/call
|
||||||
&& 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 \
|
XPS15)
|
||||||
&& exit 0
|
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
|
||||||
;;
|
;;
|
||||||
UL30Vt)
|
ThinkPadT410)
|
||||||
modprobe -r nvidia \
|
echo '\_SB.PCI0.PEG.VID._PS3' > /proc/acpi/call \
|
||||||
&& echo '\_SB.PCI0.P0P1.VGA._OFF' > /proc/acpi/call \
|
&& echo '\_SB.PCI0.PEG.VID._OFF' > /proc/acpi/call
|
||||||
&& exit 0
|
;;
|
||||||
;;
|
ThinkPadT420|41786VU)
|
||||||
E6420)
|
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 \
|
||||||
modprobe -r nvidia \
|
&& echo '\_SB.PCI0.PEG.VID._PS3' > /proc/acpi/call
|
||||||
&& echo '\_SB.PCI0.PEG0.VID._OFF' > /proc/acpi/call \
|
;;
|
||||||
&& exit 0
|
*) echo "Snail: unknown Notebook model: $model"; exit -1
|
||||||
;;
|
;;
|
||||||
InspironN5110|XPSL702X)
|
esac
|
||||||
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
|
|
||||||
|
|
||||||
sleep 0.01
|
echo "acpi_call used to power OFF nVidia chip"
|
||||||
let tries--
|
exit 0
|
||||||
echo "tries left: $tries"
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Cann't power off nVidia chip"
|
# Trying vgaswitcheroo method
|
||||||
exit -1
|
if [ -f /sys/kernel/debug/vgaswitcheroo/switch ]; then
|
||||||
|
echo 'OFF' > /sys/kernel/debug/vgaswitcheroo/switch \
|
||||||
|
&& echo "nVidia chip powered off using vgaswitcheroo" \
|
||||||
|
&& exit 0
|
||||||
|
|
||||||
|
echo "Cann't power off nVidia chip using vgaswitcheroo"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
|
@ -1,116 +1,81 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
TRIES=8
|
# lsmod | grep '^nouveau ' >/dev/null && modprobe -rf nouveau &>/dev/null
|
||||||
|
|
||||||
lsmod | grep '^nouveau ' >/dev/null && modprobe -rf nouveau &>/dev/null
|
# Trying bbswitch method
|
||||||
|
if [ -f /proc/acpi/bbswitch ]; then
|
||||||
|
echo 'ON' > /proc/acpi/bbswitch
|
||||||
|
a=`cat /proc/acpi/bbswitch`
|
||||||
|
[ ON == ${a##* } ] && echo "nVidia chip powered ON using bbswitch" && exit 0
|
||||||
|
|
||||||
# Trying vgaswitcheroo method
|
echo "Cann't power on nVidia chip using bbswitch"
|
||||||
if [ -f /sys/kernel/debug/vgaswitcheroo/switch ]; then
|
|
||||||
let tries=$TRIES
|
|
||||||
while [ 0 -lt $tries ]; do
|
|
||||||
echo 'ON DIS' > /sys/kernel/debug/vgaswitcheroo/switch \
|
|
||||||
&& modprobe nvidia \
|
|
||||||
&& exit 0
|
|
||||||
|
|
||||||
sleep 0.01
|
|
||||||
let tries--
|
|
||||||
echo "tries left: $tries"
|
|
||||||
done
|
|
||||||
echo "Cann't power on nVidia chip ;-("
|
|
||||||
exit -1
|
exit -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Trying acpi_call method
|
# Trying acpi_call method
|
||||||
if [ -f /proc/acpi/call ]; then
|
if [ -f /proc/acpi/call ]; then
|
||||||
model=`dmidecode $@ -s system-product-name`
|
model=`dmidecode -s system-product-name`
|
||||||
tries=$TRIES
|
case "$model" in
|
||||||
while [ 0 -lt $tries ]; do
|
M11XR2)
|
||||||
case "$model" in
|
echo '\_SB.PCI0.P0P2.PEGP._PS0' > /proc/acpi/call
|
||||||
M11XR2)
|
;;
|
||||||
echo '\_SB.PCI0.P0P2.PEGP._PS0' > /proc/acpi/call \
|
1015PN)
|
||||||
&& modprobe nvidia \
|
echo '\_SB.PCI0.P0P4.DGPU.DON' > /proc/acpi/call
|
||||||
&& exit 0
|
;;
|
||||||
;;
|
1215N)
|
||||||
1015PN)
|
echo '\_SB.PCI0.P0P4.GFX0._PS0' > /proc/acpi/call
|
||||||
echo '\_SB.PCI0.P0P4.DGPU.DON' > /proc/acpi/call \
|
;;
|
||||||
&& modprobe nvidia \
|
K42Jc|K52Jc|N53Jf|N53Jg|N71Jv|N73Jf|P52Jc|PL80Jt|U30Jc|U33Jc|U35Jc|U36Jc|UL80Jt)
|
||||||
&& exit 0
|
echo '\_SB.PCI0.PEG1.GFX0.DON' > /proc/acpi/call
|
||||||
;;
|
;;
|
||||||
1215N)
|
N53Sn|U41Sv|N53Sv)
|
||||||
echo '\_SB.PCI0.P0P4.GFX0._PS0' > /proc/acpi/call \
|
echo '\_SB.PCI0.PEG0.GFX0.DON' > /proc/acpi/call
|
||||||
&& modprobe nvidia \
|
;;
|
||||||
&& exit 0
|
N61Jv|N73Sv)
|
||||||
;;
|
echo '\_SB.PCI0.PEGR.GFX0.DON' > /proc/acpi/call
|
||||||
K42Jc|K52Jc|N53Jf|N53Jg|N71Jv|N73Jf|P52Jc|PL80Jt|U30Jc|U33Jc|U35Jc|U36Jc|UL80Jt)
|
;;
|
||||||
echo '\_SB.PCI0.PEG1.GFX0.DON' > /proc/acpi/call \
|
P31Jg)
|
||||||
&& modprobe nvidia \
|
echo '\_SB.PCI0.PEG1.GFX0._PS0' > /proc/acpi/call
|
||||||
&& exit 0
|
;;
|
||||||
;;
|
U43Jc)
|
||||||
N53Sn|U41Sv|N53Sv)
|
echo '\_SB.PCI0.RP00.VGA._PS0' > /proc/acpi/call
|
||||||
echo '\_SB.PCI0.PEG0.GFX0.DON' > /proc/acpi/call \
|
;;
|
||||||
&& modprobe nvidia \
|
UL30Vt)
|
||||||
&& exit 0
|
echo '\_SB.PCI0.P0P1.VGA._ON' > /proc/acpi/call
|
||||||
;;
|
;;
|
||||||
N61Jv|N73Sv)
|
E6420)
|
||||||
echo '\_SB.PCI0.PEGR.GFX0.DON' > /proc/acpi/call \
|
echo '\_SB.PCI0.PEG0.VID._ON' > /proc/acpi/call
|
||||||
&& modprobe nvidia \
|
;;
|
||||||
&& exit 0
|
InspironN5110|XPSL702X)
|
||||||
;;
|
echo '\_SB.PCI0.PEG0.PEGP._PS0' > /proc/acpi/call
|
||||||
P31Jg)
|
;;
|
||||||
echo '\_SB.PCI0.PEG1.GFX0._PS0' > /proc/acpi/call \
|
Vostro3300|Vostro3500)
|
||||||
&& modprobe nvidia \
|
echo '\_SB.PCI0.P0P1.PEGP._ON' > /proc/acpi/call
|
||||||
&& exit 0
|
;;
|
||||||
;;
|
XPS15)
|
||||||
U43Jc)
|
echo '\_SB.PCI0.PEG0.PEGP._ON' > /proc/acpi/call
|
||||||
echo '\_SB.PCI0.RP00.VGA._PS0' > /proc/acpi/call \
|
;;
|
||||||
&& modprobe nvidia \
|
ThinkPadT410)
|
||||||
&& exit 0
|
echo '\_SB.PCI0.PEG.VID._ON' > /proc/acpi/call \
|
||||||
;;
|
&& echo '\_SB.PCI0.PEG.VID._PS0' > /proc/acpi/call
|
||||||
UL30Vt)
|
;;
|
||||||
echo '\_SB.PCI0.P0P1.VGA._ON' > /proc/acpi/call \
|
ThinkPadT420|41786VU)
|
||||||
&& modprobe nvidia \
|
echo '\_SB.PCI0.PEG.VID._PS0' > /proc/acpi/call
|
||||||
&& exit 0
|
;;
|
||||||
;;
|
*) echo "Snail (acpi_call method): unknown Notebook model: $model"; exit -1
|
||||||
E6420)
|
;;
|
||||||
echo '\_SB.PCI0.PEG0.VID._ON' > /proc/acpi/call \
|
esac
|
||||||
&& 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
|
|
||||||
|
|
||||||
sleep 0.01
|
echo "acpi_call used to power ON nVidia chip"
|
||||||
let tries--
|
exit 0
|
||||||
echo "tries left: $tries"
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Cann't power on nVidia chip"
|
# Trying vgaswitcheroo method
|
||||||
exit -1
|
if [ -f /sys/kernel/debug/vgaswitcheroo/switch ]; then
|
||||||
|
echo 'ON' > /sys/kernel/debug/vgaswitcheroo/switch \
|
||||||
|
&& echo "nVidia chip powered ON using vgaswitcheroo" \
|
||||||
|
&& exit 0
|
||||||
|
|
||||||
|
echo "Cann't power on nVidia chip using vgaswitcheroo"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
PATH=$PATH:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
PATH=$PATH:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
||||||
DAEMON=/usr/bin/X
|
DAEMON=/usr/bin/X
|
||||||
DAEMON_ARGS="-ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/lib/snail -nolisten tcp -noreset :1 vt9"
|
DAEMON_ARGS="-ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/lib/snail -nolisten tcp -noreset :8293 vt9"
|
||||||
PIDFILE=/var/run/snail-xserver.pid
|
PIDFILE=/var/run/snail-xserver.pid
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
ebegin "Starting Snail nVidia Optimus"
|
ebegin "Starting Snail nVidia Optimus"
|
||||||
snail.nv_pwr_on || eend -1
|
snail.nv_pwr_on || eend -1
|
||||||
export LD_LIBRARY_PATH=/usr/lib/snail:/usr/lib/snail/lib
|
export LD_LIBRARY_PATH=/usr/lib/snail
|
||||||
pid=`cat $PIDFILE 2>/dev/null`
|
pid=`cat $PIDFILE 2>/dev/null`
|
||||||
rm -f $PIDFILE
|
rm -f $PIDFILE
|
||||||
[ -z $pid ] || ! pgrep -s $pid X &>/dev/null && \
|
[ -z $pid ] || ! pgrep -s $pid X &>/dev/null && \
|
||||||
|
|
|
@ -3,6 +3,6 @@ Description=Daemon to auto start/stop power up/down nVidia graphics.
|
||||||
After=syslog.target
|
After=syslog.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/bin/bash -c '(nohup /usr/bin/X -ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/lib/snail -nolisten tcp -noreset :1 vt9 &>/dev/null)&'
|
ExecStart=/bin/bash -c '(nohup /usr/bin/X -ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/lib/snail -nolisten tcp -noreset :8293 vt9 &>/dev/null)&'
|
||||||
ExecStop=/usr/sbin/snail.nv_pwr_off
|
ExecStop=/usr/sbin/snail.nv_pwr_off
|
||||||
Type=forking
|
Type=forking
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
PATH=$PATH:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
PATH=$PATH:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
||||||
DAEMON=/usr/bin/X
|
DAEMON=/usr/bin/X
|
||||||
DAEMON_ARGS="-ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/lib/snail -nolisten tcp -noreset :1 vt9"
|
DAEMON_ARGS="-ac -config /etc/X11/xorg.conf.nvidia -sharevts -modulepath /usr/lib/snail -nolisten tcp -noreset :8293 vt9"
|
||||||
PIDFILE=/var/run/snail-xserver.pid
|
PIDFILE=/var/run/snail-xserver.pid
|
||||||
|
|
||||||
# Get lsb functions
|
# Get lsb functions
|
||||||
|
@ -27,7 +27,7 @@ case "$1" in
|
||||||
start)
|
start)
|
||||||
log_begin_msg "Starting Snail nVidia Optimus"
|
log_begin_msg "Starting Snail nVidia Optimus"
|
||||||
snail.nv_pwr_on || log_end_msg 1
|
snail.nv_pwr_on || log_end_msg 1
|
||||||
export LD_LIBRARY_PATH=/usr/lib/snail:/usr/lib/snail/lib
|
export LD_LIBRARY_PATH=/usr/lib/snail
|
||||||
pid=`cat $PIDFILE 2>/dev/null`
|
pid=`cat $PIDFILE 2>/dev/null`
|
||||||
rm -f $PIDFILE
|
rm -f $PIDFILE
|
||||||
[ -z $pid ] || ! pgrep -s $pid X &>/dev/null && \
|
[ -z $pid ] || ! pgrep -s $pid X &>/dev/null && \
|
||||||
|
|
Loading…
Reference in New Issue