servo icon indicating copy to clipboard operation
servo copied to clipboard

Error when running egl function was not loaded 0.0.1-d7d0451 2024-02-05 i cannot run on Fedora Silverblue or Bazzite on X11

Open yodatak opened this issue 1 year ago • 15 comments

Hello i got this error on nvidia GPU, X11 and gnome VRR

 ./servo                                                            
egl function was not loaded (thread main, at /home/runner/work/servo/servo/target/production/build/surfman-4d98480c7267738a/out/egl_bindings.rs:284)
./servo --version                                                                             
Servo 0.0.1-d7d045

Thanks again for make servo a good engine !

Rapport d’informations du système


Détails du compte rendu

  • Date de génération : 2024-02-06 15:50:38

Hardware Information:

  • Modèle du matériel : MSI MS-7866
  • Mémoire : 24,0 Gio
  • Processeur : Intel® Core™ i7-4770K × 8
  • Carte graphique : NVIDIA GeForce RTX™ 3060
  • Capacité du disque : 3,4 To

Software Information:

  • Version du micrologiciel : V1.5
  • Nom du système d’exploitation : Fedora Linux 39.20240205.0 (Bazzite GNOME)
  • Construction du système d’exploitation : (null)
  • Type de système d’exploitation : 64 bits
  • Version de GNOME : 45.3
  • Système de fenêtrage : X11
  • Version du noyau : Linux 6.6.14-202.fsync.fc39.x86_64

yodatak avatar Feb 06 '24 14:02 yodatak

I'm interested in help to debug this if needed i got nvidia proprietary driver and its sooo present for linux gamers

yodatak avatar Feb 06 '24 15:02 yodatak

But with manualy compiled in dev mode i got it working do you want me to give the binnary or the cargo.lock ?

yodatak avatar Feb 06 '24 16:02 yodatak

So ./mach build --production does not work but ./mach build --debug does?

sagudev avatar Feb 06 '24 17:02 sagudev

sudo dnf install mesa-libEGL-devel may help too.

sagudev avatar Feb 06 '24 18:02 sagudev

./mach build --production

I try now to build in production and test

yodatak avatar Feb 08 '24 20:02 yodatak

When i compile the binary from my computer its work with: ./mach build --production /var/home/yodatak/Projets/public/servo/target/production/servo --version Servo 0.0.1-036bca6 file /var/home/yodatak/Projets/public/servo/target/production/servo
/var/home/yodatak/Projets/public/servo/target/production/servo: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=48a50c7686ee44f32ecaa5991f7d5acaa6d7ad53, for GNU/Linux 3.2.0, with debug_info, not stripped

