基于树莓派的 freeRDP 桌面云终端的简单实现
VDI 虚拟桌面云系统可以通过 RmoteFX, PCoIP,HDX 等远程桌面显示协议将服务器端的虚拟
操作系统桌面环境在远程云终端上显示出来。商用的 VDI 系统需要部署服务器端虚拟机管
理软件如 System Center, XenServer 等软件,购买价格不菲的服务器硬件,以及 500~1000
元之间的云终端接入设备。这里介绍一个只需要普通 PC 和一 个价格低廉的树莓派开发板
就能搭建的 VDI 系统,适合学习理解 VDI 架构和 RemoteFX 协议。
服务器端:
服务器端需要运行 Windows Server 2008 R2, Windows Server2012, 并安装远程桌面虚
拟主机服务组件。需要注意的是在安装该组件是需要卸载运程桌面登入服务组件,也不能安装
System Center 等主件,否则系统会提示组件无法安装。 另外为了更好支持服务器端的流媒
体处理压缩,需要在服务器端 Hyper-V role 设置添加 remotefX 协议的显卡支持。为了支持
remotefX 协议需要确认显卡硬件支持虚拟技术 CPU 虚拟化,和 WMDD 模块。大部分最新型的显
卡如 NVIDIAGt650 以上都支持 remotefX 协议。
安装远程桌面虚拟主机服务主件
REMOTEFX 协议:
主流的远程桌面显示协议包括 RmoteFX, PCoIP,HDX,这里主要介绍 remoteFX 协议。
remoteFX 协议可以将服务器端的桌面图像和视频流数据分开压缩后在网络上传输到云终端
显示;并将用户在云终端的鼠标键盘输入数据传回到服务器端处理。remoteFX 协议添加了
对局域网环境的传输支持,适合在 LAN 环境中部署 VDI 并提供较小延迟。
客户端:
桌面云终根据图形和视频流数据的解码可以分为硬件解码和软件解码两种方式。其中硬件
解码方式通过 ASIC 指令对压缩的视屏流进行硬件解码,解码速率快,但成本也相对较高。
软解码方式通过程序指令对压缩的视频流进行解码,解码速率慢,但成本也相对较低。软
解码方式根据硬件架构可以分为 ARM 和 X86 架构,在其上可以运行 ANDROID,LINUX,和
WINCE 系统。这里我们采用基于 Arm 的树莓派系统和开源的 freeRDP 软件包来实现对
remotefX 协议的云终端支持。
树莓派主要用于学习单板开发,配备一枚 700MHz 的 ARM 处理器,512Mb 内存,以及
HDMI 和 RCA 输出支持。在淘宝上的售价是 298 元。操作系统采用开源的 Linux 系统,
比如 Debian、ArchLinux。板子上配备一个高通 Broadcom VideoCore IV, OpenGL ES 2.0,
1080p 30 h.264/MPEG-4 AVC 高清解码器。软件解码时以对重定向的视频流数据进行硬件加
速。该功能对播放电影和视屏游戏等高能特别有帮助。
freeRDP 的编译安装:
1. git clone git://github.com/FreeRDP/FreeRDP.git
2. 基于 debian based Linux 安装
sudo apt-get install build-essential git-core cmake libssl-dev libx11-dev libxext-dev
libxinerama-dev libxcursor-dev libxdamage-dev libxv-dev libxkbfile-dev libasound2-dev
libcups2-dev libxml2 libxml2-dev libxrandr-dev libgstreamer0.10-dev libgstreamer-
plugins-base0.10-dev
3. cmake -G "Unix Makefiles"
4. make & make install
通过 freeRDP 登入 windows 2012: