Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 923720 - x11-drivers/nvidia-drivers-550.40.07 doesn't ship 32-bit nvidia-drm_gbm.so library despite abi_x86_32 being set
Summary: x11-drivers/nvidia-drivers-550.40.07 doesn't ship 32-bit nvidia-drm_gbm.so li...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal minor
Assignee: Ionen Wolkens
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-03 12:41 UTC by breaktrace
Modified: 2024-02-06 07:19 UTC (History)
2 users (show)

See Also:
Package list:
x11-drivers/nvidia-drivers-550.40.07
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description breaktrace 2024-02-03 12:41:43 UTC
=x11-drivers/nvidia-drivers-550.40.07 comes with 64-bit 
nvidia-drm_gbm.so in /usr/lib64/gbm/nvidia-drm_gbm.so but there's no 
32-bit /usr/lib/gbm/nvidia-drm_gbm.so library, despite that abi_x86_32 
is set in the USE flags. this affects CEF/Chromium applications like Steam and Gamescope which causes flickering and more visual bugs under Wayland.
I tried setting GBM_BACKENDS_PATH=/usr/lib64/gbm,/usr/lib/gbm in /etc/environment but that results in a black screen.

Portage 3.0.61 (python 3.11.7-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-13, glibc-2.38-r10, 6.7.2-gentoo-r1-cute x86_64)
=================================================================
System uname: Linux-6.7.2-gentoo-r1-cute-x86_64-Intel-R-_Pentium-R-_CPU_G4560_@_3.50GHz-with-glibc2.38
KiB Mem:    16316244 total,   7970496 free
KiB Swap:          0 total,         0 free
Head commit of repository gentoo: e8863cccd0e4f6dd4b4c6337417a56a1a37fcc04

Timestamp of repository guru: Fri, 02 Feb 2024 06:33:11 +0000
Head commit of repository guru: 1af9353e24db57f672ffe0a6fe32ad1bd18c9e9f

Timestamp of repository haarp: Wed, 31 Jan 2024 14:07:10 +0000
Head commit of repository haarp: be20f9b1f8efdfe4ac96f7c679afc27951010cae

Timestamp of repository pentoo: Fri, 02 Feb 2024 23:48:21 +0000
Head commit of repository pentoo: 3f353330b1451cc1b2739b45a471710194e1d4bc

Timestamp of repository steam-overlay: Wed, 31 Jan 2024 14:07:10 +0000
Head commit of repository steam-overlay: c872878fa2b1fec44985e08a3c20938221eb7ecf

sh bash 5.1_p16-r6
ld GNU ld (Gentoo 2.41 p4) 2.41.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.1_p16-r6::gentoo
dev-build/autoconf:        2.71-r6::gentoo
dev-build/automake:        1.16.5-r1::gentoo
dev-build/cmake:           3.27.9::gentoo
dev-build/libtool:         2.4.7-r1::gentoo
dev-build/make:            4.4.1-r1::gentoo
dev-build/meson:           1.3.0-r2::gentoo
dev-java/java-config:      2.3.3-r1::gentoo
dev-lang/perl:             5.38.2-r1::gentoo
dev-lang/python:           3.11.7::gentoo, 3.12.1_p1::gentoo
dev-lang/rust-bin:         1.74.1::gentoo
sys-apps/baselayout:       2.14-r1::gentoo
sys-apps/openrc:           0.53::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-devel/binutils:        2.41-r3::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           16.0.6::gentoo, 17.0.6::gentoo
sys-devel/gcc:             13.2.1_p20240113-r1::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/llvm:            16.0.6::gentoo, 17.0.6::gentoo
sys-kernel/linux-headers:  6.6::gentoo (virtual/os-headers)
sys-libs/glibc:            2.38-r10::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: github.com/gentoo/gentoo # hypertext transfer protocol URI removed, sorry
    priority: -1000
    volatile: False

guru
    location: /var/db/repos/guru
    sync-type: git
    sync-uri: github.com/gentoo-mirror/guru.git # hypertext transfer protocol URI removed, sorry
    masters: gentoo
    volatile: False

haarp
    location: /var/db/repos/haarp
    sync-type: git
    sync-uri: github.com/gentoo-mirror/haarp.git # hypertext transfer protocol URI removed, sorry
    masters: gentoo
    volatile: False

pentoo
    location: /var/db/repos/pentoo
    sync-type: git
    sync-uri: github.com/gentoo-mirror/pentoo.git # hypertext transfer protocol URI removed, sorry
    masters: gentoo
    volatile: False

