freeCodeCamp / freeCodeCamp/exam-env
[bug] AppImage aborts on Nvidia + X11: Could not create GBM EGL display
- Dominant language
- TypeScript
- Stars
- 34
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
## Description
The AppImage aborts immediately on launch on Kali Linux with an Nvidia GPU
under an X11 session. Related to #107, but on X11 rather than Wayland.
## Environment
- Exam Environment: 2.2.0 (Exam.Environment_2.2.0_amd64.AppImage)
- OS: Kali GNU/Linux Rolling 2026.3 (Debian-based), x86_64
- Session type: x11 (`echo $XDG_SESSION_TYPE` returns `x11`)
- GPU: NVIDIA GeForce GTX 1660 SUPER (TU116, PCI id 10de:21c4)
- Nvidia driver: 550.163.01
## Error output
Gtk-Message: Failed to load module "xapp-gtk3-module"
src/nv_gbm.c:288: GBM-DRV error (nv_gbm_create_device_native): nv_common_gbm_create_device failed (ret=-1)
pci id for fd 30: 10de:21c4, driver (null)
Could not create GBM EGL display: EGL_SUCCESS. Aborting...
## What I tried (none of it worked)
- `--disable-gpu`, `--disable-software-rasterizer`, `--disable-gpu-compositing`, `--use-gl=swiftshader`
- `LIBGL_ALWAYS_SOFTWARE=1`
- `ELECTRON_OZONE_PLATFORM_HINT=x11`
- Running as root
- Forcing the Mesa EGL vendor: `__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json`
This changed the error to `Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...`
(same as #107), but the app still aborts.
The command-line flags appear to have no effect at all: the error is identical
with and without them, suggesting the crash happens before they are parsed.
## Workaround
The only thing that works is running the app inside a nested X server:
Xephyr -screen 1280x800 :1 &
DISPLAY=:1 ./Exam.Environment_2.2.0_amd64.AppImage
The app then displays and works correctly, but copy-paste between the host
session and the nested server is broken, so the account token has to be
injected with `xdotool` instead of pasted.
Other AppImages work normally on this machine.
Contributor guide
Research direction
Begin by reproducing the launch with the listed AppImage on Nvidia/X11, then compare it with the working Xephyr command and the tested environment flags. Done means the AppImage launches normally in the reported X11 environment without requiring a nested X server, while preserving the existing workaround behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100