system/nvidia-driver: added rc.nvidia-persistenced.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
cd90c74dab
commit
d10cd53348
|
@ -12,16 +12,18 @@ If you plan to test this buildscript on current (15.0 EXPERIMENTAL), to
|
|||
avoid stomping on the installed libglvnd, do:
|
||||
CURRENT="yes" ./nvidia-driver.SlackBuild
|
||||
|
||||
This script now installs the nvidia-persitenced daemon. For details, see
|
||||
README.nvidia-persitenced.
|
||||
|
||||
Several useful utilities are included: nvidia-xsettings, nvidia-smi, and
|
||||
nvidia-settings. Please refer to the Nvidia documentation and man pages
|
||||
for details and usage.
|
||||
|
||||
For CUDA/OpenCL to work after reboot, and for utilites such as nvidia-smi,
|
||||
you might need to include the following line in your /etc/rc.d/rc.local:
|
||||
-------------8<---------------
|
||||
# Create missing nvidia device nodes after reboot
|
||||
/usr/bin/nvidia-modprobe -c 0 -u
|
||||
------------->8---------------
|
||||
|
||||
# Create missing nvidia device nodes after reboot
|
||||
/usr/bin/nvidia-modprobe -c 0 -u
|
||||
|
||||
Notes:
|
||||
1. You still need to blacklist the opensource nouveau driver. This is
|
||||
|
@ -30,7 +32,8 @@ Notes:
|
|||
2. If nvidia-driver is already installed, there may be extraneous
|
||||
"unable to find installed file..." messages on the console and log.
|
||||
This is benign and due to the nvidia installer not being very smart.
|
||||
3. If you want to revert back to the open source drivers, run
|
||||
'nvidia-switch --remove' to restore the original libGL.la and then
|
||||
'removepkg nvidia-driver' "should" work in most cases. If not, simply
|
||||
reinstall the orginal Mesa and xorg-server packages.
|
||||
3. On 14.2 ONLY, if you want to revert back to the open source drivers,
|
||||
run 'nvidia-switch --remove' to restore the original libGL.la and
|
||||
then 'removepkg nvidia-driver' "should" work in most cases. If not,
|
||||
simply reinstall the orginal Mesa package. (THIS STEP IS NO LONGER
|
||||
NECESSARY ON CURRENT.)
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
The driver now includes rc.nvidia-persistenced as an option. While it can
|
||||
be run as root, it is more secure to run it as an unpriveleged user, so we
|
||||
run it as user nvidia. Create the nvidia user and group with the following:
|
||||
|
||||
# groupadd -g 365 nvidia
|
||||
# useradd -u 365 -g 365 -c "Nvidia" -d /dev/null -s /bin/false nvidia
|
||||
|
||||
To activate the daemon, add the following to /etc/rc.d/local:
|
||||
|
||||
# Start the nvidia-persistenced daemon:
|
||||
if [ -x /etc/rc.d/rc.nvidia-persistenced ]; then
|
||||
/etc/rc.d/rc.nvidia-persistenced start
|
||||
fi
|
||||
|
||||
and then 'chmod +x /etc/rc.d/rc.nvidia-persistenced' to make it executable.
|
||||
|
||||
Add the following to /etc/rc.d/rc.local_shutdown:
|
||||
|
||||
# Stop the nvidia-persistenced daemon:
|
||||
if [ -x /etc/rc.d/rc.nvidia-persistenced ]; then
|
||||
/etc/rc.d/rc.nvidia-persistenced stop
|
||||
fi
|
||||
|
||||
NOTE: This may not work on all systems. If you encounter problems
|
||||
with it, just 'chmod -x /etc/rc.d/rc.persistenced' and it will no
|
||||
longer load. YMMV.
|
||||
|
|
@ -49,3 +49,5 @@
|
|||
7.1 15-Dec-2019 version update LLB, fix libs
|
||||
7.2 12-Feb-2020 version update LLB
|
||||
7.3 24-Mar-2020 version update LLB, fixes nvidia-switch; doinst; update patch (thanks Daniel B.)
|
||||
7.4 03-Apr-2020 script cleanups, added rc.nvidia-persitenced
|
||||
new maintainer Lenard Spencer <lenardrspencer@gmail.com>
|
||||
|
|
|
@ -2,5 +2,3 @@ if [ -x /usr/bin/update-desktop-database ]; then
|
|||
/usr/bin/update-desktop-database -q usr/share/applications
|
||||
fi
|
||||
|
||||
./usr/sbin/nvidia-switch --install
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
# Slackware build script for nvidia-driver
|
||||
|
||||
# Copyright 2012-2019 Edward W. Koenig, Vancouver, WA, USA
|
||||
# Copyright 2012-2019 Edward W. Koenig, Vancouver, WA, US
|
||||
# Copyright 2020 Lenard Spencer, Orlando, FL, USA
|
||||
#
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -26,7 +28,7 @@
|
|||
|
||||
PRGNAM=nvidia-driver
|
||||
VERSION=${VERSION:-440.64}
|
||||
BUILD=${BUILD:-1}
|
||||
BUILD=${BUILD:-2}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
CURRENT=${CURRENT:-no}
|
||||
|
@ -57,6 +59,14 @@ else
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# There are a couple of unresolved issues with nvidia-installer, so we
|
||||
# abort if an Nvidia driver is still installed:
|
||||
if [ -x /usr/bin/nvidia-installer ]; then
|
||||
echo -e "\n A previous Nvidia installation has been detected!"
|
||||
echo -e " Please remove the installed driver and rerun this script.\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SRCNAM=NVIDIA-Linux-$TARGET-${VERSION}
|
||||
|
||||
# make a clean package directory tree
|
||||
|
@ -120,16 +130,12 @@ cd -
|
|||
mv -f $PKG/usr/bin/nvidia-installer $TMP/$SRCNAM
|
||||
mv -f $PKG/usr/man/man1/nvidia-installer.1.gz $TMP/$SRCNAM
|
||||
|
||||
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
|
||||
if [ "${COMPAT32}" = "yes" ]; then
|
||||
COMP32="--install-compat32-libs --compat32-prefix=$PKG/usr"
|
||||
MULTI="_multi"
|
||||
MULTI="_multilib"
|
||||
else
|
||||
if [ ! "$ARCH" = "x86_64" ]; then
|
||||
COMP32=""
|
||||
else
|
||||
COMP32="--no-install-compat32-libs"
|
||||
MULTI=""
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install the binary libs using nvidia-installer compiled above
|
||||
|
@ -150,55 +156,50 @@ cd $TMP/$SRCNAM
|
|||
--log-file-name=$PKG/var/log/nvidia-installer.log \
|
||||
--egl-external-platform-config-path=$PKG/usr/share/egl/egl_external_platform.d \
|
||||
--no-nvidia-modprobe \
|
||||
--install-libglvnd \
|
||||
$COMP32
|
||||
|
||||
# Clean-up: we really do not need this:
|
||||
rm -rf $PKG/var/log/nvidia
|
||||
# If running current (15.0) remove duplicate libglvnd files and symlinks
|
||||
# Move ICDs to $PKG and cleanup (no switch option in installer?)
|
||||
mv /etc/OpenCL/vendors/nvidia.icd $PKG/etc/OpenCL/vendors/nvidia.icd
|
||||
mv /etc/vulkan/icd.d/nvidia_icd.json $PKG/etc/vulkan/icd.d/nvidia_icd.json
|
||||
mv /etc/vulkan/implicit_layer.d/nvidia_layers.json $PKG/etc/vulkan/implicit_layer.d/nvidia_layers.json
|
||||
rm -rf /etc/vulkan
|
||||
# In current, mesa now puts an entry into this directory, so we
|
||||
# leave it alone if it is not empty
|
||||
if [ -z "$(ls -A /etc/OpenCL/vendors)" ]; then
|
||||
rm -rf /etc/OpenCL
|
||||
fi
|
||||
|
||||
if [ "$CURRENT" = "yes" ]; then
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libEGL.so{,.1,.1.1.0}
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGL.so{,.1,.1.7.0}
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLESv1_CM.so{,.1,.1.2.0}
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLESv2.so{,.2,.2.1.0}
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLX.so{,.0}
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libGLdispatch.so.0
|
||||
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libOpenGL.so{,.0}
|
||||
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
|
||||
rm -f $PKG/usr/lib/libEGL.so{,.1,.1.1.0}
|
||||
rm -f $PKG/usr/lib/libGL.so{,.1,.1.7.0}
|
||||
rm -f $PKG/usr/lib/libGLESv1_CM.so{,.1,.1.2.0}
|
||||
rm -f $PKG/usr/lib/libGLESv2.so{,.2,.2.1.0}
|
||||
rm -f $PKG/usr/lib/libGLX.so{,.0}
|
||||
rm -f $PKG/usr/lib/libGLdispatch.so.0
|
||||
rm -f $PKG/usr/lib/libOpenGL.so{,.0}
|
||||
fi
|
||||
# Don't ship .la files:
|
||||
# Don't ship .la files. Also, libOpenCL.so is now included
|
||||
# in current (in ocl-icd), so we don't need this one.
|
||||
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
|
||||
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
|
||||
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libOpenCL.so.1.0.0
|
||||
if [ "${COMPAT32}" = "yes" ]; then
|
||||
rm -f $PKG/usr/lib/*.la
|
||||
rm -f $PKG/usr/lib/libOpenCL.so.1.0.0
|
||||
fi
|
||||
else
|
||||
# Correct wrong paths in /usr/lib{,64}/libGL.la
|
||||
sed -i "s|$PKG||" $PKG/usr/lib${LIBDIRSUFFIX}/libGL.la
|
||||
if [ "${COMPAT32}" = "yes" ]; then
|
||||
# This one points to /usr/ instead of /usr/lib/, so we need to fix it anyway
|
||||
sed -i "s|$PKG/usr|/usr/lib|" $PKG/usr/lib/libGL.la
|
||||
fi
|
||||
# save libGL.la for 14.2
|
||||
cd $PKG/usr/lib$LIBDIRSUFFIX
|
||||
mv libGL.la libGL.la-nvidia
|
||||
cd -
|
||||
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
|
||||
if [ "${COMPAT32}" = "yes" ]; then
|
||||
cd $PKG/usr/lib
|
||||
mv libGL.la libGL.la-nvidia
|
||||
cd -
|
||||
fi
|
||||
# Bash script to cleanly install (in doinst.sh) and uninstall the nvidia files
|
||||
# so we don't stomp on the overlapping xorg files.
|
||||
# Bash script to cleanly install (in doinst.sh) and uninstall the nvidia
|
||||
# files so we don't stomp on the overlapping xorg files.
|
||||
# Note: switching can be problematic ;-)
|
||||
install -m 0755 $CWD/nvidia-switch $PKG/usr/sbin/
|
||||
sed -i s/PKGVERSION/$VERSION/g $PKG/usr/sbin/nvidia-switch
|
||||
sed -i s/LIBDIRSUFFIX/$LIBDIRSUFFIX/g $PKG/usr/sbin/nvidia-switch
|
||||
if [ "$GLVND" = "yes" ]; then
|
||||
sed -i s/GLVNDFLAG/yes/g $PKG/usr/sbin/nvidia-switch
|
||||
else
|
||||
sed -i s/GLVNDFLAG/no/g $PKG/usr/sbin/nvidia-switch
|
||||
fi
|
||||
if [ ${COMPAT32} = "yes" ]; then
|
||||
sed -i s/LIB32FLAG/yes/g $PKG/usr/sbin/nvidia-switch
|
||||
else
|
||||
|
@ -206,14 +207,6 @@ else
|
|||
fi
|
||||
fi
|
||||
|
||||
# add tls
|
||||
if [ "$ARCH" = "x86_64" -a "${COMPAT32}" = "yes" ]; then
|
||||
install -m 755 32/libnvidia-tls.so.$VERSION $PKG/usr/lib/tls/libnvidia-tls.so.$VERSION
|
||||
cd $PKG/usr/lib
|
||||
ln -sf tls/libnvidia-tls.so.$VERSION libnvidia-tls.so.$VERSION
|
||||
cd -
|
||||
fi
|
||||
|
||||
# Compile utilites from source, replacing the precompiled versions
|
||||
#
|
||||
# Compiling nvidia-settings
|
||||
|
@ -273,8 +266,8 @@ cd -
|
|||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
CFLAGS="$SLKCFLAGS" make
|
||||
|
||||
install -m 755 _out/Linux_$TARGET/nvidia-modprobe $PKG/usr/bin/
|
||||
# must be installed suid root for nvidia-persistenced to work properly
|
||||
install -m 4755 _out/Linux_$TARGET/nvidia-modprobe $PKG/usr/bin/
|
||||
install -m 644 _out/Linux_$TARGET/nvidia-modprobe.1.gz $PKG/usr/man/man1/
|
||||
cd -
|
||||
|
||||
|
@ -288,24 +281,16 @@ cd -
|
|||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
CFLAGS="$SLKCFLAGS" make
|
||||
#FIXME: need rc.nvidia-persistenced script; see doc
|
||||
install -m 755 _out/Linux_$TARGET/nvidia-persistenced $PKG/usr/bin/
|
||||
install -m 644 _out/Linux_$TARGET/nvidia-persistenced.1.gz $PKG/usr/man/man1/
|
||||
cd -
|
||||
|
||||
# These update or correct wrong paths
|
||||
# These update the paths in nvidia-settings.desktop
|
||||
sed -i "s|__UTILS_PATH__|/usr/bin|" $PKG/usr/share/applications/nvidia-settings.desktop
|
||||
sed -i "s|__PIXMAP_PATH__|/usr/share/pixmaps|" $PKG/usr/share/applications/nvidia-settings.desktop
|
||||
sed -i "s|__NVIDIA_SETTINGS_DESKTOP_CATEGORIES__|Application;Settings;|" $PKG/usr/share/applications/nvidia-settings.desktop
|
||||
|
||||
# Move ICDs to $PKG and cleanup (no switch option in installer?)
|
||||
mv /etc/OpenCL/vendors/nvidia.icd $PKG/etc/OpenCL/vendors/nvidia.icd
|
||||
mv /etc/vulkan/icd.d/nvidia_icd.json $PKG/etc/vulkan/icd.d/nvidia_icd.json
|
||||
mv /etc/vulkan/implicit_layer.d/nvidia_layers.json $PKG/etc/vulkan/implicit_layer.d/nvidia_layers.json
|
||||
rm -rf /etc/OpenCL
|
||||
rm -rf /etc/vulkan
|
||||
|
||||
# Remove xorg conf file since we take care of that in nvidia-driver
|
||||
# Remove xorg conf file since we handle that in nvidia-kernel
|
||||
rm -rf $PKG/etc/X11/xorg.conf.d
|
||||
|
||||
cd $TMP/$SRCNAM
|
||||
|
@ -319,8 +304,26 @@ cat $CWD/README > $PKG/usr/doc/$PRGNAM-$VERSION/README.Slackware
|
|||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
sed "s/PKGVERSION/$VERSION/g" $CWD/slack-desc > $PKG/install/slack-desc
|
||||
if [ "$COMPAT32" = "yes" ]; then
|
||||
sed -i "s|@MULTILIB@| This package includes the 32-bit libraries.|" $PKG/install/slack-desc
|
||||
else
|
||||
sed -i "s|@MULTILIB@||" $PKG/install/slack-desc
|
||||
fi
|
||||
|
||||
# Add rc.nvidia-persistenced:
|
||||
mkdir -p $PKG/var/run/nvidia-persistenced
|
||||
chown nvidia:nvidia $PKG/var/run/nvidia-persistenced
|
||||
mkdir -p $PKG/etc/rc.d
|
||||
cat $CWD/rc.nvidia-persistenced > $PKG/etc/rc.d/rc.nvidia-persistenced
|
||||
sed -i "s|__USER__|nvidia|" $PKG/etc/rc.d/rc.nvidia-persistenced
|
||||
|
||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||
|
||||
# 14.2 needs nvidia-switch, -current does not
|
||||
if [ "$CURRENT" = "no" ]; then
|
||||
echo -e "./usr/sbin/nvidia-switch --install\n" >> $PKG/install/doinst.sh
|
||||
fi
|
||||
|
||||
# Flag install as multlib as needed and build package.
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION$MULTI-$TARGET-$BUILD$TAG.${PKGTYPE:-tgz}
|
||||
|
|
|
@ -16,5 +16,5 @@ MD5SUM_x86_64="ba746d5b5f50369139bbed47da04aa74 \
|
|||
94b081b77eba7cfd2aa82ffda54cca90 \
|
||||
80a50eb9892588d57cca02b1822cddbd"
|
||||
REQUIRES="nvidia-kernel"
|
||||
MAINTAINER="Edward W. Koenig"
|
||||
EMAIL="kingbeowulf@gmail.com"
|
||||
MAINTAINER="Lenard Spencer"
|
||||
EMAIL="lenardrspencer@gmail.com"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright 2012-2019 Edward W. Koenig, Vancouver, WA, USA
|
||||
# Updates copyright 2020 Lenard Spencer, Orlando, FL, USA
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
|
@ -20,26 +21,26 @@
|
|||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# nvidia-switch utility 4.6
|
||||
# nvidia-switch utility 4.7.1
|
||||
#
|
||||
# A tool to install and cleanly remove the nvidia driver without stomping on the xorg files.
|
||||
# Note: this tool "should" allow switching on the fly, but why? Pick a driver! You will still
|
||||
# need to edit a bunch of other config files.
|
||||
# A tool to install and cleanly remove the nvidia driver without stomping
|
||||
# on the mesa files. Note: this tool "should" allow switching on the fly,
|
||||
# but why? Pick a driver! You will stilll need to edit a bunch of other
|
||||
# config files.
|
||||
|
||||
# TO-DO: needs more cleanup, simplify linking using system tools, add 15.0 fixes
|
||||
|
||||
ROOT="${ROOT:-/}"
|
||||
# When ROOT=<PATH> is specified when using {install,upgrade,remove}pkg,
|
||||
# PATH is usually specified without a trailing "/", so we need to add it
|
||||
if [ "$ROOT" = "" ]; then
|
||||
ROOT="${ROOT:-"/"}"
|
||||
else
|
||||
ROOT="${ROOT}/"
|
||||
fi
|
||||
CWD=$(pwd)
|
||||
COMPAT32="LIB32FLAG" # This will be replaced in the build script (yes | no)
|
||||
LIBSUFFIX="LIBDIRSUFFIX" # This will be replaced in the build script
|
||||
INC="${ROOT}usr/include/GL"
|
||||
LIB="${ROOT}usr/lib${LIBSUFFIX}"
|
||||
LIB32="${ROOT}usr/lib"
|
||||
XMOD="${LIB}/xorg/modules"
|
||||
XLIB="$XMOD/extensions"
|
||||
NV_VERSION="PKGVERSION" # This will be replaced in the build script
|
||||
GL_VERSION="1.2.0"
|
||||
GLVND="yes" # This will be replaced in the build script (yes | no)
|
||||
|
||||
save_GL(){
|
||||
# backup original mesa and xorg conflicts
|
||||
|
@ -48,11 +49,13 @@ save_GL(){
|
|||
"nvidia")
|
||||
mv libGL.la libGL.la-xorg
|
||||
mv libGL.la-nvidia libGL.la
|
||||
/sbin/ldconfig
|
||||
;;
|
||||
|
||||
"xorg")
|
||||
mv libGL.la libGL.la-nvidia
|
||||
mv libGL.la-xorg libGL.la
|
||||
/sbin/ldconfig
|
||||
;;
|
||||
|
||||
*)
|
||||
|
@ -66,8 +69,9 @@ save_GL(){
|
|||
nvidia_install(){
|
||||
echo $'Installing to nvidia-driver files!\n'
|
||||
echo "Make sure the nvidia driver is ENABLED in /etc/X11/xorg.conf"
|
||||
echo "and in /etc/X11/xorg.conf.d."
|
||||
echo "Otherwise, this may lead to improperly working drivers."
|
||||
echo "and/or in either /usr/share/X11/xorg.conf.d or"
|
||||
echo "/etc/X11/xorg.conf.d. Otherwise, this may lead to improperly"
|
||||
echo -e "working drivers.\n"
|
||||
|
||||
save_GL "nvidia" $LIB
|
||||
|
||||
|
@ -79,33 +83,29 @@ nvidia_install(){
|
|||
|
||||
nvidia_remove(){
|
||||
echo $'Returning to stock xorg files!\n'
|
||||
echo "Make sure the nvidia driver is DISABLED in /usr/share/X11/xorg.conf.d"
|
||||
echo "/etc/X11/xorg.conf and in /etc/X11/xorg.conf.d."
|
||||
echo "Make sure the nvidia driver is DISABLED in /etc/X11/xorg.conf"
|
||||
echo "and in /usr/share/X11/xorg.conf.d and /etc/X11/xorg.conf.d."
|
||||
echo "(Removing nvidia-kernelis recommended to accomplish this.)"
|
||||
echo "Otherwise, this may lead to improperly working drivers."
|
||||
echo -e "\nPlease run /sbin/ldconfing after removing nvidia-driver."
|
||||
|
||||
save_GL "xorg" $LIB
|
||||
# Check for multilib configuration
|
||||
if [ "$COMPAT32" = "yes" ]; then
|
||||
save_GL "xorg" $LIB32
|
||||
fi
|
||||
|
||||
if [ -e $NV_CONF ]; then
|
||||
echo "You will need to remove/save $NV_CONF from nvidia-driver to use"
|
||||
echo "any open source drivers."
|
||||
fi
|
||||
}
|
||||
|
||||
usage(){
|
||||
echo "Usage:"
|
||||
echo " --install Set up nvidia driver files (do not use!)"
|
||||
echo " --remove Return to stock xorg files and restore all symlinks"
|
||||
echo " --install Set up nvidia driver files and update symlinks"
|
||||
echo " --remove Return to stock xorg files and restore symlinks"
|
||||
echo " --help Show this help message"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"--install")
|
||||
nvidia_install
|
||||
|
||||
;;
|
||||
"--remove")
|
||||
nvidia_remove
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
#!/bin/sh -e
|
||||
#
|
||||
# NVIDIA Persistence Daemon Init Script
|
||||
#
|
||||
# Copyright (c) 2013 NVIDIA Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# This is a sample System V init script, designed to show how the NVIDIA
|
||||
# Persistence Daemon can be started.
|
||||
#
|
||||
# This sample does not rely on any init system functions, to ensure the
|
||||
# widest portability possible.
|
||||
#
|
||||
# chkconfig: 2345 99 01
|
||||
# description: Starts and stops the NVIDIA Persistence Daemon
|
||||
# processname: nvidia-persistenced
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: nvidia-persistenced
|
||||
# Required-Start: $ALL
|
||||
# Required-Stop: $ALL
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Description: Starts and stops the NVIDIA Persistence Daemon
|
||||
### END INIT INFO
|
||||
|
||||
|
||||
NVPD=nvidia-persistenced
|
||||
NVPD_BIN=/usr/bin/${NVPD}
|
||||
NVPD_RUNTIME=/var/run/${NVPD}
|
||||
NVPD_PIDFILE=${NVPD_RUNTIME}/${NVPD}.pid
|
||||
NVPD_USER=__USER__
|
||||
|
||||
if [ -f ${NVPD_PIDFILE} ]; then
|
||||
read -r NVPD_PID < "${NVPD_PIDFILE}"
|
||||
# Remove stale runtime files
|
||||
if [ "${NVPD_PID}" ] && [ ! -d /proc/${NVPD_PID} ]; then
|
||||
unset NVPD_PID
|
||||
rm -rf "${NVPD_RUNTIME}"
|
||||
fi
|
||||
fi
|
||||
|
||||
case "${1}" in
|
||||
start)
|
||||
echo "Starting NVIDIA Persistence Daemon"
|
||||
|
||||
# Execute the daemon as the intended user
|
||||
${NVPD_BIN} --user ${NVPD_USER}
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping NVIDIA Persistence Daemon"
|
||||
|
||||
# Stop the daemon - its PID should have been read in
|
||||
[ ! -z "${NVPD_PID}" ] && kill ${NVPD_PID} &> /dev/null
|
||||
;;
|
||||
restart)
|
||||
$0 stop
|
||||
sleep 2
|
||||
$0 start
|
||||
;;
|
||||
*) echo "usage: $0 {start|stop|restart}"
|
||||
esac
|
||||
exit 0
|
|
@ -15,5 +15,5 @@ nvidia-driver:
|
|||
nvidia-driver: See /usr/doc/nvidia-driver-PKGVERSION/README.Slackware
|
||||
nvidia-driver: for more information.
|
||||
nvidia-driver:
|
||||
nvidia-driver:
|
||||
nvidia-driver: https://www.nvidia.com
|
||||
nvidia-driver:
|
||||
|
|
Loading…
Reference in New Issue