FreeRDP - это бесплатный клиент удаленного рабочего стола (RDP), выпущенный под лицензией Apache. Сайт проекта www.freerdp.com
FreeRDP удалённо отображает рабочий стол Windows Terminal Server 2003 и более старших версий, а так же рабочий стол Windows XP и более старших версий. FreeRDP запускается на компьютерах с операционной системой Linux, Mac OS, Windows и на тонких клиентах с ARM процессорами работающими под Linux. FreeRDP, начиная со 2-й версии, лучший клиент удалённого рабочего стола для Linux.
Установка FreeRDP последней версии на Debian или Ubuntu Linux:
sudo apt install freerdp2-x11
В Raspbian Linux для микрокомпьютера Raspberry Pi 2-я версия FreeRDP, на момент написания этой статьи, была не доступна, а в первой версии были замечены недостатки при работе с CorelDraw. Для комфортной работы на Raspberry Pi с удалёнными рабочими столами по протоколу RDP можно установить пакет freerdp2-x11 из исходных кодов:
1) скачайте исходники
git clone git://github.com/FreeRDP/FreeRDP.git
2) перейдите в папку FreeRDP
cd FreeRDP
3) установите базовые пакеты (зависимости)
sudo apt install ninja-build build-essential git-core debhelper cdbs dpkg-dev autotools-dev cmake pkg-config xmlto libssl-dev docbook-xsl xsltproc libxkbfile-dev libx11-dev libwayland-dev libxrandr-dev libxi-dev libxrender-dev libxext-dev libxinerama-dev libxfixes-dev libxcursor-dev libxv-dev libxdamage-dev libxtst-dev libcups2-dev libpcsclite-dev libasound2-dev libpulse-dev libjpeg-dev libgsm1-dev libusb-1.0-0-dev libudev-dev libdbus-glib-1-dev uuid-dev libxml2-dev libgstreamer1.0-dev libgstreamer0.10-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-base0.10-dev
4) установите дополнительные пакеты
sudo apt install libcunit1-dev libdirectfb-dev xmlto doxygen libxtst-dev
5) сгенерируйте make-файлы
cmake .
Так же можно использовать утилиту ccmake. Для включения дополнительных функций FreeRDP команду cmake следует использовать с ключами вида -DWITH_XXX = ON. Где XXX - название этой функции. Например:
cmake -GNinja -DCHANNEL_URBDRC=ON -DWITH_DSP_FFMPEG=ON -DWITH_CUPS=ON -DWITH_PULSE=ON -DWITH_FAAC=ON -DWITH_FAAD2=ON -DWITH_GSM=ON .l
6) установите FreeRDP в вашу систему
sudo cmake --build . --target install
7) запускаем FreeRDP и подключаемся к удалённому рабочему столу Windows
xfreerdp /v:192.168.0.206 /u:user /p:password /f -themes -decorations /gdi:hw
Рис. 1. Вход в Windows с Linux компьютера с помощью FreeRDP 2
Перечислим некоторые ключи команды xfreerdp:
/v: IP адрес терминального сервера
/u: имя пользователя зарегистрированного на сервере терминалов с правами на удалённый доступ
/p: пароль этого пользователя
/f удалённый рабочий стол открывается на весь экран
Подробнее на сайте проекта FreeRDP или в руководстве пользователя доступном по команде
xfreerdp /help
или
man xfreerdp
Ключи компиляции по умолчанию:
AVCODEC_INCLUDE_DIR AVCODEC_INCLUDE_DIR-NOTFOUND AVCODEC_LIBRARY AVCODEC_LIBRARY-NOTFOUND AVRESAMPLE_INCLUDE_DIR AVRESAMPLE_INCLUDE_DIR-NOTFOUND AVRESAMPLE_LIBRARY AVRESAMPLE_LIBRARY-NOTFOUND AVUTIL_INCLUDE_DIR AVUTIL_INCLUDE_DIR-NOTFOUND AVUTIL_LIBRARY AVUTIL_LIBRARY-NOTFOUND BUILD_TESTING OFF BUILTIN_CHANNELS ON CCACHE CCACHE-NOTFOUND CHANNEL_AUDIN ON CHANNEL_AUDIN_CLIENT ON CHANNEL_AUDIN_SERVER ON CHANNEL_CLIPRDR ON CHANNEL_CLIPRDR_CLIENT ON CHANNEL_CLIPRDR_SERVER ON CHANNEL_DISP ON CHANNEL_DISP_CLIENT ON CHANNEL_DISP_SERVER OFF CHANNEL_DRDYNVC ON CHANNEL_DRDYNVC_CLIENT ON CHANNEL_DRDYNVC_SERVER ON CHANNEL_DRIVE ON CHANNEL_DRIVE_CLIENT ON CHANNEL_DRIVE_SERVER OFF CHANNEL_ECHO ON CHANNEL_ECHO_CLIENT ON CHANNEL_ECHO_SERVER ON CHANNEL_ENCOMSP ON CHANNEL_ENCOMSP_CLIENT ON CHANNEL_ENCOMSP_SERVER ON CHANNEL_GEOMETRY ON CHANNEL_GEOMETRY_CLIENT ON CHANNEL_PARALLEL ON CHANNEL_PARALLEL_CLIENT ON CHANNEL_PARALLEL_SERVER OFF CHANNEL_PRINTER OFF CHANNEL_RAIL ON CHANNEL_RAIL_CLIENT ON CHANNEL_RAIL_SERVER OFF CHANNEL_RDP2TCP ON CHANNEL_RDP2TCP_CLIENT ON CHANNEL_RDP2TCP_SERVER OFF CHANNEL_RDPDR ON CHANNEL_RDPDR_CLIENT ON CHANNEL_RDPDR_SERVER ON CHANNEL_RDPEI ON CHANNEL_RDPEI_CLIENT ON CHANNEL_RDPEI_SERVER OFF CHANNEL_RDPGFX ON CHANNEL_RDPGFX_CLIENT ON CHANNEL_RDPGFX_SERVER OFF CHANNEL_RDPSND ON CHANNEL_RDPSND_CLIENT ON CHANNEL_RDPSND_SERVER ON CHANNEL_REMDESK ON CHANNEL_REMDESK_CLIENT ON CHANNEL_REMDESK_SERVER ON CHANNEL_SERIAL ON CHANNEL_SERIAL_CLIENT ON CHANNEL_SERIAL_SERVER OFF CHANNEL_SMARTCARD ON CHANNEL_SMARTCARD_CLIENT ON CHANNEL_SMARTCARD_SERVER OFF CHANNEL_SSHAGENT OFF CHANNEL_TSMF ON CHANNEL_TSMF_CLIENT ON CHANNEL_TSMF_SERVER OFF CHANNEL_URBDRC OFF CHANNEL_VIDEO ON CHANNEL_VIDEO_CLIENT ON CMAKE_BUILD_TYPE CMAKE_INSTALL_PREFIX /usr/local GSTREAMER_1_0_APP_LIBRARIES /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so GSTREAMER_1_0_AUDIO_LIBRARIES /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so GSTREAMER_1_0_BASE_LIBRARIES /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so GSTREAMER_1_0_FFT_LIBRARIES /usr/lib/x86_64-linux-gnu/libgstfft-1.0.so GSTREAMER_1_0_PBUTILS_LIBRARIE /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so GSTREAMER_1_0_VIDEO_LIBRARIES /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so PRODUCT FreeRDP SWRESAMPLE_INCLUDE_DIR SWRESAMPLE_INCLUDE_DIR-NOTFOUND SWRESAMPLE_LIBRARY SWRESAMPLE_LIBRARY-NOTFOUND USE_VERSION_FROM_GIT_TAG OFF VENDOR FreeRDP WAYLAND_CLIENT_LIB /usr/lib/x86_64-linux-gnu/libwayland-client.so WAYLAND_CURSOR_LIB /usr/lib/x86_64-linux-gnu/libwayland-cursor.so WAYLAND_INCLUDE_DIR /usr/include WAYLAND_SCANNER /usr/bin/wayland-scanner WITH_ALSA ON WITH_CAIRO OFF WITH_CCACHE ON WITH_CHANNELS ON WITH_CLANG_FORMAT ON WITH_CLIENT ON WITH_CLIENT_CHANNELS ON WITH_CLIENT_COMMON ON WITH_CLIENT_INTERFACE OFF WITH_CUPS OFF WITH_DEBUG_ALL OFF WITH_DEBUG_CAPABILITIES OFF WITH_DEBUG_CERTIFICATE OFF WITH_DEBUG_CHANNELS OFF WITH_DEBUG_CLIPRDR OFF WITH_DEBUG_DVC OFF WITH_DEBUG_KBD OFF WITH_DEBUG_LICENSE OFF WITH_DEBUG_MUTEX OFF WITH_DEBUG_NEGO OFF WITH_DEBUG_NLA OFF WITH_DEBUG_NTLM OFF WITH_DEBUG_RAIL OFF WITH_DEBUG_RDP OFF WITH_DEBUG_RDPDR OFF WITH_DEBUG_RDPEI OFF WITH_DEBUG_RDPGFX OFF WITH_DEBUG_REDIR OFF WITH_DEBUG_RFX OFF WITH_DEBUG_RINGBUFFER OFF WITH_DEBUG_SCARD OFF WITH_DEBUG_SND OFF WITH_DEBUG_SVC OFF WITH_DEBUG_SYMBOLS OFF WITH_DEBUG_THREADS OFF WITH_DEBUG_TIMEZONE OFF WITH_DEBUG_TRANSPORT OFF WITH_DEBUG_TSG OFF WITH_DEBUG_TSMF OFF WITH_DEBUG_WND OFF WITH_DEBUG_X11 OFF WITH_DEBUG_X11_CLIPRDR OFF WITH_DEBUG_X11_LOCAL_MOVESIZE OFF WITH_DEBUG_XV OFF WITH_DSP_EXPERIMENTAL OFF WITH_FAAC OFF WITH_FAAD2 OFF WITH_FFMPEG OFF WITH_GPROF OFF WITH_GSM OFF WITH_GSSAPI OFF WITH_GSTREAMER_0_10 OFF WITH_GSTREAMER_1_0 ON WITH_ICU OFF WITH_IPP OFF WITH_JPEG OFF WITH_LAME OFF WITH_LIBSYSTEMD OFF WITH_MANPAGES ON WITH_MBEDTLS OFF WITH_OPENH264 OFF WITH_OPENSLES OFF WITH_OPENSSL ON WITH_OSS ON WITH_PCSC OFF WITH_PROFILER OFF WITH_PULSE OFF WITH_SAMPLE OFF WITH_SANITIZE_ADDRESS OFF WITH_SANITIZE_MEMORY OFF WITH_SANITIZE_THREAD OFF WITH_SERVER OFF WITH_SERVER_INTERFACE ON WITH_SMARTCARD_INSPECT OFF WITH_SOXR OFF WITH_SSE2 ON WITH_SWSCALE OFF WITH_THIRD_PARTY OFF WITH_VALGRIND_MEMCHECK OFF WITH_WAYLAND OFF WITH_WINPR_TOOLS ON WITH_X11 ON WITH_X264 OFF WITH_XCURSOR ON WITH_XEXT ON WITH_XFIXES ON WITH_XI ON WITH_XINERAMA ON WITH_XKBFILE ON WITH_XRANDR ON WITH_XRENDER ON WITH_XSHM ON WITH_XV ON WITH_ZLIB ON XKBCOMMON_INCLUDE_DIR XKBCOMMON_INCLUDE_DIR-NOTFOUND XKBCOMMON_LIBS XKBCOMMON_LIBS-NOTFOUND XSLTPROC_EXECUTABLE /usr/bin/xsltproc