system/nvidia-driver: Update script.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Lenard Spencer 2020-05-09 08:12:01 +07:00 committed by Willy Sudiarto Raharjo
parent 9731445ce9
commit f36574e028
No known key found for this signature in database
GPG Key ID: 887B8374D7333381
4 changed files with 50 additions and 31 deletions

View File

@ -27,12 +27,14 @@ you might need to include the following line in your /etc/rc.d/rc.local:
/usr/bin/nvidia-modprobe -c 0 -u
Notes:
1. You still need to blacklist the opensource nouveau driver. This is
easily done by installing xf86-video-nouveau-blacklist-noarch-1.txz
in extra/xf86-video-nouveau-blacklist on the distibution DVD.
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.
1. You still need to blacklist the open source nouveau driver. This is
easily done by installing xf86-video-nouveau-blacklist in
extra/xf86-video-nouveau-blacklist on the distibution DVD.
2. If nvidia-driver is already installed, the script will abort with a
prompt to remove the existing driver (it is not necessary to remove
the kernel module).
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,

View File

@ -1,3 +1,9 @@
The NVIDIA Persistence Daemon is a userspace daemon on Linux to support
persistence of driver state across Cuda job runs. The daemon targets all
current Tesla, Quadro and GRID GPUs. For further information, see
https://docs.nvidia.com/deploy/driver-persistence/index.html
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.

View File

@ -28,7 +28,7 @@
PRGNAM=nvidia-driver
VERSION=${VERSION:-440.82}
BUILD=${BUILD:-1}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
CURRENT=${CURRENT:-no}
@ -93,8 +93,6 @@ rm -rf nvidia-xconfig-$VERSION
tar xvf $CWD/nvidia-xconfig-$VERSION.tar.bz2
rm -rf nvidia-modprobe-$VERSION.tar.bz2
tar xvf $CWD/nvidia-modprobe-$VERSION.tar.bz2
rm -rf nvidia-persistenced-$VERSION.tar.bz2
tar xvf $CWD/nvidia-persistenced-$VERSION.tar.bz2
sh $CWD/$SRCNAM.run --extract-only
cd $SRCNAM
chown -R root:root .
@ -162,7 +160,6 @@ cd $TMP/$SRCNAM
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
@ -275,20 +272,6 @@ cd -
install -m 644 _out/Linux_$TARGET/nvidia-modprobe.1.gz $PKG/usr/man/man1/
cd -
# Compiling nvidia-persistenced
cd $TMP/nvidia-persistenced-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" make
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 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
@ -314,8 +297,31 @@ else
sed -i "s|@MULTILIB@||" $PKG/install/slack-desc
fi
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
# Add rc.nvidia-persistenced:
if [ "${PERSISTENCED:-no}" = "yes" ]; then
cd $TMP
rm -rf nvidia-persistenced-$VERSION.tar.bz2
tar xvf $CWD/nvidia-persistenced-$VERSION.tar.bz2
# Compiling nvidia-persistenced
cd $TMP/nvidia-persistenced-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" make
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/
if ! getent group nvidia > /dev/null 2>&1; then
echo "Creating the group nvidia:"
groupadd -g 365 nvidia || exit 1
@ -329,13 +335,18 @@ if [ "${PERSISTENCED:-no}" = "yes" ]; then
mkdir -p $PKG/etc/rc.d
install -m 755 $CWD/rc.nvidia-persistenced $PKG/etc/rc.d/rc.nvidia-persistenced
sed -i "s|__USER__|nvidia|" $PKG/etc/rc.d/rc.nvidia-persistenced
cat <<EOF >> $PKG/install/doinst.sh
# Create group and user nvidia if they don't already exist
if ! getent group nvidia > /dev/null 2>&1; then
echo "Creating the group nvidia:"
groupadd -g 365 nvidia || exit 1
fi
if ! getent passwd nvidia > /dev/null 2>&1; then
echo "Creating the user nvidia:"
useradd -u 365 -g 365 -c "Nvidia" -d /dev/null -s /bin/false nvidia || exit 1
fi
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
EOF
fi
# Flag multlib as needed and build package.

View File

@ -43,7 +43,7 @@ LIB="${ROOT}usr/lib${LIBSUFFIX}"
LIB32="${ROOT}usr/lib"
save_GL(){
# backup original mesa and xorg conflicts
# backup original mesa conflict
cd $2
case "$1" in
"nvidia")
@ -90,7 +90,7 @@ nvidia_remove(){
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."
echo -e "\nPlease run /sbin/ldconfing after removing nvidia-driver.\n"
save_GL "xorg" $LIB
# Check for multilib configuration