Linux: "cef_media_plugin not found" — web/media doesn't work #245

Closed
opened 2026-10-02 11:33:15 +00:00 by sky_line · 2 comments
Owner

Report

Multiple Linux users report a "cef_media_plugin not found" error, and media doesn't work: web / MOAP / media on a prim / the built-in browser, possibly also the help and search floaters.

Investigate

  • Packaging: does the Linux tarball ship the CEF media plugin (libmedia_plugin_cef.so), dullahan_host, the CEF runtime (libcef.so, resources / locales / icudtl.dat / snapshot blobs) and SLPlugin? Are they at the paths the viewer looks in? Check viewer_manifest.py's Linux section, and the rename to Slipstream (#15) for stale alchemy names or paths.
  • Plugin lookup: where LLViewerMedia / LLPluginClassMedia resolves the plugin directory on Linux, and the launcher's LD_LIBRARY_PATH.
  • Portability: whether the plugin loads on other distros:
    • glibc / GLIBCXX symbol versions (make glibc-check, glibc_compat.h);
    • x86-64-v4 ISA notes (fix_isa_note.py);
    • missing system libs (nss, atk, cups, libxss, …);
    • the chrome-sandbox setuid / user-namespace requirements.
  • Local vs CI: whether CachyOS local builds and CI (applejack) builds differ.

Asks for reporters

  • Distro and version.
  • Slipstream.log: lines around "plugin", "SLPlugin", "cef" and "media".
  • Output of ldd lib/libmedia_plugin_cef.so (or wherever it is in the tarball).
## Report Multiple Linux users report a **"cef_media_plugin not found"** error, and **media doesn't work**: web / MOAP / media on a prim / the built-in browser, possibly also the help and search floaters. ## Investigate - **Packaging:** does the Linux tarball ship the CEF media plugin (`libmedia_plugin_cef.so`), `dullahan_host`, the CEF runtime (`libcef.so`, resources / locales / `icudtl.dat` / snapshot blobs) and `SLPlugin`? Are they at the paths the viewer looks in? Check `viewer_manifest.py`'s Linux section, and the rename to Slipstream (#15) for stale `alchemy` names or paths. - **Plugin lookup:** where `LLViewerMedia` / `LLPluginClassMedia` resolves the plugin directory on Linux, and the launcher's `LD_LIBRARY_PATH`. - **Portability:** whether the plugin loads on other distros: - glibc / GLIBCXX symbol versions (`make glibc-check`, `glibc_compat.h`); - x86-64-v4 ISA notes (`fix_isa_note.py`); - missing system libs (`nss`, `atk`, `cups`, `libxss`, …); - the `chrome-sandbox` setuid / user-namespace requirements. - **Local vs CI:** whether CachyOS local builds and CI (applejack) builds differ. ## Asks for reporters - Distro and version. - `Slipstream.log`: lines around "plugin", "SLPlugin", "cef" and "media". - Output of `ldd lib/libmedia_plugin_cef.so` (or wherever it is in the tarball).
Author
Owner

Findings so far

The packaging looks correct. I checked both a local build and the CI v0.14.0-beta.1 tarball. Both ship bin/SLPlugin, bin/llplugin/libmedia_plugin_cef.so, bin/dullahan_host, bin/chrome-sandbox, lib/libcef.so, the .pak files, locales/, icudtl.dat and v8_context_snapshot.bin. They are at the exact paths the viewer looks in (<bin>/SLPlugin, <bin>/llplugin/lib<name>.so).

These are not the cause:

  • glibc, GLIBCXX and the x86-64 ISA level: the plugin, SLPlugin and libcef need the same as the main binary (glibc 2.38, GLIBCXX 3.4.32, v2). If the viewer starts, they can load.
  • Leftover alchemy names from the rename.
  • The chrome-sandbox setuid bit: dullahan runs CEF with no_sandbox unless chrome-sandbox is setuid root, so Ubuntu's user-namespace restriction does not apply.

