+38 (067) 901-63-22

Корзина

0 товара(ов) на сумму
0 грн.

Настройка звука в XRDP для Linux Ubuntu

Автор: Рудюк С.А.

http://corp2.net

Замена Windows Server на Linux Ubuntu - выгодное и полезное решение. Такое решение может получиться более стабильно работающим и главное, масштабируемым и более защищенным. Но, есть в решениях Linux всегда ложка дегтя. Прежде всего, это работа с аппаратурой. Ряд аппаратных средств работает только с Windows. И даже гордятся этим, выставляя на своем корпусе лейбочку мелко-софтовской компании...

Так же, возникает вопрос настройки звука для XRDP в Linux Ubuntu. По умолчанию, звук в XRDP отключен и чтоб его настроить, нужно провести ряд действий. Данная статья рассказывает, как это сделать.

Итак, устанавливаем необходимые нам пакеты:

[code language="bash"]
sudo apt-get build-dep xserver-xorg-core
[/code]


[code language="bash"]
apt-get install autoconf libtool pkg-config
[/code]


[code language="bash"]
apt-get install libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 xutils libpulse-dev
[/code]


Устанавливаем Git, чтоб иметь возможность брать исходные коды прямо из репозитариев:

[code language="bash"]
apt-get install git
[/code]

Клонируем проект XRDP в текущую папку:

[code language="bash"]
git clone git://github.com/FreeRDP/xrdp.git
[/code]

Можно так же просто закачать zip-архив по адресу: https://github.com/FreeRDP/xrdp

Компилируем XRDP:

[code language="bash"]
./bootstrap
[/code]


[code language="bash"]
./configure --enable-jpeg --enable-simplesound
[/code]

С некоторых пор, разработчик убрал опцию --enable-simplesound, поэтому, не пугайтесь, если у вас выдастся сообщение о отсутствующей опции. Сейчас она не особо нужна, т.к. автоматически определяется подключен звук или нет.

[code language="bash"]
make
[/code]


[code language="bash"]
make install
[/code]

Компилируем X11RDP.

Для этого, заходим в каталог xorg/X11R7.6 и вводим команду:

[code language="bash"]
./buildx.sh /opt/X11rdp
[/code]

Создаем ссылку:

[code language="bash"]
ln -s /opt/X11rdp/bin/X11rdp /usr/local/bin/X11rdp
[/code]

Добавляем в загрузку:

[code language="bash"]
cp /etc/xrdp/xrdp.sh /etc/init.d/
[/code]


[code language="bash"]
update-rc.d xrdp.sh defaults
[/code]

Копируем ключ rsa для шифрации:

[code language="bash"]
sudo cp ../xrdp/rsakeys.ini /etc/xrdp
[/code]

Компилируем пакеты, необходимые для переадресации звука:

[code language="bash"]
sudo apt-get install libjson0-dev libsndfile1-dev libspeex-dev libspeexdsp-dev
[/code]

Закачиваем исходные коды пакета pulseaudio из http://freedesktop.org/software/pulseaudio/releases/:

[code language="bash"]
tar -zxvf pulseaudio-3.0.tar.gz
[/code]

Входим в каталог и выполняем:

[code language="bash"]
./configure
[/code]

Если возникли проблемы при компиляции, то возможно вы закачали не тот пакет pulseaudio.

Переходим в каталог xrdp/sesman/chansrv/pulse.

Вам необходимо прокомпилировать библиотеку для передачи звука по XRDP.

Отредактируйте переменную PULSE_DIR на путь к исходным кодам pulseaudio.
После этого, выполните:

[code language="bash"]
make
[/code]

Скопируем библиотеку в pulse (пути могут отличаться в зависимости от версии pulseaudio):

[code language="bash"]
sudo cp module-xrdp-sink.so /usr/lib/pulse-3.0/modules/
[/code]

Теперь, необходимо подредактировать ряд конфигурационных файлов.

Редактируем (или добавляем) файл /etc/asound.conf:

[code language="bash"]
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
[/code]

Редактируем файл /etc/pulse/default.pa:

[code language="bash"]
.nofail
.fail
load-module module-augment-properties
load-module module-xrdp-sink
load-module module-native-protocol-unix
[/code]

Перезагружаемся. После этого, если все правильно настроено у Вас должен передаваться звук по RDP.


P.S. Если у Вас возникло желание сменить дорогие решения на Windows на эффективные и хорошо масштабируемые решения на Linux, звоните к автору данной статьи 067 901-63-22 Рудюк Сергей Анатольевич. Или пишите на: rs@corp2.net