From: Alyssa Ross <hi@alyssa.is>
To: Demi Marie Obenour <demiobenour@gmail.com>,
Spectrum OS Development <devel@spectrum-os.org>
Subject: Re: Switching to udev?
Date: Sat, 26 Jul 2025 12:06:39 +0200 [thread overview]
Message-ID: <87pldnfeq8.fsf@alyssa.is> (raw)
In-Reply-To: <2f8aaac8-0407-41f8-86c1-caa5f8b2543e@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3837 bytes --]
Demi Marie Obenour <demiobenour@gmail.com> writes:
> On 7/23/25 13:34, Demi Marie Obenour wrote:
> From https://wiki.gentoo.org/wiki/Mdev:
>
> - udev is needed to load firmware for AMD Radeon GPUs.
> - libusb will not see USB devices unless deprecated kernel
> configuration options are set.
>
> From https://wayland.freedesktop.org/libinput/doc/latest/architecture.html:
>
> - Wayland compositors use udev (via libinput) to support
> device hotplugging. This is needed for USB keyboard
> and/or mouse support, which is a hard requirement for
> desktops that don't have PS/2 connectors (almost all of
> them I believe).
> - libinput relies on udev to determine what kind of device
> an input device is.
>
> FreeBSD also switched to udev for Mutter.
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271824#c4
> states that for Wayland, udev is essentially required. Even
> Gentoo uses udev, though systemd is not the default init
> system.
>
> I think avoiding udev is a losing battle in the long run,
> except possibly for VMs that will never ever have physical
> hardware attached to them. That would require configuring
> VMs with and without physical hardware separately, which
> I would strongly prefer to avoid. If the memory
> consumption or disk space requirements of udev are
> excessive, I think this would be better addressed as part
> of a broader debloating effort.
>
> libudev-zero does exist, but it doesn't work with PipeWire
> (https://github.com/illiliti/libudev-zero/issues/26, still
> unfixed despite being closed) and there are other problems
> with it as shown by its issue tracker. Alpine's wiki doesn't
> recommend it for desktop environments, and while Spectrum VMs
> don't run full desktop environments they do run desktop
> software. Such software requires udev more and more nowadays.
Broadly it seems like no libudev at all (which was never on the table)
is being conflated with not using udevd (but using something like
libudev-zero) here. To my knowledge, everything you've outlined should
work with libudev-zero, with the exception of PipeWire as you point out,
and possibly Radeon firmware loading — I'm very surprised udev would be
involved at all in that process so wondering if the wiki is very out of
date or something. We have USB input working on the host using
libudev-zero, for example.
The PipeWire compatibility problems do seem like blockers, but reading
the PipeWire issue about it[1], I'm not sure they're fundamental. It
sounds like PipeWire might be willing to accomodate a fix, the last
activity on the issue was only a month ago, and it doesn't sound like
that big of a change is necessary for it to work. I wouldn't be
surprised if PipeWire is among the software that has the most complex
interaction patterns with udev, and given it might be on the verge of
being fixed, I'd prefer to wait and see a bit longer. If that means
that we don't have working audio hotplug or whatever in the meantime,
that's okay. I've put the PipeWire issue on the upstream bug tracking
board[2]. If months go by and no solution is found, I think it would
make sense to evaluate switching to systemd-udevd then, but I don't want
to do the switch, and then find a weak later that the only firm reason
we had for doing it has been solved. If you know about other software
that depends on custom udev properties, and isn't on the verge of being
fixed like PipeWire is, or if I'm wrong about Radeon, we could also take
that into account now, but so far all we know for sure is that PipeWire
doesn't work, but might do quite soon.
[1]: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2398#note_2897989
[2]: https://cryptpad.fr/kanban/#/2/kanban/view/yLtGXWLV6U7X5+Z1ay+oXKZMrSacqQe+51nXZYRh3ck/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]
next prev parent reply other threads:[~2025-07-26 10:07 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-23 17:34 Switching to udev? Demi Marie Obenour
2025-07-23 18:59 ` Demi Marie Obenour
2025-07-26 10:06 ` Alyssa Ross [this message]
2025-07-27 21:36 ` Demi Marie Obenour
2025-07-29 7:29 ` Alyssa Ross
2025-07-29 7:48 ` Demi Marie Obenour
2025-08-20 17:11 ` Alyssa Ross
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=87pldnfeq8.fsf@alyssa.is \
--to=hi@alyssa.is \
--cc=demiobenour@gmail.com \
--cc=devel@spectrum-os.org \
/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).