Столкнулся с проблемой - при подключении к терминальной ферме на основе 2012r2 через freerdp не было звука, при том если подключаться напрямую к серверу, звук был.
Возникла острая необходимость эту проблему побороть. Так как при подключении с виндового клиента звук был -
то, сделано предположение, что проблема во freerdp. Решил попробовать пересобрать, забегая вперед, поделюсь, что мою
проблему пересборка до последней версии freerdp решила.
Перерыв интернет, наткнулся на официальный форум разработчика, а в нём аналогичный вопрос, только про rdesktop.
Попробовал по аналогии с freerdp - сработало.
Вот инструкция:
1. Подключаемся при помощи putty к thinserver (сборка уважаемого admin-a для этого подходит идеально, можно то же самое сделать и с консоли на самом сервере),
2. Логинимся как root, стандартный пароль 1q2w3e4r
3. Переходим в директорию самого сборщика "cd /home/thinstation"
4. Включаем ch-root окружение "./setup-chroot"
5. Нажимаем "Q", что бы закрыть инструкцию
6. Переходим в директорию со скриптом для скачки с репозитариев freerdp (да, при установке он скачивается с офф сайта freerdp) "cd ts/ports/opt/freerdp"
7. Редактируем конфигурационный файл "Pkgfile" "nano Pkgfile"
В строке "Version меняем 1.1 на 2.0 (можно любую версию, влияет только на название нового пакета, вроде бы)
В строке "release" меняем "stable-1.1" на "master"
Сохраняем изменения (нажимаем Ctrl+C, после Y, после Enter)
8. Правим патч freerdp-1.1.0-tprdp.patch (правит всего одну строчку в исходниках, в файле /libfreerdp/common/addin.c зачем, понятия не имею
)"nano freerdp-1.1.0-tprdp.patch"
Меняем в строке, начинающейся с @@ цифры 204 на 250 (номер строки, которую ищет скрипт)
Далее удаляем целиком строку с фигурной скобкой
Ну и напоследок, во всех оставшихся строчках удаляем одну табуляцию (там две)
Сохраняем файл (к тому, что файл поправить нужно именно так, я пришёл, сравнивая файл addin.c в исходниках freerdp от версии stable-1.1 и master).
9. Далее последовательно вводим следующие команды:
"pkgmk -u -d -um" (генерируем новый mdm5 для нашего свеже-отредактированного патча)
"pkgmk -u" (пробуем собрать пакет, не соберётся, ругнувшись на отсутствующие записи в footprint, я так понял, что при обновлении это нормально)
"pkgmk -uf" (обновляем footprint)
"pkgmk -u" (повторно собираем пакет и устанавливаем в сборку)
10. Далее выходим из setup-chroot командой "exit"
11. Ну и пробуем собрать сборку командой "./setup-chroot -b"
12. Пробуем загрузиться по сети с тонкого клиента
13. Проверяем, обновился ли пакет с тонкого клиента в консоли, введя команду "xfreerdp /version"
Версия должна быть старше 1.1
Конфиг freerdp, который я использую:
SESSION_1_TITLE="Terminal Farm"
SESSION_1_TYPE=freerdp
SESSION_1_FREERDP_SERVER=rdp.domain.test
SESSION_1_FREERDP_OPTIONS="/d:domain /cert-ignore /load-balance-info:'tsv://MS Terminal Services Plugin.1.Terminal' /sound"
SESSION_1_ICON=ON
SESSION_1_AUTOSTART=off
Так же прилагаю готовые файлы, актуальные на момент написания поста к сообщению.
P.S. Учитывая то, что ветка MASTER freerdp не стабильна и постоянно обновляется, то рекомендую перед подобными экспериментами на виртуалке со сборщиком сделать Snapshot, чтобы в случае чего, можно было безболезненно откатиться.
P.S.2 В Pkgfile строку с патчем закомментировал, т.к. работает как с патчем, так и без, в общем, надо тестировать.