Freerdp для linux установить

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Compilation

  • Table of Contents
  • Dependencies
  • Server and Client applications
  • Client
  • Legacy issues (md4, md5)
  • Compilation
  • Linux Specifics
  • Build a Flatpak
  • Dependencies
  • Compilation
  • Installation
  • Traditional packages (`deb` and `rpm`)
  • Nightly build for debian based systems
  • Install the suggested base dependencies:
  • Generating makefiles using cmake:
  • Build:
  • Install:
  • Uninstall:
  • Android specifics
  • macOS Specifics
  • Using a package manager (xfreerdp)
  • Compiling from sources (native client)
  • OpenSSL in MacOS
  • Compiling for Visual Studio or Windows SDK
  • Prerequisites
  • Obtaining the source
  • Preparing the build
  • Building
  • OpenH264
  • OpenSSL
  • FFMPEG
  • FreeRDP
Clone this wiki locally

Server and Client applications

  • `libusb` for raw USB redirection
  • Sound (microphone and playback) requires a encoder/decoder for various formats. That can be:
    • ` FFMPEG ` does all encoding/decoding
    • Use `gsm`, `faad2`, `faac` for ` GSM ` and ` AAC ` support
    • Use `soxr`for sound resampling
    • `H264` can be supported though
      • `OpenH264` (working only with `1.8.0` until https://github.com/cisco/openh264/issues/3476 is resolved)
      • ` FFMPEG `
      • `swscale`
      • `cairo`
      • GStreamer (0.1 or 1.0)
      • Android MediaCodec (h264)
      • Windows MediaFramework (h264)
      • ALSA (sound)
      • PULSE (sound)
      • OSS (sound)
      • CUPS (printing)
      • FUSE (file clipboard)
      • ICU (unicode)
      • OPENSLES (sound)
      • PCSC (smartcard)

      RDP uses a couple of legacy algorithms deep within the protocol which might lead to problems at runtime.
      Ensure, that
      1. md4 and md5 are supported by your SSL library

      1. Compile in md4 or md5 with WITH_INTERNAL_MD4 or WITH_INTERNAL_MD5

      First, you’ll need to get the sources. Everything below assumes you’ll have checked out the FreeRDP sources and you’re now in the source dir:

      git clone https://github.com/FreeRDP/FreeRDP.git cd FreeRDP
      flatpak install flathub org.freedesktop.Platform//19.08
      flatpak install flathub org.freedesktop.Platform.ffmpeg-full//19.08
      flatpak install flathub org.freedesktop.Sdk//19.08
      flatpak-builder --repo=repo packaging/flatpak/com.freerdp.FreeRDP.json
      flatpak build-bundle repo com.freerdp.FreeRDP.flatpak com.freerdp.FreeRDP --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
      flatpak install com.freerdp.FreeRDP.flatpak

      Traditional packages (`deb` and `rpm`)

      Nightly build for debian based systems

      sudo apt build-dep freerdp-x11 or sudo apt build-dep freerdp2-x11

      ln -s packaging/deb/freerdp-nightly debian
      dpkg-buildpackage

      Install the suggested base dependencies:

      sudo apt-get 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 libfaad-dev libfaac-dev

      Building 1.0.1 or master requires:

      sudo apt-get install libavutil-dev libavcodec-dev libavresample-dev

      sudo yum install gcc cmake ninja-build openssl-devel libX11-devel libXext-devel libXinerama-devel libXcursor-devel \ libXi-devel libXdamage-devel libXv-devel libxkbfile-devel alsa-lib-devel cups-devel ffmpeg-devel glib2-devel libusb-devel \ faad2-devel pulseaudio-libs-devel gsm-devel faac-devel

      Fedora 28 and close relatives

      sudo dnf -y install ninja-build cups-devel dbus-glib-devel dbus-devel systemd-devel libuuid-devel pulseaudio-libs-devel gcc-c++ libXrandr-devel \ faac faac-devel faad2-devel gsm-devel gcc cmake openssl-devel libX11-devel libXext-devel libXinerama-devel libXcursor-devel \ libXi-devel libXdamage-devel libXv-devel libxkbfile-devel alsa-lib-devel cups-devel ffmpeg-devel glib2-devel libusb-devel

      Optionally, you can install the following dependencies:

      sudo apt-get install libcunit1-dev libdirectfb-dev xmlto doxygen libxtst-dev

      where cunit is for the unit tests, directfb is for dfreerdp, xmlto is for man pages, and doxygen for API documentation.

      Generating makefiles using cmake:

      FreeRDP uses cmake to create the Makefiles necessary to build the project. The following cmake command turns on some common options (including USB redirect, various audio codecs, and sound subsystems)

      cmake -GNinja -DCHANNEL_URBDRC=ON -DWITH_DSP_FFMPEG=ON -DWITH_CUPS=ON -DWITH_PULSE=ON -DWITH_FAAC=ON -DWITH_FAAD2=ON -DWITH_GSM=ON -B -H

      Review the output of your cmake command carefully: if you’re hoping to use a feature of FreeRDP, cmake must have that feature turned on (typically with a -DWITH_XXX=ON), and it also must find all the necessary files for that feature to be built. This will often include extra -dev or -devel packages which provide specific header files for the compilers used.
      At this point, you can use ccmake to reviews the build options selected and change them to your liking.

      cmake —build will compile the project for you

      If you are using Eclipse, you can also generate Eclipse project files:

      cmake -G «Eclipse CDT4 — Unix Makefiles» -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON

      See Build Options for a list of options.

      cmake —build —target install will install FreeRDP on your system

      with cmake —build —target package you can create tarballs for deployment.

      You should now have xfreerdp installed in /usr/local/bin:

      awake@envy:~$ which xfreerdp /usr/local/bin/xfreerdp

      And you should be able to review the build flags actually determined during the compilation:

      awake@envy:~$ xfreerdp /buildconfig This is FreeRDP version 2.0.0-dev3 (4d0876fcc) Build configuration: BUILD_TESTING=OFF BUILTIN_CHANNELS=ON HAVE_AIO_H=1 HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_JOURNALD_H=TRUE HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIB=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL= HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H=1 HAVE_SYS_FILIO_H= HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H= HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H=1 HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=ON WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 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_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_DIRECTFB=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=ON WITH_EVENTFD_READ_WRITE=1 WITH_FAAC=ON WITH_FAAD2=OFF WITH_FFMPEG=TRUE WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=OFF WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=ON WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 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=ON WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SSE2=ON WITH_THIRD_PARTY=OFF WITH_URBDRC_CLIENT=ON WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=OFF 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=OFF WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=ON WITH_ZLIB=ON Build type: Debug CFLAGS: -fPIC -Wall -Wno-unused-result -Wno-unused-but-set-variable -Wno-deprecated-declarations -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -g Compiler: GNU, 8.1.1 Target architecture: x64

      Plugins are installed in /usr/local/lib(64)/freerdp:

      awake@envy:/usr/local/lib64/freerdp$ ls ibaudin-client-alsa.so libdisp-client.so libgeometry-client.so librdpgfx-client.so librdpsnd-client-oss.so libtsmf-client-ffmpeg-decoder.so libvideo-client.so libaudin-client-oss.so libdrive-client.so libparallel-client.so librdpsnd-client-alsa.so libserial-client.so libtsmf-client-oss-audio.so libaudin-client.so libecho-client.so librdpei-client.so librdpsnd-client-fake.so libtsmf-client-alsa-audio.so libtsmf-client.so

      After launching FreeRDP at least once, ~/.freerdp will be created to store known hosts:

      awake@envy:~/.freerdp$ ls cacert known_hosts

      CA certificates can be added to ~/.freerdp/cacert for additional trusted CAs.

      To uninstall by deleting all created files run:

      1. Builds have been tested on linux hosts, so your mileage on MacOS and Windows may vary (please add additional instructions here if you are using such a build host)
      2. Android SDK and NDK need to be installed

      To build first simply run:

      ./scripts/android-build-freerdp.sh \ --ndk \ --sdk \ --openh264-ndk \ --conf android-build-release.conf

      for the native dependency build and then open the project in AndroidStudio / run `./gradlew` just like with any other android project.

      Using a package manager (xfreerdp)

      If you’re using MacPorts then just install FreeRDP port:

      sudo port install FreeRDP

      FreeRDP is now available as a homebrew recipe.

      Compiling from sources (native client)

      1. You’ll need cmake in order to build from source.
      2. You need OpenSSL (with development headers)
      3. You need FFMPEG (swscale, H264, AAC )
      4. You need cjson (for AzureAD PAA authentication)

      Install it if you don’t have it already, then to make a universal binary build, use:

      `cmake -DCMAKE_OSX_ARCHITECTURES: STRING =i386;x86_64 -DCMAKE_INSTALL_PREFIX= -B -S && cmake —build && cmake —install `

      To make a 64-bit only binary:

      `cmake -DCMAKE_OSX_ARCHITECTURES: STRING =x86_64 -DCMAKE_INSTALL_PREFIX= -B -S && cmake —build && cmake —install `

      If you’ve got CMake error about OpenSSL

      CMake Error at /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR) Call Stack (most recent call first): /usr/local/Cellar/cmake/3.11.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) cmake/FindOpenSSL.cmake:333 (find_package_handle_standard_args)

      try to setup OpenSSL environment variables while configuring build. For example, using OpenSSL libraries from Homebrew:

      export PKG_CONFIG_PATH=$(brew --prefix)/opt/openssl/lib/pkgconfig cmake . cmake --build .

      Compiling for Visual Studio or Windows SDK

      • Visual Studio or Windows SDK
      • meson (also contains ‘ninja’)
      • cmake
      • nasm
      • perl
      • openh264 (optional, but highly recommended for GFX — AVC modes)
      • openssl
      • libusb (how-to: configure/disable)
      • freerdp

      This will check out current master of dependencies. If specific

      git clone https://github.com/cisco/openh264.git -b
      git clone https://github.com/openssl/openssl.git -b
      git clone https://github.com/FreeRDP/freerdp.git -b

      1. Start a visual studio command prompt (or windows sdk prompt) (`vcvars_all.bat`)
        1. Ensure the correct environment is used (32 or 64 bit)
        meson setup  meson configure -Dprefix= -Dbuildtype=release ninja install
        cd perl /Configure shared --prefix= VC-WIN32 (or `VC-WIN64A` for 64 bit builds) nmake depend nmake install_dev
        cmake -GNinja -B -H -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=Release cmake --build --target install

        Источник

        Читайте также:  Linux ppid and pid
Оцените статью
Adblock
detector