steam-overlay
    location: /var/db/repos/steam-overlay
    sync-type: git
    sync-uri: github.com/gentoo-mirror/steam-overlay.git # hypertext transfer protocol URI removed, sorry
    masters: gentoo
    volatile: False

Binary Repositories:

gentoobinhost
    priority: 1
    sync-uri: gentoo.zero.com.ar/gentoo/releases/amd64/binpackages/17.1/x86-64 # hypertext transfer protocol URI removed, sorry

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live candy config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="distfiles.gentoo.org" # hypertext transfer protocol URI removed, sorry
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
MAKEOPTS="-j4 -l4"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="X a52 aac acl acpi activities alsa amd64 branding bzip2 cairo cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr elogind encode eudev exif flac fortran gdbm gif gpm gui iconv icu ipv4 ipv6 jpeg kde kf6compat kwallet lcms libnotify libtirpc mad mng mp3 mp4 mpeg multilib ncurses networkmanager nls ogg opengl openmp pam pango pcre pdf pipewire plasma png policykit ppds pulseaudio qml qt5 readline screencast sdl seccomp semantic-desktop sound spell split-usr ssl startup-notification svg test-rust tiff truetype udev udisks unicode upower usb vaapi vorbis vulkan wayland widgets wxwidgets x264 xattr xcb xft xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2 aes pclmul popcnt rdrand sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="intel i915 nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-02-03 12:54:44 UTC
(please don't cc arches)
Comment 2 Ionen Wolkens gentoo-dev 2024-02-03 12:58:16 UTC
First I hear of someone having issue with that.

For what it's worth, the (upstream) NVIDIA installer *also* does not create the 32bit symlink even if you ask it to install 32bit libraries. It also lack a 32bit egl-gbm. The ebuild is basically doing what upstream does.

Are you sure it's the cause of your issues and not just a message that happens to be displayed?

Given NVIDIA also doesn't ship with a 32bit version of egl-gbm, I'm not convinced it'd be usable even if the symlink exists (it may however silence load error messages, but not necessarily solve your problems).

Anyhow you can try it with:

mkdir -p /usr/lib/gbm && ln -s ../libnvidia-allocator.so.1 /usr/lib/gbm/nvidia-drm_gbm.so

If doing that doesn't help, then having the ebuild do it wouldn't help anything. If it does help, I don't mind manually doing the symlink.
Comment 3 breaktrace 2024-02-03 13:07:42 UTC
(In reply to Ionen Wolkens from comment #2)
> First I hear of someone having issue with that.
> 
> For what it's worth, the (upstream) NVIDIA installer *also* does not create
> the 32bit symlink even if you ask it to install 32bit libraries. It also
> lack a 32bit egl-gbm. The ebuild is basically doing what upstream does.
> 
> Are you sure it's the cause of your issues and not just a message that
> happens to be displayed?
> 
> Given NVIDIA also doesn't ship with a 32bit version of egl-gbm, I'm not
> convinced it'd be usable even if the symlink exists (it may however silence
> load error messages, but not necessarily solve your problems).
> 
> Anyhow you can try it with:
> 
> mkdir -p /usr/lib/gbm && ln -s ../libnvidia-allocator.so.1
> /usr/lib/gbm/nvidia-drm_gbm.so
> 
> If doing that doesn't help, then having the ebuild do it wouldn't help
> anything. If it does help, I don't mind manually doing the symlink.
I think it has to do with the unavailable 32-bit egl-gbm but I'm not really that sure, but flickering and graphical glitches take effect for some reason.
Also, I tried using your workaround and got this error:
MESA-LOADER: failed to open nvidia-drm: /usr/lib64/gbm/nvidia-drm_gbm.so: wrong ELF class: ELFCLASS64 (search paths /usr/lib64/gbm, suffix _gbm)
Comment 4 breaktrace 2024-02-03 13:14:30 UTC
(In reply to breaktrace from comment #3)
> (In reply to Ionen Wolkens from comment #2)
> > First I hear of someone having issue with that.
> > 
> > For what it's worth, the (upstream) NVIDIA installer *also* does not create
> > the 32bit symlink even if you ask it to install 32bit libraries. It also
> > lack a 32bit egl-gbm. The ebuild is basically doing what upstream does.
> > 
> > Are you sure it's the cause of your issues and not just a message that
> > happens to be displayed?
> > 
> > Given NVIDIA also doesn't ship with a 32bit version of egl-gbm, I'm not
> > convinced it'd be usable even if the symlink exists (it may however silence
> > load error messages, but not necessarily solve your problems).
> > 
> > Anyhow you can try it with:
> > 
> > mkdir -p /usr/lib/gbm && ln -s ../libnvidia-allocator.so.1
> > /usr/lib/gbm/nvidia-drm_gbm.so
> > 
> > If doing that doesn't help, then having the ebuild do it wouldn't help
> > anything. If it does help, I don't mind manually doing the symlink.
> I think it has to do with the unavailable 32-bit egl-gbm but I'm not really
> that sure, but flickering and graphical glitches take effect for some reason.
> Also, I tried using your workaround and got this error:
> MESA-LOADER: failed to open nvidia-drm: /usr/lib64/gbm/nvidia-drm_gbm.so:
> wrong ELF class: ELFCLASS64 (search paths /usr/lib64/gbm, suffix _gbm)
Sorry, I realized I just set the wrong file and path, I'm going to symlink properly in a sec
Comment 5 Ionen Wolkens gentoo-dev 2024-02-03 13:18:56 UTC
 (In reply to breaktrace from comment #3)
> I think it has to do with the unavailable 32-bit egl-gbm but I'm not really
> that sure, but flickering and graphical glitches take effect for some reason.
That it would cause flickering sound rather unlikely to me. I could understand if things just straight up didn't work, not "work badly".

(In reply to breaktrace from comment #4)
> (In reply to breaktrace from comment #3)
> Sorry, I realized I just set the wrong file and path, I'm going to symlink
> properly in a sec
Don't forget to get rid of GBM_BACKEND_PATHS if you still have it, that it's looking in lib64 sounds odd.
Comment 6 breaktrace 2024-02-03 13:23:52 UTC
(In reply to Ionen Wolkens from comment #5)
>  (In reply to breaktrace from comment #3)
> > I think it has to do with the unavailable 32-bit egl-gbm but I'm not really
> > that sure, but flickering and graphical glitches take effect for some reason.
> That it would cause flickering sound rather unlikely to me. I could
> understand if things just straight up didn't work, not "work badly".
> 
> (In reply to breaktrace from comment #4)
> > (In reply to breaktrace from comment #3)
> > Sorry, I realized I just set the wrong file and path, I'm going to symlink
> > properly in a sec
> Don't forget to get rid of GBM_BACKEND_PATHS if you still have it, that it's
> looking in lib64 sounds odd.
I got rid of GBM_BACKEND_PATHS in /etc/environment, but I got the same error again:
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: wrong ELF class: ELFCLASS64 (search paths /usr/lib/gbm, suffix _gbm)
I'm on a GTX 1050 and I was using KDE Plasma 5 and had flickering/graphical bugs on Steam, and also I got an "libEGL warning: egl: failed to create dri2 screen" error which is pretty awkward. I'm on KDE Plasma 6.0 RC2 now and the same issues occur.
Comment 7 Ionen Wolkens gentoo-dev 2024-02-03 13:30:26 UTC
Well I don't know what you're running into but, as far as this bug goes, it doesn't sound like adding the symlink would help then.

Perhaps it's even making things worse from the sound of it? Unless got a mess going from tinkering with this and it's hard to tell what's going on anymore.
Comment 8 Ionen Wolkens gentoo-dev 2024-02-03 14:51:32 UTC
wrt flickering, I do recall a few threads about 550 drivers (maybe 545 too, albeit I seen more reports about 550), e.g.
https://forums.developer.nvidia.com/t/280484/2

Not that I can do anything about that, you could either try nvidia-drivers-535 or go back to Xorg for now.

Note that 550 is a unkeyworded beta.
Comment 9 Ionen Wolkens gentoo-dev 2024-02-06 07:19:21 UTC
Well, I'll just go ahead and close this for now. Don't want to differ from what the official NVIDIA installer is doing without some confirmation that it's at least useful for something and not just a guess that it may or may not help (don't use/test steam myself).

Likewise for multilib egl-gbm (NVIDIA doesn't ship a 32bit version for it, but egl-gbm is open source so it'd be possible to build it -- but again, only if can get some confirmation that it's useful).

Imagine it may possibly(?) get used by wine now that it's getting native wayland support, but most/all other 32bit-only applications are old and wouldn't use wayland in the first place. Wine has the new alternate option to enable USE="wow64 -abi_x86_32" which doesn't need ELF multilib for 32bit too.