Eeems-Org / oxide

A desktop environment for the reMarkable tablet
https://oxide.eeems.codes
MIT License
243 stars 21 forks source link

Could not create scene graph context for backend 'epaper' - check that plugins are installed correctly in /usr/lib/plugins #354

Closed Eeems closed 4 months ago

Eeems commented 4 months ago

Describe the bug Error Could not create scene graph context for backend 'epaper' - check that plugins are installed correctly in /usr/lib/plugins is raised before a segfault when running tarnish.

To Reproduce Steps to reproduce the behavior:

  1. Install v2.8 or v2.8.1
  2. Try to run rm2fb-client tarnish --break-lock
  3. See error

Expected behavior Should not error and should instead run as expected.

Screenshots N/A

Version Information:

Additional context N/A

Eeems commented 4 months ago

Upon running with QT_DEBUG_PLUGINS=1, it does load /usr/lib/plugins/platforms/libepaper.so as expected. This is probably something to do with the change to how qsgepaper and epaper are handled in the build.

Eeems commented 4 months ago

libqsgepaper.so is being stored in /opt/lib, but doesn't appear to be loaded in time? Trying to load it manually with LD_PRELOAD=/opt/lib/libqsgepaper.so has the following error:

/usr/bin/env: symbol lookup error: /opt/lib/libqsgepaper.so: undefined symbol: _ZTI11QSGBindable
Eeems commented 4 months ago

Upon inspecting the required libraries, tarnish depends on liboxide.so, but that does not require libqsgepaper.so. This might be why it's failing to load.

Eeems commented 4 months ago

Adding the dependency for libqsgepaper.so to liboxide.so doesn't fix this. My current guess is that https://github.com/Eeems-Org/oxide/blob/fe74eb8ed3640b642a666026d69ab32ac4ceb333/shared/liboxide/epaper.h isn't doing what I expect with declaring the plugin.

Eeems commented 4 months ago

Running the code in debug or release mode from qt creator works without issue. This appears to be an issue with the build done with the toltec toolchain.

Eeems commented 4 months ago

The code to replace linux-oe-g++ with linux-arm-remarkable-g++ was missing the epaper.pri file.