ldd /var/home/yodatak/Projets/public/servo/target/production/servo
linux-vdso.so.1 (0x00007ffeb3bed000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f44f87fa000) libgstbase-1.0.so.0 => /lib64/libgstbase-1.0.so.0 (0x00007f44f8776000) libgstplayer-1.0.so.0 => /lib64/libgstplayer-1.0.so.0 (0x00007f44f8762000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f44f26b6000) libgstvideo-1.0.so.0 => /lib64/libgstvideo-1.0.so.0 (0x00007f44f25ea000) libgstreamer-1.0.so.0 => /lib64/libgstreamer-1.0.so.0 (0x00007f44f249a000) libgstwebrtc-1.0.so.0 => /lib64/libgstwebrtc-1.0.so.0 (0x00007f44f874c000) libgstsdp-1.0.so.0 => /lib64/libgstsdp-1.0.so.0 (0x00007f44f8731000) libgstaudio-1.0.so.0 => /lib64/libgstaudio-1.0.so.0 (0x00007f44f241a000) libgstapp-1.0.so.0 => /lib64/libgstapp-1.0.so.0 (0x00007f44f871c000) libgstgl-1.0.so.0 => /lib64/libgstgl-1.0.so.0 (0x00007f44f2393000) libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f44f21bd000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f44f1e00000) libz.so.1 => /lib64/libz.so.1 (0x00007f44f8700000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f44f2168000) libunwind-x86_64.so.8 => /lib64/libunwind-x86_64.so.8 (0x00007f44f214c000) libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f44f1cf2000) libX11.so.6 => /lib64/libX11.so.6 (0x00007f44f1bab000) libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f44f20fd000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f44f1adb000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f44f20d9000) libm.so.6 => /lib64/libm.so.6 (0x00007f44f19fa000) libc.so.6 => /lib64/libc.so.6 (0x00007f44f1818000) /lib64/ld-linux-x86-64.so.2 (0x00007f44f8875000) libffi.so.8 => /lib64/libffi.so.8 (0x00007f44f20c9000) libgstplay-1.0.so.0 => /lib64/libgstplay-1.0.so.0 (0x00007f44f20a8000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f44f177d000) liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00007f44f16e7000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f44f20a1000) libunwind.so.8 => /lib64/libunwind.so.8 (0x00007f44f2087000) libdw.so.1 => /lib64/libdw.so.1 (0x00007f44f164b000) libgstrtp-1.0.so.0 => /lib64/libgstrtp-1.0.so.0 (0x00007f44f2057000) libgstpbutils-1.0.so.0 => /lib64/libgstpbutils-1.0.so.0 (0x00007f44f1608000) libgsttag-1.0.so.0 => /lib64/libgsttag-1.0.so.0 (0x00007f44f15c7000) libgstallocators-1.0.so.0 => /lib64/libgstallocators-1.0.so.0 (0x00007f44f15c0000) libEGL.so.1 => /lib64/libEGL.so.1 (0x00007f44f15ae000) libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f44f157b000) libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007f44f156a000) libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007f44f1560000) libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007f44f155b000) libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f44f1556000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f44f152b000) libgudev-1.0.so.0 => /lib64/libgudev-1.0.so.0 (0x00007f44f151c000) libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f44f1505000) libgbm.so.1 => /lib64/libgbm.so.1 (0x00007f44f14f4000) libmount.so.1 => /lib64/libmount.so.1 (0x00007f44f14a3000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f44f1476000) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f44f1381000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f44f1360000) libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f44f11ec000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f44f11d8000) libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f44f119f000) libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f44f118f000) libelf.so.1 => /lib64/libelf.so.1 (0x00007f44f1172000) libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f44f10b6000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f44f1083000) libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f44f0fcb000) libXext.so.6 => /lib64/libXext.so.6 (0x00007f44f0fb5000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f44f0faf000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f44f0f77000) libwayland-server.so.0 => /lib64/libwayland-server.so.0 (0x00007f44f0f60000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f44f0f35000) libxcb-randr.so.0 => /lib64/libxcb-randr.so.0 (0x00007f44f0f21000) libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f44f0ee5000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f44f0edb000) liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f44f0eb9000) libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f44f0e96000)

and ./mach build --debug i got var/home/yodatak/Projets/public/servo/target/debug/servo --version
Servo 0.0.1-036bca6 file /var/home/yodatak/Projets/public/servo/target/debug/servo
/var/home/yodatak/Projets/public/servo/target/debug/servo: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=af86ace88f1df4c8e97ed265652cf5e04fe35bb2, for GNU/Linux 3.2.0, with debug_info, not stripped

