mirror of
https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
synced 2025-06-03 06:30:16 +00:00
Update README.md
- Refer to the wiki for build instructions - Update CI and support links - Small tidy-ups
This commit is contained in:
parent
22b84e312e
commit
9611bbf50b
165
README.md
165
README.md
@ -1,9 +1,5 @@
|
|||||||
[](https://travis-ci.org/neutrinolabs/pulseaudio-module-xrdp)
|
[](https://github.com/neutrinolabs/pulseaudio-module-xrdp/actions)
|
||||||
|
[](https://gitter.im/neutrinolabs/xrdp-questions)
|
||||||
The latest version of this document can be found at wiki.
|
|
||||||
|
|
||||||
* https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki/README
|
|
||||||
|
|
||||||
|
|
||||||
# Overview
|
# Overview
|
||||||
xrdp implements Audio Output redirection using PulseAudio, which is a sound
|
xrdp implements Audio Output redirection using PulseAudio, which is a sound
|
||||||
@ -17,144 +13,57 @@ which means it is interoperable with any RDP client which implements it
|
|||||||
|
|
||||||
The client to server audio redirection is implemented as per **Remote Desktop
|
The client to server audio redirection is implemented as per **Remote Desktop
|
||||||
Protocol: Audio Input Redirection Virtual Channel Extension
|
Protocol: Audio Input Redirection Virtual Channel Extension
|
||||||
[[MS-RDPEAI]](https://msdn.microsoft.com/en-us/library/dd342521.aspx)
|
[[MS-RDPEAI]](https://msdn.microsoft.com/en-us/library/dd342521.aspx)**
|
||||||
which means it is interoperable with any RDP client which implements it
|
which means it is interoperable with any RDP client which implements it
|
||||||
(most of them including: MS RDP clients, FreeRDP).
|
(most of them including: MS RDP clients, FreeRDP).
|
||||||
|
|
||||||
Here is how to build pulseaudio modules for your distro, so you can have audio
|
|
||||||
support through xrdp.
|
|
||||||
|
|
||||||
In this instruction, pulseaudio version is **11.1**. You need to **replace the
|
|
||||||
version number in this instruction** if your environment has different
|
|
||||||
versions. You can find out your pulseaudio version executing the following
|
|
||||||
command:
|
|
||||||
|
|
||||||
pulseaudio --version
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
pkg-config --modversion libpulse
|
|
||||||
|
|
||||||
# How to build
|
# How to build
|
||||||
|
These modules make use of the internal pulseaudio module API. To build
|
||||||
|
them you need access to the pulseaudio sources and configuration.
|
||||||
|
|
||||||
## Debian 9 / Ubuntu
|
*Be aware that the pulseaudio application development packages provided
|
||||||
|
with many distributions do not contain the files necessary to use the
|
||||||
|
pulseaudio module API*. Consequently, the preparation for building these
|
||||||
|
modules can be a little more involved than just installing development
|
||||||
|
tools and packages.
|
||||||
|
|
||||||
This instruction also should be applicable to the Ubuntu family.
|
Consult the Pulseaudio Wiki for instructions on building the modules
|
||||||
|
for your platform:-
|
||||||
|
|
||||||
### Prerequisites
|
https://github.com/neutrinolabs/pulseaudio-module-xrdp/wiki
|
||||||
|
|
||||||
Some build tools and package development tools are required. Make sure install
|
|
||||||
the tools.
|
|
||||||
|
|
||||||
apt install build-essential dpkg-dev
|
|
||||||
|
|
||||||
### Prepare & build
|
|
||||||
|
|
||||||
Install pulseaudio and requisite packages to build pulseaudio.
|
|
||||||
|
|
||||||
apt install pulseaudio
|
|
||||||
apt build-dep pulseaudio
|
|
||||||
|
|
||||||
Fetch the pulseaudio source. You'll see `pulseaudio-11.1` directory in your
|
|
||||||
current directory.
|
|
||||||
|
|
||||||
apt source pulseaudio
|
|
||||||
|
|
||||||
Enter into the directory and build the pulseaudio package.
|
|
||||||
|
|
||||||
cd pulseaudio-11.1
|
|
||||||
./configure
|
|
||||||
|
|
||||||
Finally, let's build xrdp source / sink modules. You'll have two .so files
|
|
||||||
`module-xrdp-sink.so` and `module-xrdp-source.so`.
|
|
||||||
|
|
||||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
|
|
||||||
cd pulseaudio-module-xrdp
|
|
||||||
./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-11.1
|
|
||||||
make
|
|
||||||
|
|
||||||
## CentOS 7.x (7.5 or later requires this build procedure)
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
Some build tools and package development tools are required. Make sure install
|
|
||||||
the tools.
|
|
||||||
|
|
||||||
yum groupinstall "Development Tools"
|
|
||||||
yum install rpmdevtools yum-utils
|
|
||||||
rpmdev-setuptree
|
|
||||||
|
|
||||||
### Prepare & build
|
|
||||||
|
|
||||||
Install pulseaudio and requisite packages to build pulseaudio.
|
|
||||||
|
|
||||||
yum install pulseaudio pulseaudio-libs pulseaudio-libs-devel
|
|
||||||
yum-builddep pulseaudio
|
|
||||||
|
|
||||||
Fetch the pulseaudio source and extract. You'll see `~/rpmbuild/BUILD/
|
|
||||||
|
|
||||||
yumdownloader --source pulseaudio
|
|
||||||
rpm --install pulseaudio*.src.rpm
|
|
||||||
|
|
||||||
Build the pulseaudio source. In this phase, pulseaudio is not necessarily needed to be built but
|
|
||||||
configured however there's no way to do only configure.
|
|
||||||
|
|
||||||
rpmbuild -bb --noclean ~/rpmbuild/SPECS/pulseaudio.spec
|
|
||||||
|
|
||||||
Finally, let's build xrdp source / sink modules. You'll have two .so files
|
|
||||||
`module-xrdp-sink.so` and `module-xrdp-source.so`.
|
|
||||||
|
|
||||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
|
|
||||||
cd pulseaudio-module-xrdp
|
|
||||||
./bootstrap && ./configure PULSE_DIR=~/rpmbuild/BUILD/pulseaudio-10.0
|
|
||||||
make
|
|
||||||
|
|
||||||
## Other distro
|
|
||||||
|
|
||||||
First off, find out your pulseaudio version using `pulseaudio --version`
|
|
||||||
command. Download the tarball of the pulseaudio version that you have.
|
|
||||||
|
|
||||||
* https://freedesktop.org/software/pulseaudio/releases/
|
|
||||||
|
|
||||||
After downloading the tarball, extract the tarball and `cd` into the source
|
|
||||||
directory, then run `./configure`.
|
|
||||||
|
|
||||||
wget https://freedesktop.org/software/pulseaudio/releases/pulseaudio-11.1.tar.xz
|
|
||||||
tar xf pulseaudio-11.1.tar.xz
|
|
||||||
cd pulseaudio-11.1
|
|
||||||
./configure
|
|
||||||
|
|
||||||
If additional packages are required to run `./configure`, install requisite
|
|
||||||
packages depending on your environment.
|
|
||||||
|
|
||||||
Finally, let's build xrdp source / sink modules. You'll have two .so files
|
|
||||||
`module-xrdp-sink.so` and `module-xrdp-source.so`.
|
|
||||||
|
|
||||||
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git
|
|
||||||
cd pulseaudio-module-xrdp
|
|
||||||
./bootstrap && ./configure PULSE_DIR=/path/to/pulseaudio-11.1
|
|
||||||
make
|
|
||||||
|
|
||||||
# Install
|
# Install
|
||||||
|
One the modules have been built, `sudo make install` should do the following:-
|
||||||
|
- Install the modules to the correct directory
|
||||||
|
- Install a script `load_pa_modules.sh` to load the modules when a
|
||||||
|
session is started.
|
||||||
|
On many systems this script is installed by default in
|
||||||
|
/usr/libexec/pulseaudio-module-xrdp/
|
||||||
|
- Install a desktop file `pulseaudio-xrdp.desktop` which will call the
|
||||||
|
`load_pa_modules.sh` script when a desktop is loaded.
|
||||||
|
On many systems this script is installed by default in
|
||||||
|
`/etc/xdg/autostart`
|
||||||
|
|
||||||
Just `make install` should install built modules to the correct directory.
|
Note that the modules will only be loaded automatically when the desktop
|
||||||
|
starts if your desktop supports the XDG autostart specification. Most modern
|
||||||
|
desktops support this.
|
||||||
|
|
||||||
You can confirm if the modules properly installed by following command:
|
You can confirm if the modules are properly installed by following command:
|
||||||
```
|
```
|
||||||
ls $(pkg-config --variable=modlibexecdir libpulse)
|
ls $(pkg-config --variable=modlibexecdir libpulse) | grep xrdp
|
||||||
```
|
```
|
||||||
|
|
||||||
If you can see lots of `module-*.so` and `module-xrdp-sink.so`,
|
If you can see `module-xrdp-sink.so` and `module-xrdp-source.so`,
|
||||||
`module-xrdp-source.so`, PulseAudio modules should be properly built and
|
PulseAudio modules are properly built and installed.
|
||||||
installed.
|
|
||||||
|
|
||||||
`module-xrdp-sink.so` and `module-xrdp-source.so` may be installed to the
|
|
||||||
target directory, these files are not necessary and you can remove them safely.
|
|
||||||
|
|
||||||
Enjoy!
|
Enjoy!
|
||||||
|
|
||||||
# See if it works
|
# See if it works
|
||||||
|
The easiest way to test this is to use the `paplay` command to play an
|
||||||
|
audio file.
|
||||||
|
|
||||||
To see if it works, run `pavumeter` in the xrdp session. Playback any YouTube
|
You can also do the following:-
|
||||||
video in Firefox. You'll see "Showing signal levels of **xrdp sink**" and
|
- run `pavumeter` in the xrdp session-
|
||||||
volume meter moving.
|
- Playback any YouTube video in Firefox.
|
||||||
|
|
||||||
|
You'll see "Showing signal levels of **xrdp sink**" and volume meter moving.
|
||||||
|
Loading…
Reference in New Issue
Block a user