ubuntu环境下编译安装和测试FreeRDP

简介:

    RDP(Remote Desktop Protocol)是远程桌面连接协议,FreeRDP是RDP的一种实现而且重要的是它开源。RDP协议很复杂,包括BCGR、EUSB、EFS和ESC等等协议,而且连接有GateWay的网络还会涉及到RPC等协议。如果想要全部弄懂比较费时间和精力,如果真的感兴趣倒是可以一试。这里只是讲解一下,在ubuntu环境中如何编译FreeRDP的源代码,事实上,应该说是编译FreeRDP的client端,因为我们这里一般是去连接windows端,而你连接的Desktop本身是作为RDP server存在的。


1. 下载源代码, FreeRDP的源代码在github上,可以使用git clone的方法直接下载在ubuntu中,或者download下来然后放到一个目录中可是可以的,我们这里用git的方法。

     git clone git://github.com/FreeRDP/FreeRDP.git && cd FreeRDP


 2. 下载一些必要的库,搭建编译环境。ubuntu是基于debian的linux的一种发行版,因此需要下载debian的包。

    sudo apt-get install 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

    下面的一些库是可选的。

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


3. 以上就搭建好了编译环境了,接下来就可以编译和安装了。FreeRDP是使用cmake来编译的,所以先运行cmake来产生makefile文件。

    cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_SSE2=ON .

    运行上面命令就产生了一个makefile文件,然后再运行

    make && make install

    如果不报错就说明编译安装成功。


4. 使用之前还需要做一些微小的工作。首先是查看so库被放在哪个具体的目录,因为ubuntu环境会有所不同导致so库放的目录会不一样;其次,添加so库的链接conf文件。

    whereis freerdp查看freerdp放哪。一般是放在/usr/local/lib下,对于64位可能是/usr/local/lib64目录下。

    确定好了freerdp的目录,就需要添加一个/etc/ld.so.conf.d/freerdp.conf文件,并且编辑这个文件加入以下内容:

    /usr/local/lib 

    也就是freerdp的具体路径,这个是能让so库动态加载的,不然打开xfreerdp时会报错。

    

5. 使用。

    确保你要连接的Desktop是可以ping通,并且需要关闭firewall勾选允许远程桌面连接选项。

    xfreerdp /u:username /p:password /w:1366 /h:768 /v:hostname /cert-ignore -sec-nla

    后面两个选项要看成具体的网络环境而定,也可以不需要。

    如下。

ubuntu环境下编译安装和测试FreeRDP