ldd /var/home/yodatak/Projets/public/servo/target/debug/servo
linux-vdso.so.1 (0x00007ffd57d49000) libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f6b11da0000) libgstbase-1.0.so.0 => /lib64/libgstbase-1.0.so.0 (0x00007f6b11d1c000) libgstplayer-1.0.so.0 => /lib64/libgstplayer-1.0.so.0 (0x00007f6b1de87000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f6b11bd2000) libgstvideo-1.0.so.0 => /lib64/libgstvideo-1.0.so.0 (0x00007f6b11b06000) libgstreamer-1.0.so.0 => /lib64/libgstreamer-1.0.so.0 (0x00007f6b119b6000) libgstwebrtc-1.0.so.0 => /lib64/libgstwebrtc-1.0.so.0 (0x00007f6b1de71000) libgstsdp-1.0.so.0 => /lib64/libgstsdp-1.0.so.0 (0x00007f6b1de56000) libgstaudio-1.0.so.0 => /lib64/libgstaudio-1.0.so.0 (0x00007f6b11936000) libgstapp-1.0.so.0 => /lib64/libgstapp-1.0.so.0 (0x00007f6b11921000) libgstgl-1.0.so.0 => /lib64/libgstgl-1.0.so.0 (0x00007f6b1189a000) libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f6b116c4000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f6b11400000) libz.so.1 => /lib64/libz.so.1 (0x00007f6b116aa000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f6b11655000) libunwind-x86_64.so.8 => /lib64/libunwind-x86_64.so.8 (0x00007f6b113e4000) libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f6b112d6000) libX11.so.6 => /lib64/libX11.so.6 (0x00007f6b1118f000) libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f6b11140000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f6b11070000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6b1104c000) libm.so.6 => /lib64/libm.so.6 (0x00007f6b10f6b000) libc.so.6 => /lib64/libc.so.6 (0x00007f6b10d89000) /lib64/ld-linux-x86-64.so.2 (0x00007f6b1deb6000) libffi.so.8 => /lib64/libffi.so.8 (0x00007f6b10d79000) libgstplay-1.0.so.0 => /lib64/libgstplay-1.0.so.0 (0x00007f6b10d58000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f6b10cbd000) liborc-0.4.so.0 => /lib64/liborc-0.4.so.0 (0x00007f6b10c27000) libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f6b1de49000) libunwind.so.8 => /lib64/libunwind.so.8 (0x00007f6b10c0d000) libdw.so.1 => /lib64/libdw.so.1 (0x00007f6b10b71000) libgstrtp-1.0.so.0 => /lib64/libgstrtp-1.0.so.0 (0x00007f6b10b3f000) libgstpbutils-1.0.so.0 => /lib64/libgstpbutils-1.0.so.0 (0x00007f6b10afc000) libgsttag-1.0.so.0 => /lib64/libgsttag-1.0.so.0 (0x00007f6b10abb000) libgstallocators-1.0.so.0 => /lib64/libgstallocators-1.0.so.0 (0x00007f6b10ab4000) libEGL.so.1 => /lib64/libEGL.so.1 (0x00007f6b10aa2000) libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f6b10a6d000) libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x00007f6b10a5c000) libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x00007f6b10a52000) libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x00007f6b10a4d000) libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f6b10a48000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f6b10a1d000) libgudev-1.0.so.0 => /lib64/libgudev-1.0.so.0 (0x00007f6b10a0e000) libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f6b109f7000) libgbm.so.1 => /lib64/libgbm.so.1 (0x00007f6b109e6000) libmount.so.1 => /lib64/libmount.so.1 (0x00007f6b10995000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6b10968000) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f6b10873000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f6b10852000) libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f6b106de000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f6b106ca000) libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f6b10691000) libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f6b10681000) libelf.so.1 => /lib64/libelf.so.1 (0x00007f6b10664000) libzstd.so.1 => /lib64/libzstd.so.1 (0x00007f6b105a8000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f6b10575000) libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f6b104bd000) libXext.so.6 => /lib64/libXext.so.6 (0x00007f6b104a7000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f6b104a1000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f6b10469000) libwayland-server.so.0 => /lib64/libwayland-server.so.0 (0x00007f6b10452000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6b10427000) libxcb-randr.so.0 => /lib64/libxcb-randr.so.0 (0x00007f6b10413000) libblkid.so.1 => /lib64/libblkid.so.1 (0x00007f6b103d7000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f6b103cd000) liblz4.so.1 => /lib64/liblz4.so.1 (0x00007f6b103ab000) libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f6b10388000)

But it don't work if i run the servo already compiled from your website it failed file /var/home/yodatak/Téléchargements/servo-latest/servo/servo
/var/home/yodatak/Téléchargements/servo-latest/servo/servo: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a5e87ee96ba3cb81d0acbcd2c40563d99e9e6d5f, for GNU/Linux 3.2.0, with debug_info, not stripped

./servo
egl function was not loaded (thread main, at /home/runner/work/servo/servo/target/production/build/surfman-4d98480c7267738a/out/egl_bindings.rs:284)

