"Internal error" when installing 450.66 w/Linux 5.8.0

Hi everyone,

I hope I can get some direction on an issue.

I am on a rolling Linux distribution[1].

Typically on a new kernel drop I download the latest NVIDIA Linux, short-term bits and re-install the GFX driver.

After the Linux 5.8.x drop, the NVIDIA install fails.

I gathered some debugging information from the underlying shell script and it exists with code=139 and no error message. :\

Any thoughts?

# sh -x ./libglvnd_install_checker/check-libglvnd-install.sh 
+ RESULT_INSTALLED=0
+ RESULT_NOT_INSTALLED=1
+ RESULT_PARTIAL=2
+ RESULT_ERROR=3
+ TEST_EXIT_CODE_SUCCESS=0
+ TEST_EXIT_CODE_NON_LIBGLVND=1
+ TEST_EXIT_CODE_VERSION_MISMATCH=2
+ TEST_EXIT_CODE_NO_LIBRARY=3
+ TEST_EXIT_CODE_INTERNAL_ERROR=4
++ readlink -f ./libglvnd_install_checker/check-libglvnd-install.sh
+ BASEDIR=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/check-libglvnd-install.sh
++ dirname /var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/check-libglvnd-install.sh
+ BASEDIR=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
+ BINDIR=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
+ HELPER_PROGRAM=glvnd_check
+ __EGL_VENDOR_LIBRARY_FILENAMES=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/egl_dummy_vendor.json
+ __GLX_VENDOR_LIBRARY_NAME=installcheck
+ export __GLX_VENDOR_LIBRARY_NAME
+ export __EGL_VENDOR_LIBRARY_FILENAMES
+ '[' '!' -e /var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/egl_dummy_vendor.json ']'
+ MISSING_LIBRARIES=
+ INVALID_LIBRARIES=
+ LIBGLVND_LIBRARIES=
+ NON_LIBGLVND_LIBRARIES=
+ check_libglvnd_winsys glx libGL.so.1
++ LD_LIBRARY_PATH=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker:/usr/local/lib
++ /var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check glx libGL.so.1
+ result='ERROR Can'\''t load libGL.so.1: libnvidia-tls.so.390.87: cannot open shared object file: No such file or directory'
+ code=3
+ case $code in
+ MISSING_LIBRARIES='libGL.so.1 '
+ return 3
+ check_libglvnd_winsys glx libGLX.so.0
++ LD_LIBRARY_PATH=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker:/usr/local/lib
++ /var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check glx libGLX.so.0
+ result='PATH /usr/lib64/libGLX.so.0
CLIENT_STRING libglvnd (no display specified)
LIBGLVND_ABI 1 0 1 0'
+ code=0
+ case $code in
+ LIBGLVND_LIBRARIES='libGLX.so.0 '
+ return 0
+ check_libglvnd_winsys egl libEGL.so.1
++ LD_LIBRARY_PATH=/var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker:/usr/local/lib
++ /var/tmp/selfgz3145/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check egl libEGL.so.1
+ result=
+ code=139
+ case $code in
+ echo Internal error:
Internal error:
+ echo ''

+ exit 3

References

  1. openSUSE Tumbleweed

I think this error indicates that you have some, but not all, of the components of the 390.87 driver installed somewhere. Please locate and remove any distribution packages providing old driver files and then try again.

Hi aplattner,

Thank you for your analysis and response. You helped me solve the issue. :)

Using find / -name libGL.so.1 I found a dead libGL.so.1. I confirmed the bad reference to 390.87 using ldd. After I removed the files (I found a couple), everything is working swimmingly.

1 Like

Hi

On the same setup (kernel 5.8 and driver 450.66, openSUSE) have a similar issue with check-libglvnd-install.sh

