QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
532 stars 46 forks source link

No sound via pulseaudio from upgraded debian-12 VMs #8816

Closed 3hhh closed 3 months ago

3hhh commented 8 months ago

How to file a helpful issue

Qubes OS release

4.2

Brief summary

All debian-12 VMs upgraded from 4.1 to 4.2 won't have any sound via pulseaudio.

Possibly upgrading is irrelevant and just all debian-12 VMs have no sound via pulseaudio.

debian-11 VMs work just fine.

Steps to reproduce

  1. Install debian-12 stock templates on 4.1
  2. Upgrade
  3. Remove pipewire et al from the template
  4. Install pulseaudio (or rather keep it as per #8805)

Expected behavior

Sound

Actual behavior

No sound

Related issues

Originally I investigated this as follow-up on #8805, but I believe this is a separate bug.

3hhh commented 8 months ago

To fix this, I had a closer look at the differences between the working debian-11 VMs and the debian-12 VMs:

In debian-11 pulseaudio was started via /etc/xdg/autostart/qubes-pulseaudio.desktop, which calls start-pulseaudio-with-vchan, which in turn runs pulseaudio --start -n --file=/etc/pulse/qubes-default.pa --exit-idle-time=-1. In debian-12 start-pulseaudio-with-vchan is not installed and therefore the user part of systemd starts the default debian-12 pulseaudio as pulseaudio --daemonize=no --log-target=journal.

I reverted debian-12 to the old debian-11 behaviour by copying the start-pulseaudio-with-vchan binary and masking the systemd pulseaudio unit.

This made the following journal entry pop up:

Jan 01 12:02:35 debian-12 pulseaudio[1090]: Failed to open module module-vchan-sink.so: module-vchan-sink.so: cannot open shared object file: No such file or directory
Jan 01 12:02:35 debian-12 pulseaudio[1090]: Failed to open module "module-vchan-sink".
Jan 01 12:02:35 debian-12 pulseaudio[1090]: module-rescue-stream is obsolete and should no longer be loaded. Please remove it from your configuration.

A quick locate module-vchan indicates that indeed the vchan module isn't installed in debian-12, whereas it is installed in debian-11 even though the package pulseaudio-qubes is installed in both VMs. debian-11 has libvchan-xen installed, debian-12 libvchan-xen1, which is a bit odd.

@marmarek @DemiMarie Any ideas?

marmarek commented 8 months ago

Can you show output of dpkg -l | grep qubes from that template?

3hhh commented 8 months ago

On 1/1/24 14:54, Marek Marczykowski-Górecki wrote:

Can you show output of dpkg -l | grep qubes from that template?

Output from the broken debian-12 template:

***@***.***:/home/user# dpkg -l|grep -Ei '(qubes|pipewire|pulseaudio)'
ii  fwupd-qubes-vm:amd64                    1.8.14-5+deb12u1                        amd64        fwupd wrapper for Qubes OS - VM scripts
ii  libcanberra-pulse:amd64                 0.30-10                                 amd64        PulseAudio backend for libcanberra
ii  libpipewire-0.3-0:amd64                 0.3.65-3                                amd64        libraries for the PipeWire multimedia server
ii  libpipewire-0.3-common                  0.3.65-3                                all          libraries for the PipeWire multimedia server - common files
ii  libpulse-mainloop-glib0:amd64           16.1+dfsg1-2+b1                         amd64        PulseAudio client libraries (glib support)
ii  libpulse0:amd64                         16.1+dfsg1-2+b1                         amd64        PulseAudio client libraries
ii  libpulsedsp:amd64                       16.1+dfsg1-2+b1                         amd64        PulseAudio OSS pre-load library
ii  libqubes-pure0                          4.2.15+deb12u1                          amd64        Qubes file copy protocol library
ii  libqubes-rpc-filecopy2                  4.2.15+deb12u1                          amd64        Qubes file copy protocol library
ii  libqubesdb                              4.2.4-1+deb12u1                         amd64        QubesDB libs.
ii  libspa-0.2-bluetooth:amd64              0.3.65-3                                amd64        libraries for the PipeWire multimedia server - bluetooth plugins
ii  libspa-0.2-modules:amd64                0.3.65-3                                amd64        libraries for the PipeWire multimedia server Simple Plugin API - modules
ii  libvchan-xen1                           4.2.1-1+deb12u1                         amd64        Qubes Xen core libraries
ii  pavucontrol                             5.0-2                                   amd64        PulseAudio Volume Control
ii  pipewire-qubes                          4.2.11-1+deb12u1                        amd64        PipeWire module to enable sound support in Qubes VM
ii  pulseaudio                              16.1+dfsg1-2+b1                         amd64        PulseAudio sound server
rc  pulseaudio-qubes                        4.1.32-1+deb12u1                        amd64        Audio support for Qubes VM
ii  pulseaudio-utils                        16.1+dfsg1-2+b1                         amd64        Command line tools for the PulseAudio sound server
ii  python3-qubesdb                         4.2.4-1+deb12u1                         amd64        QubesDB python bindings.
ii  python3-qubesimgconverter               4.2.15+deb12u1                          amd64        Python package qubesimgconverter
ii  qubes-core-agent                        4.2.26-1+deb12u1                        amd64        Qubes core agent
ii  qubes-core-agent-dom0-updates           4.2.26-1+deb12u1                        amd64        Scripts required to handle dom0 updates.
ii  qubes-core-agent-nautilus               4.2.26-1+deb12u1                        amd64        Qubes integration for Nautilus
ii  qubes-core-agent-network-manager        4.2.26-1+deb12u1                        amd64        NetworkManager integration for Qubes VM
ii  qubes-core-agent-networking             4.2.26-1+deb12u1                        amd64        Networking support for Qubes VM
ii  qubes-core-agent-passwordless-root      4.2.26-1+deb12u1                        amd64        Passwordless root access from normal user
ii  qubes-core-qrexec                       4.2.16-1+deb12u1                        amd64        Qubes qrexec agent
ii  qubes-gpg-split                         2.0.70-1+deb12u1                        amd64        The Qubes service for secure gpg separation
ii  qubes-gui-agent                         4.2.11-1+deb12u1                        amd64        Makes X11 windows available to qubes dom0
ii  qubes-img-converter                     1.2.16-1+deb12u1                        amd64        Qubes service for converting untrusted images into trusted ones.
ii  qubes-input-proxy-sender                1.0.34-1+deb12u1                        amd64        Provides Simple input events proxy
ii  qubes-kernel-vm-support                 4.2.15+deb12u1                          amd64        Qubes VM kernel and initramfs modules
ii  qubes-mgmt-salt-vm-connector            4.2.1-1+deb12u1                         all          Interface for managing VM from dom0
ii  qubes-pdf-converter                     2.1.19-1+deb12u1                        amd64        The Qubes service for converting untrusted PDF files into trusted ones
ii  qubes-repo-templates                    4.2.2-1+deb12u1                         amd64        Repository definition for Qubes OS VM template packages.
ii  qubes-usb-proxy                         1.1.5+deb12u1                           amd64        USBIP wrapper to run it over Qubes RPC connection
ii  qubes-utils                             4.2.15+deb12u1                          amd64        Qubes Linux utilities
ii  qubes-vm-dependencies                   4.2.9-1+deb12u1                         amd64        Meta package with packages required in Qubes VM
ii  qubes-vm-recommended                    4.2.9-1+deb12u1                         amd64        Meta package with packages recommended in Qubes VM
ii  qubesdb                                 4.2.4-1+deb12u1                         amd64        QubesDB management tools and daemon.
ii  qubesdb-vm                              4.2.4-1+deb12u1                         amd64        QubesDB VM service.
ii  xserver-xorg-input-qubes                4.2.11-1+deb12u1                        amd64        X input driver for injecting events from qubes-gui-agent
ii  xserver-xorg-qubes-common               4.2.11-1+deb12u1                        amd64        Common functions for qubes xserver driver
ii  xserver-xorg-video-dummyqbs             4.2.11-1+deb12u1                        amd64        Dummy X video driver for qubes-gui-agent
marmarek commented 8 months ago

rc pulseaudio-qubes 4.1.32-1+deb12u1 amd64 Audio support for Qubes VM

So, pulseaudio-qubes actually is not installed. For pulseaudio to work you need to install it.

3hhh commented 8 months ago

On 1/1/24 17:02, Marek Marczykowski-Górecki wrote:

rc pulseaudio-qubes 4.1.32-1+deb12u1 amd64 Audio support for Qubes VM

So, pulseaudio-qubes actually is not installed. For pulseaudio to work you need to install it.

Argh. You're right - I had missed that rc in front...

Apparently it was removed during the 4.2 upgrade:

Start-Date: 2023-12-28  13:00:09                                                                                                                            Commandline: apt dist-upgrade                                                                                                                               Requested-By: user (1000)                                                                                                                                   Install: jcat:amd64 (0.1.9-1, automatic), pipewire-qubes:amd64 (4.2.11-1+deb12u1, automatic), libvchan-xen1:amd64 (4.2.1-1+deb12u1, automatic), libqubes-pure0:amd64 (4.2.15+deb12u1, automatic), fwupd-qubes-vm:amd64 (1.8.14-5+deb12u1, automatic), python3-pyinotify:amd64 (0.9.6-2, automatic), python3-qrexec:amd64 (4.2.16-1+deb12u1, automatic)                                                                                                                              Upgrade: qubes-core-qrexec:amd64 (4.1.24-1+deb12u1, 4.2.16-1+deb12u1), libqrexec-utils2:amd64 (4.1.24-1+deb12u1, 4.2.16-1+deb12u1), qubesdb-vm:amd64 (4.1.17-1+deb12u1, 4.2.4-1+deb12u1), qubes-core-agent-dom0-updates:amd64 (4.1.46-1+deb12u1, 4.2.26-1+deb12u1), xserver-xorg-video-dummyqbs:amd64 (4.1.32-1+deb12u1, 4.2.11-1+deb12u1), qubes-core-agent-network-manager:amd64 (4.1.46-1+deb12u1, 4.2.26-1+deb12u1), xserver-xorg-input-qubes:amd64 (4.1.32-1+deb12u1, 4.2.11-1+deb12u1), qubes-vm-dependencies:amd64 (4.1.24-1+deb12u1, 4.2.9-1+deb12u1), python3-qubesdb:amd64 (4.1.17-1+deb12u1, 4.2.4-1+deb12u1), python3-qubesimgconverter:amd64 (4.1.19+deb12u1, 4.2.15+deb12u1), libqubes-rpc-filecopy2:amd64 (4.1.19+deb12u1, 4.2.15+deb12u1), libqubesdb:amd64 (4.1.17-1+deb12u1, 4.2.4-1+deb12u1), qubes-core-agent:amd64 (4.1.46-1+deb12u1, 4.2.26-1+deb12u1), qubes-core-agent-passwordless-root:amd64 (4.1.46-1+deb12u1, 4.2.26-1+deb12u1), qubes-gui-agent:amd64 (4.1.32-1+deb12u1, 4.2.11-1+deb12u1), qubes-core-agent-networking:amd64 (4.1.46-1+deb12u1, 4.2.26-1+deb12u1), qubes-mgmt-salt-vm-connector:amd64 (4.1.16-1+deb12u1, 4.2.1-1+deb12u1), qubes-repo-templates:amd64 (4.1.2-1+deb12u1, 4.2.2-1+deb12u1), qubesdb:amd64 (4.1.17-1+deb12u1, 4.2.4-1+deb12u1), qubes-utils:amd64 (4.1.19+deb12u1, 4.2.15+deb12u1), qubes-vm-recommended:amd64 (4.1.24-1+deb12u1, 4.2.9-1+deb12u1), qubes-core-agent-nautilus:amd64 (4.1.46-1+deb12u1, 4.2.26-1+deb12u1), xserver-xorg-qubes-common:amd64 (4.1.32-1+deb12u1, 4.2.11-1+deb12u1), qubes-kernel-vm-support:amd64 (4.1.19+deb12u1, 4.2.15+deb12u1)                                                                                                                                                           Remove: pulseaudio-qubes:amd64 (4.1.32-1+deb12u1)                                                                                                           End-Date: 2023-12-28  13:04:27

Unfortunately there still seems to be some packaging conflict as installing pulseaudio-qubes removes qubes-vm-recommended and thus a bunch of packages that I probably want to keep unless I want to break other things:

***@***.***:/var/log/apt# apt install pulseaudio-qubes
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
   debugedit deltarpm dnf dnf-data fwupd-qubes-vm jcat libcomps0 libdnf2 libdnf2-common libfsverity0 libmodulemd2 librepo0 librpmbuild9 librpmsign9
   libsolv1 libsolvext1 libunbound8 python3-croniter python3-dnf python3-hawkey python3-libcomps python3-libdnf python3-looseversion python3-msgpack
   python3-psutil python3-py python3-qubesimgconverter python3-rpm python3-tqdm python3-unbound python3-zmq qubes-core-agent-dom0-updates
   qubes-core-agent-passwordless-root qubes-gpg-split qubes-img-converter qubes-input-proxy-sender qubes-mgmt-salt-vm-connector qubes-pdf-converter
   qubes-repo-templates qubes-usb-proxy rpm salt-common salt-ssh sqlite3 usbutils
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
   pipewire-qubes qubes-vm-recommended
The following NEW packages will be installed:
   pulseaudio-qubes
0 upgraded, 1 newly installed, 2 to remove and 0 not upgraded.
Need to get 22.5 kB of archives.
After this operation, 14.3 kB disk space will be freed.
Do you want to continue? [Y/n] y
Get:1 https://deb.qubes-os.org/r4.2/vm bookworm/main amd64 pulseaudio-qubes amd64 4.2.11-1+deb12u1 [22.5 kB]
Fetched 22.5 kB in 1s (15.5 kB/s)
(Reading database ... 349104 files and directories currently installed.)
Removing qubes-vm-recommended (4.2.9-1+deb12u1) ...
Removing pipewire-qubes (4.2.11-1+deb12u1) ...
Selecting previously unselected package pulseaudio-qubes.
(Reading database ... 349090 files and directories currently installed.)
Preparing to unpack .../pulseaudio-qubes_4.2.11-1+deb12u1_amd64.deb ...
Unpacking pulseaudio-qubes (4.2.11-1+deb12u1) ...
Setting up pulseaudio-qubes (4.2.11-1+deb12u1) ...
Scanning processes...
Scanning candidates...
Scanning linux images...

Running kernel seems to be up-to-date.

Restarting services...
  systemctl restart plymouth.service
Failed to restart plymouth.service: Unit plymouth.service failed to load properly, please adjust/correct and reload service manager: File exists
See system logs and 'systemctl status plymouth.service' for details.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.

I'll see whether I can set them to manually installed as a workaround...

3hhh commented 8 months ago

And yes, audio now works. Thanks for the support!

3hhh commented 8 months ago

I'll leave this open for the aforementioned packaging conflict.

subhadipghorui commented 7 months ago

sudo apt install pulseaudio-qubes

no package found

subhadipghorui commented 7 months ago

I have installed pulseaudio

when I run it it show this

W: [pulseaudio] pid.c: Stale PID file, overwriting. E: [pulseaudio] socket-server.c: bind(): Address already in use E: [pulseaudio] module.c: Failed to load module "module-native-protocol-unix" (argument: ""): initialization failed. E: [pulseaudio] main.c: D-Bus name org.pulseaudio.Server already taken. N: [pulseaudio] alsa-util.c: Disabling timer-based scheduling because running inside a VM. N: [pulseaudio] alsa-util.c: Disabling timer-based scheduling because running inside a VM.

3hhh commented 3 months ago

After the recent successful dom0 switch to pipewire I tested pipewire in my debian12 VMs and can confirm that it works by now as well. Thanks!

andrewdavidwong commented 3 months ago

Closing as completed. If anyone believes this issue is not yet completed, or if anyone is still affected by this issue, please leave a comment, and we'll be happy to reopen it. Thank you.