From 5faa259603762d754b13d31b5bf98323f1e200f1 Mon Sep 17 00:00:00 2001 From: sergio Date: Wed, 29 Jul 2026 19:59:30 -0400 Subject: [PATCH] =?UTF-8?q?audio:=20PipeWire=20es=20el=20servidor=20de=20l?= =?UTF-8?q?a=20distro=20(decisi=C3=B3n=20del=20usuario)=20=E2=80=94=20gvc?= =?UTF-8?q?=20conecta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cierra una pregunta que estaba explícitamente abierta en varias recetas, y que es la razón por la que `pulseaudio` se había construido con `-Ddaemon=false`: sólo el cliente, para que gvc hablara el protocolo sin cerrar la decisión de prestado. **Los dos conviven y por eso la decisión no rompe nada**: pipewire va con `-Dlibpulse=enabled` ⇒ `pipewire-pulse`, un servidor que habla el protocolo de PulseAudio. gnome-shell usa libpulse sin enterarse de qué hay del otro lado. No hubo que tocar una línea del cliente. == gnome-qemu :: socket pipewire-0 OK == gnome-qemu :: socket pulse/native OK — gvc va a poder conectar Gvc-DEBUG: Updating client: index=32 name='pipewire' Gvc-DEBUG: Updating sink: index=33 name='auto_null' description='Dummy Output' El `Failed to connect context: Connection refused` desapareció. El sink es auto_null, que es la respuesta honesta: la VM no tiene tarjeta de sonido. **⚠ Falta wireplumber** (gestor de sesión, Lua + su cierre). Sin él PipeWire acepta clientes pero NO enumera ni enruta dispositivos. «El shell conecta» ≠ «hay sonido», y el log de arriba es justo el caso donde confundirlos sería fácil. Queda escrito en la receta y en el runbook. GOTCHA MEDIDO: ya existía incoming-kde/pipewire.toml sellada y NO se puede reusar hidratándola acá — los dos cierres traen glib y **no son la misma glib**: incoming-kde/glib-shared y incoming-gnome/glib producen libglib-2.0.so.0.8800.1 con bytes distintos (verificado con cmp) y comparten 370 rutas. Proyectar las dos deja que una gane por orden de proyección ⇒ dos registros de GType en un proceso, el cuadro que costó el episodio de colord. De ahí la copia en la cola GNOME (glib-shared→glib, dbus→dbus-shared, pcre2-shared→pcre2), que sí re-construye. Lo que FUE gratis: alsa-lib, cuya única dep es pkgconf y resuelve al catálogo PADRE ⇒ hash idéntico y cache hit (b3:93cae411). Co-Authored-By: Claude Opus 5 (1M context) --- .../evidencia/gnome-shell-qemu-2026-07-29.png | Bin 22455 -> 22582 bytes docs/runbooks/gnome-qemu-desktop.md | 36 +++++++- recipes/incoming-gnome/alsa-lib.toml | 25 ++++++ recipes/incoming-gnome/pipewire.toml | 78 ++++++++++++++++++ scripts/gnome/gnome-start-qemu.sh | 31 +++++++ scripts/gnome/hydrate-gnome.sh | 3 + 6 files changed, 170 insertions(+), 3 deletions(-) create mode 100644 recipes/incoming-gnome/alsa-lib.toml create mode 100644 recipes/incoming-gnome/pipewire.toml diff --git a/docs/evidencia/gnome-shell-qemu-2026-07-29.png b/docs/evidencia/gnome-shell-qemu-2026-07-29.png index 00b5043e42f8e6feb339c3f5c6497653765f7dbc..3284246002f47a90845c806b5b94d038c037096f 100644 GIT binary patch literal 22582 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%0AD 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 literal 22455 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 OF?hQAxvX/tmp/pipewire.log 2>&1 & + say "pipewire lanzado (pid $!)" + i=0; while [ $i -lt 20 ] && [ ! -S "$XDG_RUNTIME_DIR/pipewire-0" ]; do i=$((i+1)); sleep 0.25; done + if [ -S "$XDG_RUNTIME_DIR/pipewire-0" ]; then + say "socket pipewire-0 OK" + /usr/bin/pipewire-pulse >/tmp/pipewire-pulse.log 2>&1 & + say "pipewire-pulse lanzado (pid $!)" + i=0; while [ $i -lt 20 ] && [ ! -S "$XDG_RUNTIME_DIR/pulse/native" ]; do i=$((i+1)); sleep 0.25; done + if [ -S "$XDG_RUNTIME_DIR/pulse/native" ]; then + say "socket pulse/native OK — gvc va a poder conectar" + else + say "!! pipewire-pulse no creó pulse/native:"; dump /tmp/pipewire-pulse.log + fi + else + say "!! pipewire no creó su socket:"; dump /tmp/pipewire.log + fi +else + say "!! sin /usr/bin/pipewire — el shell va a avisar 'Failed to connect context'" +fi + esperar_nombre org.freedesktop.login1 /tmp/logind-compat.log esperar_nombre org.freedesktop.PolicyKit1 /tmp/polkit-compat.log esperar_nombre org.freedesktop.Accounts /tmp/accounts-daemon.log diff --git a/scripts/gnome/hydrate-gnome.sh b/scripts/gnome/hydrate-gnome.sh index 454e4211..42f60d07 100755 --- a/scripts/gnome/hydrate-gnome.sh +++ b/scripts/gnome/hydrate-gnome.sh @@ -51,6 +51,9 @@ else # el escritorio sea usable— los CURSORES. Con el cursor por software (obligatorio en virtio-gpu) # y sin tema, el puntero se mueve invisible. Arrastra hicolor-icon-theme por `Inherits=hicolor`. recipes/incoming-gnome/adwaita-icon-theme.toml + # El SERVIDOR de audio (decisión del usuario: PipeWire, no PulseAudio). No es dep de build de + # nadie: el shell habla libpulse y `pipewire-pulse` le contesta por el otro lado. + recipes/incoming-gnome/pipewire.toml ) fi