hyper-v虚拟机上的ubuntu 18.04 LTS通过xrdp传递声音遇到的一些坑

背景:Windows10 pro上hyper-v自带的ubuntu 18.04 LTS。

在使用虚拟机时发现没有声音,通过这篇博客Linux xrdp远程桌面连接声音重定向来到 pulseaudio-module-xrdp的README。

按照说明来到最后几步:

git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
cd pulseaudio-module-xrdp
./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-11.1
make

出现问题。

问题1:No package 'libpulse' found

解决方法:

sudo apt install libpulse-dev

问题2:module-xrdp-sink.c:26:10: fatal error: config.h: 没有那个文件或目录

问题描述:

make  all-recursive
make[1]: 进入目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp”
Making all in src
make[2]: 进入目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp/src”
  CC       module_xrdp_sink_la-module-xrdp-sink.lo
module-xrdp-sink.c:26:10: fatal error: config.h: 没有那个文件或目录
 #include 
          ^~~~~~~~~~
compilation terminated.
Makefile:472: recipe for target 'module_xrdp_sink_la-module-xrdp-sink.lo' failed
make[2]: *** [module_xrdp_sink_la-module-xrdp-sink.lo] Error 1
make[2]: 离开目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp/src”
Makefile:418: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: 离开目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp”
Makefile:350: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:查看module-xrdp-sink.c源码,搜索config.h,发现注释给出config.h的位置在pulseaudio-11.1的目录下。于是跳转到前面pulseaudio-11.1目录,使用

sudo cp config.h ~/pulseaudio-11.1/pulseaudio-module-xrdp/src/config.h

问题3:module-xrdp-sink.c:52:10: fatal error: pulsecore/core-error.h: 没有那个文件或目录

问题描述:

make  all-recursive
make[1]: 进入目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp”
Making all in src
make[2]: 进入目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp/src”
  CC       module_xrdp_sink_la-module-xrdp-sink.lo
module-xrdp-sink.c:52:10: fatal error: pulsecore/core-error.h: 没有那个文件或目录
 #include 
          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:472: recipe for target 'module_xrdp_sink_la-module-xrdp-sink.lo' failed
make[2]: *** [module_xrdp_sink_la-module-xrdp-sink.lo] Error 1
make[2]: 离开目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp/src”
Makefile:418: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: 离开目录“/home/hetang/pulseaudio-11.1/pulseaudio-module-xrdp”
Makefile:350: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:使用

sudo find / -name core-error.h

发现该文件位置在/pulseaudio-11.1/src/pulsecore/,由于对于linux命令不熟悉,索性

 sudo nautilus

打开文件管理器,把整个pulsecore目录复制到~/pulseaudio-11.1/pulseaudio-module-xrdp/src/

再次make,不再报错。

最后来到Install环节,按照README说明,使用

make install

命令安装。使用

ls $(pkg-config --variable=modlibexecdir libpulse)

命令,检查是否有一大堆module-*.so文件和module-xrdp-sink.so, module-xrdp-source.so文件,如果有则安装成功。

README最后一段提到在开启xrdp的session打开pavumeter这个程序,安装即可:

sudo apt install pavumeter

然后运行pavumeter,打开一个B站视频,即可看到hyper-v虚拟机上的ubuntu 18.04 LTS通过xrdp传递声音遇到的一些坑_第1张图片

但遗憾的是,实体机并未发出声音。

你可能感兴趣的:(hyper-v虚拟机上的ubuntu 18.04 LTS通过xrdp传递声音遇到的一些坑)