From: Alyssa Ross <hi@alyssa.is>
To: Demi Marie Obenour <demiobenour@gmail.com>
Cc: Spectrum OS Development <devel@spectrum-os.org>,
Yureka Lilian <yureka@cyberchaos.dev>
Subject: Re: [PATCH v2] host/rootfs: Don't wait for /dev/dri/card0
Date: Tue, 26 May 2026 16:15:04 +0200 [thread overview]
Message-ID: <878q96tfyv.fsf@alyssa.is> (raw)
In-Reply-To: <20260526-weston-card-fix-v2-1-784a47aea8fb@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 5004 bytes --]
Demi Marie Obenour <demiobenour@gmail.com> writes:
> Weston can find a card itself. If the card is not ready, it will exit,
> but s6 will automatically restart it.
>
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
I don't think this commit message really captures it. As long as the
card is not hotplugged, it _will_ be ready, as far as I know, because it
will become ready when DRM is loaded, before userspace starts. This
makes it sound like Weston not finding a card and being restarted by s6
would be routine behaviour, whereas we'd actually not expect to ever see
it, except in the very unusual case of somebody having no cards at boot
and later hotplugging one. (Even then it's not ideal to need to restart
in a loop, but that case can wait for COSMIC.)
I suggest the following alternative, which also removes some other
obsolete instances of the same pattern.
From 71216f0aa36049cbd3c7b7562e6e7ff225a1c810 Mon Sep 17 00:00:00 2001
From: Alyssa Ross <hi@alyssa.is>
Date: Tue, 26 May 2026 16:05:21 +0200
Subject: [PATCH] Stop waiting for /dev/dri/card0
On the host, which does not run in a well-controlled VM environment,
there might not be a card0 (sometimes you just get card1). This
causes hangs. It hasn't been necessary to wait for non-hotplugged DRI
devices to exist since the Nixpkgs kernel set CONFIG_DRM=y. (If
there's no device at startup, s6 will just keep restarting the
services until there is one, but that case should be pretty unusual.)
Closes: https://matrix.to/#/!xSysqhzbOZImdvGpix:fairydust.space/$FXt0B6ZcIn1KO1k-sis5WrESsePTmi1hfg4ZXiVXwTM?via=fairydust.space&via=matrix.org&via=dataaturservice.se
Link: https://matrix.to/#/!xSysqhzbOZImdvGpix:fairydust.space/$Gvq6jxvt5d5qngIqs0xssBmONLH-q66g-HG_9E7TOWw?via=fairydust.space&via=matrix.org&via=dataaturservice.se
Reported-by: Yureka Lilian <yureka@cyberchaos.dev>
Closes: https://inbox.spectrum-os.org/spectrum-devel/6ba1fc13-c905-4074-a878-bb2488ef2020@gmail.com
Link: https://inbox.spectrum-os.org/spectrum-devel/20260524-weston-card-fix-v1-1-9c6dad59c245@gmail.com
Signed-off-by: Alyssa Ross <hi@alyssa.is>
---
host/rootfs/image/etc/s6-rc/weston/run | 1 -
img/app/image/etc/mdev.conf | 2 +-
img/app/image/etc/s6-rc/wayland-proxy-virtwl/run | 2 --
release/checks/wayland/default.nix | 8 ++------
4 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/host/rootfs/image/etc/s6-rc/weston/run b/host/rootfs/image/etc/s6-rc/weston/run
index fd59586c..68eff51a 100644
--- a/host/rootfs/image/etc/s6-rc/weston/run
+++ b/host/rootfs/image/etc/s6-rc/weston/run
@@ -40,7 +40,6 @@ redirfd -r 0 /dev/tty1
importas -i home HOME
cd $home
-if { udevadm wait /dev/dri/card0 }
s6-setuidgid wayland
bwrap
# no --unshare-net, breaks udev hotplug
diff --git a/img/app/image/etc/mdev.conf b/img/app/image/etc/mdev.conf
index 33a07d6b..40c2149d 100644
--- a/img/app/image/etc/mdev.conf
+++ b/img/app/image/etc/mdev.conf
@@ -4,7 +4,7 @@
-$MODALIAS=.* 0:0 0 ! +importas -Siu MODALIAS modprobe -q $MODALIAS
$INTERFACE=.* 0:0 0 ! +/etc/mdev/iface
$MODALIAS=virtio:d0000001Av.* 0:0 0 ! +/etc/mdev/virtiofs
-dri/card0 user:user 660 +background { /etc/mdev/listen card0 }
+dri/card0 user:user 660
-SUBSYSTEM=sound;.* pipewire:pipewire 660
snd/controlC0 pipewire:pipewire 660 +background { /etc/mdev/listen controlC0 }
diff --git a/img/app/image/etc/s6-rc/wayland-proxy-virtwl/run b/img/app/image/etc/s6-rc/wayland-proxy-virtwl/run
index 3fe113fe..bcd4c0fc 100755
--- a/img/app/image/etc/s6-rc/wayland-proxy-virtwl/run
+++ b/img/app/image/etc/s6-rc/wayland-proxy-virtwl/run
@@ -20,8 +20,6 @@ redirfd -r 0 /dev/null
if { fdmove 1 5 echo }
fdclose 5
-if { /etc/mdev/wait card0 }
-
export LISTEN_FDS 2
export LISTEN_FDNAMES wayland:x11
getpid LISTEN_PID
diff --git a/release/checks/wayland/default.nix b/release/checks/wayland/default.nix
index 40f96199..a36f5b91 100644
--- a/release/checks/wayland/default.nix
+++ b/release/checks/wayland/default.nix
@@ -16,10 +16,6 @@ testers.nixosTest ({ lib, pkgs, ... }: {
nodes.machine = { ... }: {
hardware.graphics.enable = true;
- services.udev.extraRules = ''
- KERNEL=="card0", TAG+="systemd"
- '';
-
systemd.mounts = [
{
name = "shared-config.mount";
@@ -63,8 +59,8 @@ testers.nixosTest ({ lib, pkgs, ... }: {
};
systemd.services.weston = {
- after = [ "dev-dri-card0.device" "surface-notify-socket.service" ];
- wants = [ "dev-dri-card0.device" "surface-notify-socket.service" ];
+ after = [ "surface-notify-socket.service" ];
+ wants = [ "surface-notify-socket.service" ];
environment.XDG_RUNTIME_DIR = "/run";
environment.WAYLAND_DEBUG = "server";
serviceConfig.ExecStart = "${lib.getExe pkgs.westonLite} --modules ${surface-notify}/lib/weston/surface-notify.so,systemd-notify.so";
--
2.53.0
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
prev parent reply other threads:[~2026-05-26 14:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-24 20:51 [PATCH] host/rootfs: Automatically select card node Demi Marie Obenour
2026-05-25 17:08 ` Alyssa Ross
2026-05-26 7:31 ` [PATCH v2] host/rootfs: Don't wait for /dev/dri/card0 Demi Marie Obenour
2026-05-26 14:15 ` Alyssa Ross [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=878q96tfyv.fsf@alyssa.is \
--to=hi@alyssa.is \
--cc=demiobenour@gmail.com \
--cc=devel@spectrum-os.org \
--cc=yureka@cyberchaos.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://spectrum-os.org/git/crosvm
https://spectrum-os.org/git/doc
https://spectrum-os.org/git/mktuntap
https://spectrum-os.org/git/nixpkgs
https://spectrum-os.org/git/spectrum
https://spectrum-os.org/git/ucspi-vsock
https://spectrum-os.org/git/www
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).