ldd /var/home/yodatak/Téléchargements/servo-latest/servo/servo
linux-vdso.so.1 (0x00007fffe27fd000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fa1ed545000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fa1e7200000) libz.so.1 => /lib64/libz.so.1 (0x00007fa1e75cd000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fa1e7578000) libunwind-x86_64.so.8 => /lib64/libunwind-x86_64.so.8 (0x00007fa1e755c000) libunwind.so.8 => /lib64/libunwind.so.8 (0x00007fa1e7542000) libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007fa1e70f2000) libX11.so.6 => /lib64/libX11.so.6 (0x00007fa1e6fab000) libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007fa1e74f3000) librt.so.1 => /lib64/librt.so.1 (0x00007fa1ed53e000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa1ed539000) libm.so.6 => /lib64/libm.so.6 (0x00007fa1e6eca000) libc.so.6 => /lib64/libc.so.6 (0x00007fa1e6ce8000) /lib64/ld-linux-x86-64.so.2 (0x00007fa1ed54c000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fa1e74cf000) libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007fa1e6bf5000) libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fa1e6aab000) libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007fa1e69db000) libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007fa1e74ac000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007fa1e7481000) libxml2.so.2 => /lib64/libxml2.so.2 (0x00007fa1e6867000) libcap.so.2 => /lib64/libcap.so.2 (0x00007fa1e7477000) liblz4.so.1 => /lib64/liblz4.so.1 (0x00007fa1e7455000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa1e6832000) libzstd.so.1 => /lib64/libzstd.so.1 (0x00007fa1e6776000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fa1e66db000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fa1e66c7000) libpng16.so.16 => /lib64/libpng16.so.16 (0x00007fa1e668e000) libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007fa1e6680000) libXau.so.6 => /lib64/libXau.so.6 (0x00007fa1e6678000) libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007fa1e6655000)

It seem to be have some difference to libs maybe that why ?

yodatak avatar Feb 08 '24 20:02 yodatak

Can you try latest servo binary from website?

sagudev avatar Feb 08 '24 20:02 sagudev

Hey, tried using the latest binary that is on the website. Am getting the same issue. I have an NVIDIA GTX1650, am on Ubuntu 22.04 and my driver is "nvidia-driver-535 (proprietary)".

TerranFenrir avatar Feb 08 '24 22:02 TerranFenrir

@TerranFenrir is the package libegl1-mesa-dev already installed on your system? If not can you please try after installing it via apt?

mukilan avatar Feb 09 '24 03:02 mukilan

@TerranFenrir is the package libegl1-mesa-dev already installed on your system? If not can you please try after installing it via apt?

Ok, so here is what I did. Before commenting here, I also tried to build servo on my device. I followed all the steps and it installed quite a lot of stuff. Unfortunately, it didn't exactly work and I was too tired to debug it and just gave up on this. After reading your reply, I did as you asked. Apt said that libegl1-mesa-dev was already installed. But then, I still ran the binary downloaded from the website. Weirdly, it ran without outputting any errors. The only problem that I'm facing now is that it isn't loading websites properly (just getting the bare html, white screen thing with unformatted text).

So to summarize, the binary on the website ran on my device but I'm not sure if it worked because of installing the package that you mentioned (as it already had been installed) or if it was because I ran through the build process. Maybe this package got installed then?

TerranFenrir avatar Feb 09 '24 17:02 TerranFenrir

Just like I expected, we are installing all right things when mach bootstrap.

sagudev avatar Feb 09 '24 18:02 sagudev

@TerranFenrir is the package libegl1-mesa-dev already installed on your system? If not can you please try after installing it via apt?

I can confirm that the binary available on the website ran once I installed this package on Linux Mint.

Mardeg avatar Feb 11 '24 02:02 Mardeg

Hello in fedora i have to install mesa-libEGL-devel but it not dispo in my distro why should i need it ? we should add it to bootstrap command if needed

yodatak avatar Feb 13 '24 23:02 yodatak

When i use silverblue and create a fedora with mesa-libEGL-devel installed it work ( we should make it a requirement to test the actual binary ) for silverblue we shoud run it on a toolbox on mesa-libEGL-devel but it weird that a runtime dependency

yodatak avatar Feb 14 '24 20:02 yodatak

Maybe some flatpak build could solve the issue ? My servo build on my system don't need the mesa-libEGL-devel at runtime

yodatak avatar Feb 18 '24 17:02 yodatak