-
-
Save ANRCorleone/39322bd9514607b072adaa36d080d96c to your computer and use it in GitHub Desktop.
Credits | |
# https://c-nergy.be/blog/?p=13655 | |
# https://askubuntu.com/questions/844245/how-to-compile-latest-pulseaudio-with-webrtc-in-ubuntu-16-04 | |
# https://askubuntu.com/questions/496549/error-you-must-put-some-source-uris-in-your-sources-list | |
# https://unix.stackexchange.com/questions/65167/enable-udev-and-speex-support-for-pulseaudio | |
# https://rudd-o.com/linux-and-free-software/how-to-make-pulseaudio-run-once-at-boot-for-all-your-users | |
# https://gist.github.com/rkttu/35ecab5604c9ddc356b0af4644d5a226 | |
# Installation and Enhanced session | |
# follow steps on the post below, I installed Ubuntu 22.04 on a Windows 11 machine | |
# https://techbloggingfool.com/2020/12/26/deploy-a-linux-vm-on-hyper-v-with-sound-20-04-edition/ | |
# or do these steps below | |
# Configure ubuntu for enhanced session | |
# Note - if it asks to reboot and rerun, rerun the install.sh again | |
wget https://raw.githubusercontent.com/Hinara/linux-vm-tools/ubuntu20-04/ubuntu/20.04/install.sh | |
chmod +x install.sh | |
sudo ./install.sh | |
# Back to windows powershell | |
Hyper-V\Set-VM -VMName "Your VM Name" -EnhancedSessionTransportType HvSocket | |
# Audio with some updates | |
# Install Some PreReqs | |
sudo apt-get install git libpulse-dev autoconf m4 intltool build-essential dpkg-dev libtool libsndfile1-dev libspeexdsp-dev libudev-dev -y | |
# Enable source code as downloadable.(can also do this from the gui Settings > About > Software & Updates) | |
sudo cp /etc/apt/sources.list /etc/apt/sources.list~ | |
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list | |
sudo apt-get update | |
# Pulseaudio. Download pulseaudio source in /tmp directory - Do not forget to enable source repositories | |
sudo apt build-dep pulseaudio -y | |
cd /tmp | |
apt source pulseaudio | |
# Compile pulseaudio | |
# go to the pulseaudio folder (pulseaudio-<version.number>) and build it from source, | |
# what I did is follow what's currently in the README file, on the section HACKING - currently the instructions are these | |
cd pulseaudio-<version.number> | |
meson build | |
meson compile -C build | |
build/src/daemon/pulseaudio -n -F build/src/daemon/default.pa -p $(pwd)/build/src/ | |
# Create xrdp sound modules | |
# go back to /tmp folder then clone | |
cd .. | |
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git | |
cd pulseaudio-module-xrdp | |
# like the pulseaudio source, I followed their docs to get this done | |
# https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki/Build-on-Debian-or-Ubuntu | |
scripts/install_pulseaudio_sources_apt_wrapper.sh | |
./bootstrap | |
./configure PULSE_DIR=~/pulseaudio.src | |
sudo make install | |
# Restart Ubuntu, then the VM, hopefully it will all work for you as well. If it works...backup that VM, create a checkpoint :D | |
# Note. I did not use autologin in Ubuntu, I think autologin could cause issues with regards to sound. | |
# I kinda guessed that from reading here https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki/README#install | |
Thank you for writing this! This got me up and running perfect!
I can confirm on 11/29/2023 that the above script works. But I would change line 23 to be more explicit,
Hyper-V\Set-VM "Ubuntu-Bravo" -EnhancedSessionTransportType HvSocket
.
In my case, I also had VMware Powershell modules installed that caused an error without the Hyper-V
prefix.
You may get Set-VM : A parameter cannot be found that matches parameter name 'EnhancedSessionTransportType'.
Because the VMware module also contains a Set-VM
command.
I never understood why Microsoft never provided something like this for official docs... This is pretty much what I've been looking at for the last 3 years and have found it finally! Nice work dude! - The only change I would make is to move it to a repo and create a shell script for a quicker install :)
@ANRCorleone thank you so much for posting this appreciate it! 👍
@ANRCorleone, You are a Godsend!! I have been struggling for MONTHS trying to get Enhanced Session to work!
@ANRCorleone Oh my god! You are a true geek hero for me, and my list is quite short. Thank you so much it worked like a charm from start to end
@ANRCorleone It didn't work for me unfortunately
My configuration:
Ubuntu 22.04 with Hyper V + WIN11.
All commands were successful except for the command : build/src/daemon/pulseaudio -n -F build/src/daemon/default.pa -p $(pwd)/build/src/
(see attachments)
E:[pulseaudio] pid.c: Daemon already running.
E:[pulseaudio] main.c: pa_pid_file_create () non riuscita
Suggestions?
@Bouncerman82 try pipewire version, it worked for me.
link: https://github.com/neutrinolabs/pipewire-module-xrdp
@Bouncerman82 sorry for the late response, I had notifications off. I haven't used this script for some time now - WSL2 with its gui has been working great for me. I hope the last suggestion worked for you
Does not work on 24.04
Does not work on 24.04
For me xrdp and enhanced session worked. I cannot make the pulseaudio work but before upgrading I got a notification by Ubuntu that pulseaudio is not supported.
what is pulseaudio for? I checked and audio works fine without doing anything {ubuntu 24.04)
Hey everyone, I'm happy that this was helpful 😸