【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧
本文分享至飞腾开发者平台《FT-2000+/64 KVM虚拟化系统解决方案--虚拟桌面》
介绍
本文主要介绍采用virtio-gpu和spice协议的方式的虚拟桌面方案。
本文将摈弃qxl、vga模拟显卡的虚拟化方案,而采用virtio-gpu方式来虚拟显卡,而远程桌面则选择spice协议。
编译QEMU源码
若安装包版本为qemu-2.10.0,该安装包不支持spice远程桌面协议,基于此,本节将通过以下方式来创建虚拟桌面:
1)下载qemu源码。
https://www.qemu.org/download/,本节以qemu-3.0.1为例进行阐述,其中,
mkdir build
cd build
2)配置
. ./configure --target-list=aarch64-softmmu
发现需要zlib库,通过下面命令安装:
yum -y install zlib-1.2.7-17.el7.aarch64.rpm
zlib-devel-1.2.7-17.el7.aarch64.rpm
3)再次配置qemu会发现提示缺少glib-2.40和gthread-2.0
yum -y install glib2-2.54.2-2.el7.aarch64.rpm
glib2-devel-2.54.2-2.el7.aarch64.rpm
4)再次配置qemu会发现提示缺少pixman版本要高于0.21.8
yum -y install pixman-devel-0.34.0-1.el7.aarch64.rpm
5)再次配置发现,已经不会报错了:
其中spice协议是不支持的,另外virgl也不支持,这个是virtio-gpu插件。
6)再次配置
../configure --target-list=aarch64-softmmu --enable-spice
发现需要安装spice-protocal版本大于0.12.3,但是自带的安装包spice-protocol-0.12.13-2.el7.noarch.rpm,所以需要下载:
a)下载spice和spice-protocal:
https://www.spice-space.org/download/releases/。
本节以spice-0.14.0和spice-protocal-0.14.0为例进行阐述:
下载spice-0.14.0和spice-protocal-0.14.0
cd spice-protocal-0.14.0;
./configure ;
make && make install;
cd spice-0.14.0;
./configure;
b)会报缺少celt库,命令安装:
yum -y install celt051-0.5.1.3-8.el7.aarch64.rpm
celt051-devel-0.5.1.3-8.el7.aarch64.rpm
c)再次配置spice-0.14.0会报缺少libjpeg库,命令安装:
yum -y install libjpeg-turbo-devel-1.2.90-5.el7.aarch64.rpm
d)再次配置spice-0.14.0,make&&make install完成编译安装;
7)再次配置
../configure --target-list=aarch64-softmmu --enable-spice
发现还是提示spice版本问题,其原因在于没有找到pkg-config配置文件,通过如下操作找到pkg-config配置文件:
cp /usr/local/lib/pkgconfig/spice-server.pc /usr/lib64/pkgconfig/
8)再次配置qemu
../configure --target-list=aarch64-softmmu --enable-spice
发现已经支持spice协议了
9)安装libssh2:
yum -y install libssh2-1.4.3-10.el7_2.1.aarch64.rpm
libssh2-devel-1.4.3-10.el7_2.1.aarch64.rpm
10)安装libxml:
yum -y install libxml2-2.9.1-6.el7_2.3.aarch64.rpm
libxml2-devel-2.9.1-6.el7_2.3.aarch64.rpm
11)安装virgl,这个是支持virtio-gpu的软件包。自带的包里没有,我们需要自己下载编译:
a)下载virglrenderer-0.7.0.orig.tar.gz2:
http://mirrordirector.raspbian.org/raspbian/pool/main/v/virgl...
./configure; make && make install
b)发现缺少libdrm库,且版本需要大于2.4.50,命令安装:
yum -y install libdrm-2.4.83-2.el7.aarch64.rpm
libdrm-devel-2.4.83-2.el7.aarch64.rpm;
c)再次配置发现缺少gbm库,命令安装:
yum -y install mesa-libgbm-devel-17.2.3-8.20171019.el7.aarch64.rpm
d)再次配置发现缺少epoxy库,命令安装:
yum -y install libepoxy-1.3.1-1.el7.aarch64.rpm
libepoxy-devel-1.3.1-1.el7.aarch64.rpm
e)再次配置virglrenderer:
make&&make install
f)然后执行如下命令,将文件拷贝到/usr/lib64/pkgconfig/下面:
cp /usr/local/lib/pkgconfig/virglrenderer.pc /usr/lib64/pkgconfig/
再次配置qemu发现已经支持virgl。
12)安装usb重定向相关库(也可以不安装。如果不安装,则远程访问虚拟云桌面时,客户端的U盘等设备远程虚拟机无法通过重定向挂载和识别)。
安装:
yum -y install usbredir-0.7.1-3.el7.aarch64.rpm
usbredir-devel-0.7.1-3.el7.aarch64.rpm
13)再次配置qemu,发现已经支持libusb和usb重定向;
make&&make install // 编译安装。
14)将qemu程序需要的库拷贝到/usr/lib64/目录:
cp /usr/local/lib/libvirglrenderer.\* /usr/lib64/ -fa
cp /usr/local/lib/libspice-server.\* /usr/lib64/ -fa
这样运行qemu-system-aarch64就不会找不到这两个库了。
使用virtio-gpu + spice启动虚拟桌面
1)将之前的kvm1域的配置文件中的emulator改为如下路径。
如果仅修改上面qemu路径还会报一个机器名问题,其原因在于qemu没有模拟这个机器,将machine一栏
改成virt-3.0即可 :
2)接下来,我们将桌面协议改成spice,重启libvirtd服务:
3)启动虚拟机:
virsh start kvm1。
4)接下来我们需要安装一个spice远程连接的客户端,本次测试远程连接端是在windows上安装的软件。
可以在spice官网下载:https://www.spice-space.org/download.html
安装好后界面如下:
5900是spice默认的端口号,也可以在域的xml配置文件中指定端口号。连接上以后,就进入远程桌
面了。
5)客户机中安装的是GnomeDesktop,默认进入的是字符界面,如果想进图形界面。输入命令:startx。
图形界面如下所示:
6)如果想要一开虚拟机就进入图形界面,可以这样操作:
cd /etc/systemd/system/
rm default.target
ln -s /lib/systemd/system/graphical.target default.target
推荐阅读
欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料
如开发者在使用飞腾产品有任何问题可通过在线工单联系我们
版权所有。飞腾信息技术有限公司 2023。保留所有权利。
未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。
商标声明
Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。
本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。