# sh -x check-libglvnd-install.sh
+ RESULT_INSTALLED=0
+ RESULT_NOT_INSTALLED=1
+ RESULT_PARTIAL=2
+ RESULT_ERROR=3
+ TEST_EXIT_CODE_SUCCESS=0
+ TEST_EXIT_CODE_NON_LIBGLVND=1
+ TEST_EXIT_CODE_VERSION_MISMATCH=2
+ TEST_EXIT_CODE_NO_LIBRARY=3
+ TEST_EXIT_CODE_INTERNAL_ERROR=4
++ readlink -f check-libglvnd-install.sh
+ BASEDIR=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/check-libglvnd-install.sh
++ dirname /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/check-libglvnd-install.sh
+ BASEDIR=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
+ BINDIR=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
+ HELPER_PROGRAM=glvnd_check
+ __EGL_VENDOR_LIBRARY_FILENAMES=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/egl_dummy_vendor.json
+ __GLX_VENDOR_LIBRARY_NAME=installcheck
+ export __GLX_VENDOR_LIBRARY_NAME
+ export __EGL_VENDOR_LIBRARY_FILENAMES
+ '[' '!' -e /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/egl_dummy_vendor.json ']'
+ MISSING_LIBRARIES=
+ INVALID_LIBRARIES=
+ LIBGLVND_LIBRARIES=
+ NON_LIBGLVND_LIBRARIES=
+ check_libglvnd_winsys glx libGL.so.1
++ LD_LIBRARY_PATH=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
++ /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check glx libGL.so.1
+ result='PATH /usr/lib64/libGL.so.1
CLIENT_STRING libglvnd (no display specified)
LIBGLVND_ABI 1 0 1 0'
+ code=0
+ case $code in
+ LIBGLVND_LIBRARIES='libGL.so.1 '
+ return 0
+ check_libglvnd_winsys glx libGLX.so.0
++ LD_LIBRARY_PATH=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
++ /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check glx libGLX.so.0
+ result='PATH /usr/lib64/libGLX.so.0
CLIENT_STRING libglvnd (no display specified)
LIBGLVND_ABI 1 0 1 0'
+ code=0
+ case $code in
+ LIBGLVND_LIBRARIES='libGLX.so.0 libGL.so.1 '
+ return 0
+ check_libglvnd_winsys egl libEGL.so.1
++ LD_LIBRARY_PATH=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
++ /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check egl libEGL.so.1
+ result='PATH /usr/lib64/libEGL.so.1
CLIENT_STRING 1.5 libglvnd
LIBGLVND_ABI 0 1 0 1'
+ code=0
+ case $code in
+ LIBGLVND_LIBRARIES='libEGL.so.1 libGLX.so.0 libGL.so.1 '
+ return 0
+ '[' 0 -eq 0 ']'
+ check_libglvnd_winsys gl libOpenGL.so.0
++ LD_LIBRARY_PATH=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
++ /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check gl libOpenGL.so.0
+ result='PATH /usr/lib64/libOpenGL.so.0'
+ code=0
+ case $code in
+ LIBGLVND_LIBRARIES='libOpenGL.so.0 libEGL.so.1 libGLX.so.0 libGL.so.1 '
+ return 0
+ check_libglvnd_winsys gl libGLESv1_CM.so.1
++ LD_LIBRARY_PATH=/home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker
++ /home/maksym/Downloads/NVIDIA-Linux-x86_64-450.66/libglvnd_install_checker/glvnd_check gl libGLESv1_CM.so.1
+ result=
+ code=139
+ case $code in
+ echo Internal error:
Internal error:
+ echo ''

+ exit 3

and output of glvnd_check

./glvnd_check gl libGLESv1_CM.so.1
PATH /usr/lib64/libGLESv1_CM.so.1
ERROR eglGetPlatformDisplay failed

Thank you in advance for your help.

1 Like

I have the same error on opensuse 15.2. The last driver I can install is 440.100. All 450.x ad 455.x drivers fail to install with the glvnd_check/eglGetPlatformDisplay error.

According to openSUSE Tumbleweed 5.8.7 内核安装 NVIDIA 450.66 官方驱动的解决方案 - 硬件驱动 - openSUSE 中文论坛, there is a bug in check_libglvnd_winsys() in check-libglvnd-install.sh. Can someone from NVIDIA verify this? Much appreciated in advance.

The alternative workaround is to delete libs:

rm /usr/lib64/libGLESv1_CM.so.1
rm /usr/lib64/libGLESv2.so.2