Bug 446160 - Wayland boot fails - kwin_wayland_drm: failed to open drm device
Summary: Wayland boot fails - kwin_wayland_drm: failed to open drm device
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: wayland-generic (show other bugs)
Version: 5.23.3
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-27 11:00 UTC by Tim
Modified: 2023-12-23 11:53 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tim 2021-11-27 11:00:28 UTC
SUMMARY
I recently installed the "plasma-wayland-session" package on my system and tried booting into it, but the login process fails.

STEPS TO REPRODUCE
1. Install plasma-wayland-session
2. Boot into wayland

OBSERVED RESULT
"dbus-run-session startplasma-wayland" prints out an error: https://termbin.com/noxt

EXPECTED RESULT
It should boot into wayland

SOFTWARE/OS VERSIONS
Operating System: Garuda Linux
KDE Plasma Version: 5.23.3
KDE Frameworks Version: 5.88.0
Qt Version: 5.15.2
Kernel Version: 5.15.5-zen1-1-zen (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 2600X Six-Core Processor
Memory: 31.4 GiB of RAM
Graphics Processor: AMD Radeon RX 560 Series
Wayland Version: 1.19.0-2 (non-git-version)

ADDITIONAL INFORMATION
https://blog.martin-graesslin.com/blog/2016/07/why-does-kwin_wayland-not-start/
Following that troubleshooting guide, I tried running wayland from tty, but I get the same result: https://termbin.com/xc1fg
Comment 1 dejv78 2021-12-07 14:43:06 UTC
Hi,

I just wanted to add here, that I have exactly the same problem as described. Also an AMD-driven system (Ryzen 7 + Radeon 6700 XT in my case). I'm using the "amdgpu" driver.

So far I was not able to find any even remotely useful info on what might be causing this, not to mention how to (at least potentially) solve it. 

I'm running Garuda Linux with KDE Plasma on X11 (no problems there, and overall a great experience, btw) and I'm able to run Sway or Wayfire without any issue as well. 

This leads me to believe that this has to be something kwin specific, but ... who knows. 

This is the contents of my ~/.local/share/sddm/wayland-session.log after trying to log into Plasma (Wayland) for several times: https://termbin.com/11a5

Anyway, if I can contribute to nail this issue down in any way (like provide any additional info, or whatever), please let me know. I'll be glad to help.

Dejv
Comment 2 dejv78 2021-12-19 14:36:00 UTC
I have some deeper insight on what's going on here.

Out of desperation, I've built kwin 5.23.4 (the version I currently have installed) from sources, and added some more logging in the relevant places, to see what goes wrong.

Until now, I thought the main problem is this part:
kwin_wayland_drm: failed to open drm device at "/dev/dri/card0"
kwin_wayland_drm: No suitable DRM devices have been found

But as it turns out, the actual problem is already this line:
kwin_core: Failed to activate /org/freedesktop/login1/session/_35 session. Maybe another compositor is running?

It's this method in session_logind.cpp:

static bool activate(const QString &sessionPath)
{
    const QDBusMessage message = QDBusMessage::createMethodCall(s_serviceName, sessionPath, s_sessionInterface, QStringLiteral("Activate"));

// ---- The problem occurs here:
    const QDBusMessage reply = QDBusConnection::systemBus().call(message);
// ---- Returns "Interactive authentication required"

    return reply.type() != QDBusMessage::ErrorMessage;
}


Rest of the error output (kwin_wayland_drm) is caused simply by the fact, that because of the failure above, NOOP session is actually injected in the code instead of the "real" one, and that (understandably) is not even trying to do anything with the real hardware.

But, what to do about the "Interactive authentication required" thing, I just don't know... 

Does anybody have any idea, please?
Comment 3 Zamundaaa 2021-12-20 08:18:08 UTC
Are you trying to login to the wayland session after logging out of X, or does this also happen on a clean boot?
Comment 4 Tim 2021-12-20 17:03:38 UTC
(In reply to Zamundaaa from comment #3)
> Are you trying to login to the wayland session after logging out of X, or
> does this also happen on a clean boot?

Clean boot and logging into wayland. Or whenever you run "dbus-run-session startplasma_wayland" (or "kwin_wayland")
Comment 5 dejv78 2021-12-21 06:11:00 UTC
(In reply to Zamundaaa from comment #3)
> Are you trying to login to the wayland session after logging out of X, or
> does this also happen on a clean boot?


> Clean boot and logging into wayland. Or whenever you run "dbus-run-session startplasma_wayland" (or "kwin_wayland")

The same here.
It behaves consistently, regardless if I try to run Plasma (Wayland) from SDDM, or if I try to run it on tty by dbus-run-session kwin_wayland.
Comment 6 Tim 2022-01-03 12:42:51 UTC
This was solved after reinstalling my system. I don't know what was going on, but dejv suggested that our systems, even though being rolling release, got out of sync with the main releases, which had this fixed maybe.
It works now.
Comment 7 Creeper 2023-12-23 11:53:55 UTC
I started getting the same error on my Arch Linux computer. It turns out that if you start Plasma shortly after booting without KMS (kernel mode setting), then it crashes. I guess because graphics aren't initialized yet?

Possible solutions:
1. Delay Plasma by a few seconds
2. Add KMS hook to mkinitcpio.conf