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

Вход в Windows с Linux компьютера с помощью FreeRDP 2

Рис. 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