Most likely cause (not yet confirmed with a reporter's log): a system library that CEF needs is missing. libcef.so needs about 20 system libraries that the viewer itself does not. On a bare Ubuntu 24.04 these are missing: libnss3 libnssutil3 libsmime3 libnspr4 libatk-1.0 libatk-bridge-2.0 libatspi libcups libgbm libxkbcommon libXcomposite libXdamage libXrandr libXfixes libXext libxcb libasound libpango-1.0 libcairo libdbus-1 libexpat. When one is missing, the plugin's dlopen fails and the viewer shows "The following Media Plugin has failed: media_plugin_cef". The loader's actual reason only went to SLPlugin's stderr and never reached Slipstream.log.

Changes on branch cefmedia (in the next build):

  • The viewer now logs the plugin's load error (plugin host could not load ...: <reason>) and shows it in the failure dialog.
  • The slipstream launcher runs ldd on libcef at startup and prints/notifies any missing libraries.
  • README-linux.txt has per-distro package lists, each checked with ldd in a clean container:
    • Ubuntu/Mint: sudo apt install libnss3 libnspr4 libatk1.0-0t64 libatk-bridge2.0-0t64 libatspi2.0-0t64 libcups2t64 libdrm2 libgbm1 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libasound2t64 libpango-1.0-0 libcairo2
    • Fedora: sudo dnf install nss nspr atk at-spi2-atk at-spi2-core cups-libs libdrm mesa-libgbm libxkbcommon libXcomposite libXdamage libXrandr alsa-lib pango cairo
    • Arch/CachyOS/Manjaro: sudo pacman -S --needed nss nspr at-spi2-core libcups libdrm mesa libxkbcommon libxcomposite libxdamage libxrandr alsa-lib pango cairo
  • dullahan_host's RUNPATH (:/../lib:/home/runner/...) is rewritten to $ORIGIN/../lib.

Reporters: please post

  1. Distro and version.
  2. The exact dialog text: "No Media Plugin was found to handle ...", "The following Media Plugin has failed: media_plugin_cef", or no dialog at all (just blank web content).
  3. From the Slipstream folder: LD_LIBRARY_PATH=./lib ldd lib/libcef.so | grep "not found"
  4. With the current release: start ./slipstream from a terminal, open the built-in browser, and paste any apr_dso_load ... failed line. It names the missing library.
## Findings so far **The packaging looks correct.** I checked both a local build and the CI `v0.14.0-beta.1` tarball. Both ship `bin/SLPlugin`, `bin/llplugin/libmedia_plugin_cef.so`, `bin/dullahan_host`, `bin/chrome-sandbox`, `lib/libcef.so`, the `.pak` files, `locales/`, `icudtl.dat` and `v8_context_snapshot.bin`. They are at the exact paths the viewer looks in (`<bin>/SLPlugin`, `<bin>/llplugin/lib<name>.so`). **These are not the cause:** - glibc, GLIBCXX and the x86-64 ISA level: the plugin, SLPlugin and libcef need the same as the main binary (glibc 2.38, GLIBCXX 3.4.32, v2). If the viewer starts, they can load. - Leftover `alchemy` names from the rename. - The `chrome-sandbox` setuid bit: dullahan runs CEF with `no_sandbox` unless `chrome-sandbox` is setuid root, so Ubuntu's user-namespace restriction does not apply. **Most likely cause (not yet confirmed with a reporter's log):** a system library that CEF needs is missing. `libcef.so` needs about 20 system libraries that the viewer itself does not. On a bare Ubuntu 24.04 these are missing: `libnss3 libnssutil3 libsmime3 libnspr4 libatk-1.0 libatk-bridge-2.0 libatspi libcups libgbm libxkbcommon libXcomposite libXdamage libXrandr libXfixes libXext libxcb libasound libpango-1.0 libcairo libdbus-1 libexpat`. When one is missing, the plugin's dlopen fails and the viewer shows *"The following Media Plugin has failed: media_plugin_cef"*. The loader's actual reason only went to SLPlugin's stderr and never reached Slipstream.log. **Changes on branch `cefmedia` (in the next build):** - The viewer now logs the plugin's load error (`plugin host could not load ...: <reason>`) and shows it in the failure dialog. - The `slipstream` launcher runs `ldd` on libcef at startup and prints/notifies any missing libraries. - README-linux.txt has per-distro package lists, each checked with `ldd` in a clean container: - Ubuntu/Mint: `sudo apt install libnss3 libnspr4 libatk1.0-0t64 libatk-bridge2.0-0t64 libatspi2.0-0t64 libcups2t64 libdrm2 libgbm1 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libasound2t64 libpango-1.0-0 libcairo2` - Fedora: `sudo dnf install nss nspr atk at-spi2-atk at-spi2-core cups-libs libdrm mesa-libgbm libxkbcommon libXcomposite libXdamage libXrandr alsa-lib pango cairo` - Arch/CachyOS/Manjaro: `sudo pacman -S --needed nss nspr at-spi2-core libcups libdrm mesa libxkbcommon libxcomposite libxdamage libxrandr alsa-lib pango cairo` - `dullahan_host`'s RUNPATH (`:/../lib:/home/runner/...`) is rewritten to `$ORIGIN/../lib`. ## Reporters: please post 1. Distro and version. 2. The exact dialog text: *"No Media Plugin was found to handle ..."*, *"The following Media Plugin has failed: media_plugin_cef"*, or no dialog at all (just blank web content). 3. From the Slipstream folder: `LD_LIBRARY_PATH=./lib ldd lib/libcef.so | grep "not found"` 4. With the current release: start `./slipstream` from a terminal, open the built-in browser, and paste any `apr_dso_load ... failed` line. It names the missing library.
Author
Owner

Closing this as likely fixed: since this was reported, the CEF helper's broken library path was fixed and the viewer now logs exactly which library is missing if the web/media plugin can't load.

If web pages or media still don't work for you, please test on the current version, 1.0.0 Beta 9, and install it through one of our packages, which pull in the system libraries the built-in browser needs:

  • Arch / CachyOS / Manjaro: the AUR package (PKGBUILD)
  • Debian / Ubuntu / Mint: the apt repository or the .deb
  • Fedora / Steam Deck / anything else: the Flatpak

Download: https://slipstreamviewer.org/download -- install guide: https://slipstreamviewer.org/wiki/install

If it still fails, re-open this ticket with your distro, the exact message, and your Slipstream.log (the line starting with apr_dso_load names the missing library).

Closing this as likely fixed: since this was reported, the CEF helper's broken library path was fixed and the viewer now logs exactly which library is missing if the web/media plugin can't load. If web pages or media still don't work for you, please test on the current version, **1.0.0 Beta 9**, and **install it through one of our packages**, which pull in the system libraries the built-in browser needs: - Arch / CachyOS / Manjaro: the AUR package (PKGBUILD) - Debian / Ubuntu / Mint: the apt repository or the .deb - Fedora / Steam Deck / anything else: the Flatpak Download: https://slipstreamviewer.org/download -- install guide: https://slipstreamviewer.org/wiki/install If it still fails, re-open this ticket with your distro, the exact message, and your `Slipstream.log` (the line starting with `apr_dso_load` names the missing library).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#245
No description provided.