system/nvidia-driver: Fix issue with .la handling.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
ce472bac6d
commit
5711a98156
|
@ -21,8 +21,7 @@ man pages for details and usage.
|
||||||
|
|
||||||
For CUDA/OpenCL to work after reboot, and for utilites such as
|
For CUDA/OpenCL to work after reboot, and for utilites such as
|
||||||
nvidia-smi, you might need to include the following line in your
|
nvidia-smi, you might need to include the following line in your
|
||||||
/etc/rc.d/rc.local: (This is REQUIRED if you plan on using
|
/etc/rc.d/rc.local (This is REQUIRED for nvidia-persistenced to work):
|
||||||
nvidia-persistenced)
|
|
||||||
|
|
||||||
# Create missing nvidia device nodes after reboot
|
# Create missing nvidia device nodes after reboot
|
||||||
if [ -x /usr/bin/nvidia-modprobe ]; then
|
if [ -x /usr/bin/nvidia-modprobe ]; then
|
||||||
|
@ -39,9 +38,25 @@ Notes:
|
||||||
the kernel module).
|
the kernel module).
|
||||||
|
|
||||||
3. As of version 450.xx, Nvidia no longer includes libGL.la in their
|
3. As of version 450.xx, Nvidia no longer includes libGL.la in their
|
||||||
distribution package. On 14.2 ONLY, if you want to revert back to
|
distribution package. On 14.2 ONLY, nvidia-switch saves these
|
||||||
|
files to /var/log/nvidia/{32,64}:
|
||||||
|
|
||||||
|
libGL{,ESv1_CM,ESv2}.la
|
||||||
|
libGL.so.1.2.0
|
||||||
|
libGLESv1_cm.so.1.1.0
|
||||||
|
libGLESv2.so.2.0.0
|
||||||
|
|
||||||
|
It then modifies the .la files in /usr/lib{,64} to point to the
|
||||||
|
nvidia versions of these libraries. If you want to revert back to
|
||||||
the open source drivers, run 'nvidia-switch --remove' to restore
|
the open source drivers, run 'nvidia-switch --remove' to restore
|
||||||
the original libGL.la and then 'removepkg nvidia-driver' "should"
|
the original mesa librarieslibGL.la and then
|
||||||
work in most cases. If not, just go into /usr/lib{,64} (as root of
|
'removepkg nvidia-driver' "should" work in most cases. If you
|
||||||
course) and rename libGL.la-xorg to libGL.la.
|
forget to run nvidia-switch --remove, just copy the original files
|
||||||
|
saved in /var/log/nvidia/{32,64} back to /usr/lib{,64}.
|
||||||
(THIS STEP IS NO LONGER NECESSARY ON CURRENT.)
|
(THIS STEP IS NO LONGER NECESSARY ON CURRENT.)
|
||||||
|
|
||||||
|
4. (IMPORTANT ON 14.2) When it comes time to remove this package with
|
||||||
|
'removepkg' (or just about any other package for that matter), you
|
||||||
|
MUST run '/sbin/ldconfig' to restore any symlinks. This is due to
|
||||||
|
an omission in removepkg that failed to run ldconfig after removing
|
||||||
|
the package. (This has been corrected in current/15.0.)
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
PRGNAM=nvidia-driver
|
PRGNAM=nvidia-driver
|
||||||
VERSION=${VERSION:-450.80.02}
|
VERSION=${VERSION:-450.80.02}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-2}
|
||||||
TAG=${TAG:-_SBo}
|
TAG=${TAG:-_SBo}
|
||||||
|
|
||||||
CURRENT=${CURRENT:-no}
|
CURRENT=${CURRENT:-no}
|
||||||
|
@ -276,9 +276,9 @@ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
sed "s/PKGVERSION/$VERSION/g" $CWD/slack-desc > $PKG/install/slack-desc
|
sed "s/PKGVERSION/$VERSION/g" $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
if [ "$COMPAT32" = "yes" ]; then
|
if [ "$COMPAT32" = "yes" ]; then
|
||||||
sed -i "s|@MULTILIB@| This package includes the 32-bit libraries.|" $PKG/install/slack-desc
|
sed -i "s|nvidia-driver: @MULTILIB@|nvidia-driver: This package includes the 32-bit libraries.|" $PKG/install/slack-desc
|
||||||
else
|
else
|
||||||
sed -i "s|@MULTILIB@||" $PKG/install/slack-desc
|
sed -i "s|nvidia-driver: @MULTILIB@|nvidia-driver:|" $PKG/install/slack-desc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||||
|
|
|
@ -43,22 +43,20 @@ LIB="${ROOT}usr/lib${LIBSUFFIX}"
|
||||||
LIB32="${ROOT}usr/lib"
|
LIB32="${ROOT}usr/lib"
|
||||||
|
|
||||||
save_GL(){
|
save_GL(){
|
||||||
# backup original mesa conflict
|
# backup original mesa conflicts
|
||||||
cd $2
|
cd $2
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"nvidia")
|
"nvidia")
|
||||||
if [ -e libGL.la ]; then
|
cp libGL{,ES*}.la /var/log/nvidia/$3
|
||||||
mv libGL.la libGL.la-xorg
|
mv libGL{.so.1.2.0,ESv1_CM.so.1.1.0,ESv2.so.2.0.0} /var/log/nvidia/$3
|
||||||
fi
|
sed -i s/1.2.0/1.7.0/g libGL.la
|
||||||
/sbin/ldconfig
|
sed -i s/1.1.0/1.2.0/g libGLESv1_CM.la
|
||||||
|
sed -i s/2.0.0/2.1.0/g libGLESv2.la
|
||||||
;;
|
;;
|
||||||
|
|
||||||
"xorg")
|
"xorg")
|
||||||
if [ -e libGL.la-xorg ]; then
|
mv /var/log/nvidia/$3/* .
|
||||||
mv libGL.la-xorg libGL.la
|
;;
|
||||||
fi
|
|
||||||
/sbin/ldconfig
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "nothing to do for save_gl?"
|
echo "nothing to do for save_gl?"
|
||||||
|
@ -75,11 +73,14 @@ nvidia_install(){
|
||||||
echo "/etc/X11/xorg.conf.d. Otherwise, this may lead to improperly"
|
echo "/etc/X11/xorg.conf.d. Otherwise, this may lead to improperly"
|
||||||
echo -e "working drivers.\n"
|
echo -e "working drivers.\n"
|
||||||
|
|
||||||
save_GL "nvidia" $LIB
|
if [ "$LIBSUFFIX" = "64" ]; then
|
||||||
|
save_GL "nvidia" $LIB "64"
|
||||||
# Check for multilib configuration
|
# Check for multilib configuration
|
||||||
if [ "$COMPAT32" = "yes" ]; then
|
if [ "$COMPAT32" = "yes" ]; then
|
||||||
save_GL "nvidia" $LIB32
|
save_GL "nvidia" $LIB32 "32"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
save_GL "nvidia" $LIB "32"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,12 +89,16 @@ nvidia_remove(){
|
||||||
echo "Make sure the nvidia driver is DISABLED in /etc/X11/xorg.conf"
|
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 "and in /usr/share/X11/xorg.conf.d and /etc/X11/xorg.conf.d."
|
||||||
echo "Otherwise, this may lead to improperly working drivers."
|
echo "Otherwise, this may lead to improperly working drivers."
|
||||||
echo -e "\nPlease run /sbin/ldconfing after removing nvidia-driver.\n"
|
echo -e "\nPLEASE run /sbin/ldconfing after removing nvidia-driver.\n"
|
||||||
|
|
||||||
save_GL "xorg" $LIB
|
if [ "$LIBSUFFIX" = "64" ]; then
|
||||||
# Check for multilib configuration
|
save_GL "xorg" $LIB "64"
|
||||||
if [ "$COMPAT32" = "yes" ]; then
|
# Check for multilib configuration
|
||||||
save_GL "xorg" $LIB32
|
if [ "$COMPAT32" = "yes" ]; then
|
||||||
|
save_GL "xorg" $LIB32 "32"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
save_GL "xorg" $LIB "32"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,4 +16,4 @@ nvidia-driver: See /usr/doc/nvidia-driver-PKGVERSION/README.Slackware
|
||||||
nvidia-driver: for more information.
|
nvidia-driver: for more information.
|
||||||
nvidia-driver:
|
nvidia-driver:
|
||||||
nvidia-driver: https://www.nvidia.com
|
nvidia-driver: https://www.nvidia.com
|
||||||
nvidia-driver:
|
nvidia-driver: @MULTILIB@
|
||||||
|
|
Loading…
Reference in New Issue