Knowledge Base
Searching in : Article
ID: AR12U01215
Applies to: NoMachine Software
Added on: 2023-12-07
Last Update: 2023-12-11
Print this article

How to support audio in NoMachine virtual desktops on Linux host using PipeWire

Support for PipeWire sound framework in NoMachine virtual desktops relies on the WirePlumber audio session manager for controlling PipeWire instances created during each connection. WirePlumber is considered a more efficient alternative to PipeWire Media Session, since it has more functionalities and looks easier to configure and control. Additionally, it's likely it will replace PipeWire Media Session as default audio session manager.

On those systems still using PipeWire Media Session, it's necessary to replace it (pipewire-media-session) session manager with the WirePlumber (wireplumber) session manager.

Instructions

1) Check if WirePlumber is installed:
$ wireplumber

If WirePlumber is not found, install it:
$ sudo apt install wireplumber

2) Go to /usr/share/pipewire/

3) Open pipewire.conf, i.e:
$ sudo nano pipewire.conf

4) Scroll down to context.exec section, replace 'pipewire-media-session' with '/bin/wireplumber'
Uncomment '# { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }'
Your context.exec section should look like this (without commented lines):
context.exec = [
    { path = "/bin/wireplumber" args = "" }
    { path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
]


5) You can stop PipeWire Media Session:
$ systemctl --user --now stop pipewire-media-session

6) Now you can restart pipewire service in order to apply the changes:
$ systemctl --user --now restart pipewire.{service,socket}

This method should be enough but if there is still no sound, you may try this guide: https://gist.github.com/the-spyke/2de98b22ff4f978ebf0650c90e82027e