-
-
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 | |
Hi, I used your instructions succesfully! Thank you very much!
The one step I couldn't complete succesfully was the 'Compile pulseaudio' step.
Instead I decided to risk it and just installed pulseaudio using 'apt install pulseaudio'.
The end result was the same, Audio now works on the VM. Putting this out there for those who have a similar problem like me.
Hey everyone, I'm happy that this was helpful 😸
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.
Dude... I don't know who you are, but this is the best solution I have found anywhere to this issue. Your explanation above helped me get my sound working after spending hours online and on my own troubleshooting this exact problem -> Hyper-V on Windows 11, Ubuntu Desktop 22.04, no sound. Thank you!!!!