You are not logged in.
I think the proper solution is to create /etc/ld.so.conf.d/nvidia.conf containing: "/usr/lib/tls"
Yes, this worked for me.
Amazing work Piezoid, much appreciated!
Offline
What if we modify line 150 of this PKGBUILD:
https://aur.archlinux.org/cgit/aur.git/ … 90xx-utils
So that this nvidia-tls library is used instead of the one that doesn't work anymore ?
Offline
Workaround Solution Posted by Plezo at: https://aur.archlinux.org/pkgbase/nvidia-390xx-utils
Absolutely brilliant, Plezo in a comment on the nvidia-390xx-utils AUR package provided a solution: "found a fix: adding /usr/lib/tls to the dynamic linker search path (echo "/usr/lib/tls" > /etc/ld.so.conf.d/nvidia.conf ; ldconfig), or replacing /usr/lib/libnvidia-tls.so* with /usr/lib/tls/libnvidia-tls.so*"
Last edited by drankinatty (2023-02-09 06:41:33)
David C. Rankin, J.D.,P.E.
Offline
@canolucas yes as you suggested the following would work
it diff
diff --git a/PKGBUILD b/PKGBUILD
index f8ac3e9..b23542e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -147,8 +147,7 @@ package_nvidia-390xx-utils() {
install -Dm755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
# nvidia-tls library
- install -Dm755 "libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
- install -Dm755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/tls/libnvidia-tls.so.${pkgver}"
+ install -Dm755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
# CUDA
install -Dm755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
Offline
Workaround Solution Posted by Plezo at: https://aur.archlinux.org/pkgbase/nvidia-390xx-utils
Can confirm, this works! Very appreciated, Piezoid!
Offline
jonathon was the mantainer of this package, sadly on 11/25/22 he passed away. I think there is a new mantainer assigned, so I suppose we will need to let him know of these findings and proposed solution. To either create /etc/ld.so.conf.d/nvidia.conf or modify line 150/151 of the pkgbuild so that the new library gets loaded instead of the one that stopped working. As long as Xorg gets up and running on startup, either solution works fine for me
Last edited by canolucas (2023-02-09 14:17:32)
Offline
@Piezoid You're the man.
I was only able to figure out it had something to do with GLX since it's the last thing bumblebee's secondary Xorg server logs in /var/log/Xorg.8.log before crashing (putting that here for people to find this thread) :
(II) Initializing extension DRI2
(II) Initializing extension GLX
(II) Indirect GLX disabled.
For some reasons, the fix using the dynamic linker does not work for me but backing up /usr/lib/libnvidia-tls.so* and manually linking to the libs in the tls folder does (yikes, I know).
My condolences for jonathon. Let's wait for the new maintainer to propose the solution.
Sad to see the 390xx get discontinued. I'm still using my 11 year old N76VM with a GT630M as a daily driver.
I guess we'll have to get used to such issues happening in the near future, and maybe spend some time trying to make optirun work with nouveau (I never could).
Offline
@Piezoid thanks! You saved my edgy rolling arch workday on historic equipment! Pretty sure this GPU will do another 10yrs!
PS: thanks for pointing out your quite instructive technique to track down the issue!
The ships hung in the sky in much the same way that bricks don't. - Douglas Adams
Offline
I think the proper solution is to create /etc/ld.so.conf.d/nvidia.conf containing: "/usr/lib/tls". After running ldconfig as root, Xorg restarted fine.
loqs wrote:@Piezoid What if you replace /usr/lib/libnvidia-tls.so with /usr/lib/tls/libnvidia-tls.so?
This seems to work too!
Old glibc was resolving it this way:
find library=libnvidia-tls.so.390.157 [0]; searching search path=/usr/local/lib (LD_LIBRARY_PATH) trying file=/usr/local/lib/libnvidia-tls.so.390.157 search cache=/etc/ld.so.cache trying file=/usr/lib/tls/libnvidia-tls.so.390.157
So the /usr/lib/tls/libnvidia-tls.so was taking precedence over /usr/lib/libnvidia-tls.so.
From https://download.nvidia.com/XFree86/Lin … nents.html :
The nvidia-tls libraries (/usr/lib/libnvidia-tls.so.390.157 and /usr/lib/tls/libnvidia-tls.so.390.157); these files provide thread local storage support for the NVIDIA OpenGL libraries (libGL, libnvidia-glcore, and libglx). Each nvidia-tls library provides support for a particular thread local storage model (such as ELF TLS), and the one appropriate for your system will be loaded at run time.
So I guess that the most "modern" one is /usr/lib/tls/libnvidia-tls.so?
Thank you. This worked for me too on nvidia-340xx
Offline