Skip to content

Black screen on boot after update (Bazzite-Deck) — gamescope session fails #3282

Description

@Cobesz

After updating to the latest bazzite-deck image (everything after 20250817), the system boots to a black screen. The machine is not frozen — I can reboot with Ctrl+Alt+Del or get a TTY through GRUB — but no GUI appears.

Logs show SDDM autologin repeatedly attempting to launch:

Starting Wayland user session: "/etc/sddm/wayland-session" "gamescope-session-plus steam"

…but the session immediately exits. This repeats in a loop, leaving the screen black.

Rolling back to an older image restores normal operation.


Steps to reproduce

  1. Rebase or update to the latest bazzite-deck image.

  2. Reboot.

  3. Instead of Gaming Mode, only a black screen is shown.


Expected behavior

On boot, SDDM autologin should start Gaming Mode (gamescope-session-plus steam) inside a valid user session (with D-Bus running).

“Switch to Desktop” should open Plasma desktop, not another black screen.


Observed behavior

Boot → black screen (SDDM autologin fails).

“Switch to Desktop” from Gaming Mode also results in a black screen.

Logs (journalctl -b -u sddm) show repeated session start/stop cycles.

GPU (amdgpu) initializes fine; no kernel/DRM errors.

Running Gaming Mode manually with systemd user scope works:

systemctl --user start gamescope-session-plus@steam.service

→ Gaming Mode launches successfully.

This indicates that the issue is how SDDM is launching the session, not gamescope itself.


Environment

Image: bazzite-deck (latest as of <insert date / version>).

Hardware:

  • B550 AORUS PRO V2
  • AMD Ryzen 7 5800X (16) @ 4.85 GHz
  • AMD Radeon RX 9070 XT [Discrete]
  • 32GB RAM

Previous image (working): bazzite-deck:42.20250817 (brh rebase bazzite-deck:42.20250817)


Workarounds tested

Start Gaming Mode manually with:

systemctl --user start gamescope-session-plus@steam.service

Works every time.

Directly running /usr/bin/gamescope-session-plus steam fails with:

dbus-update-activation-environment: error: unable to connect to D-Bus

→ Confirms no user D-Bus is available when launched this way.


Root cause hypothesis

The .desktop session file for gamescope-session-plus is being executed by SDDM outside of a user systemd scope, so no session D-Bus is present.

When run via systemctl --user, Gaming Mode works normally.

Therefore, the session file / autologin needs to launch Gaming Mode inside a D-Bus environment or user systemd scope.


Proposed fixes

Option A (simplest): wrap with dbus-run-session

Change the Exec in the session file (e.g. /usr/share/wayland-sessions/gamescope-session-plus.desktop) to:

Exec=/usr/bin/dbus-run-session /usr/bin/gamescope-session-plus steam

This ensures a session bus exists when SDDM launches the session.


Option B (more robust): use systemd user scope

Launch Gaming Mode as a user systemd unit:

Exec=/usr/bin/systemd-run --user --scope --unit=gamescope-session-plus@steam
/usr/bin/gamescope-session-plus steam

This reproduces the manual workaround (systemctl --user start …) that users confirm works, while keeping lifecycle tracking in sync with SDDM.


Additional recommendations

Ship a fallback Plasma session (e.g. plasma.desktop) as the default if the autologin session entry is invalid.

Consider a post-update check that Session= in SDDM’s config points to a valid .desktop file. If not, reset to Plasma to avoid booting into a black screen.


Summary
After update, Bazzite-Deck boots to a black screen because gamescope-session-plus is autologged into without a user D-Bus. Manually starting it with systemctl --user works fine.
→ The session file should be adjusted to launch inside a user D-Bus or user systemd scope.

This will fix both black-screen boot and the “Switch to Desktop” path.

Adding a log that contains this problem:

log-last-boot.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions