CN115390987A - 一种基于在arm64架构虚拟机中支持qxl显示的方法 - Google Patents

一种基于在arm64架构虚拟机中支持qxl显示的方法 Download PDF

Info

Publication number
CN115390987A
CN115390987A CN202210931914.4A CN202210931914A CN115390987A CN 115390987 A CN115390987 A CN 115390987A CN 202210931914 A CN202210931914 A CN 202210931914A CN 115390987 A CN115390987 A CN 115390987A
Authority
CN
China
Prior art keywords
qxl
virtual machine
qemu
display
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210931914.4A
Other languages
English (en)
Inventor
谢明
孙立明
张铎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202210931914.4A priority Critical patent/CN115390987A/zh
Publication of CN115390987A publication Critical patent/CN115390987A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明涉及计算机科学技术领域,具体涉及一种基于在ARM64架构虚拟机中支持QXL显示的方法,包括如下步骤:S1、对ARM64架构的QEMU虚拟机的源码进行重新编译,以使其支持QXL显卡;S2、更改所述QEMU虚拟机的源码驱动,使其支持启动所述QXL显卡。该方法可以解决在ARM64架构上QEMU虚拟机中不能使用QXL虚拟显卡的问题。

Description

一种基于在ARM64架构虚拟机中支持QXL显示的方法
技术领域
本发明涉及计算机科学技术领域,具体涉及一种基于在ARM64架构虚拟机中支持QXL显示的方法。
背景技术
随着云计算、虚拟化技术的不断发展,云桌面技术也越来越成熟,集中管控和分配资源给企业带来的是硬件成本和人力成本、管理成本的降低,而在云桌面中虚拟机中的显示虚拟化又是至关重要的一个环节。
QXL是QEMU提供的一种全虚拟化显卡。QEMU中可以模拟CIRRUS、VGA和QXL等显卡,这几种显卡都是通过纯软件模拟,具有很好的扩展性和移植性。其中QXL性能突出,在云桌面办公、视频播放等应用场景都比传统的VGA、CIRRUS体验更优。特别是在X86架构下的云桌面,QXL+spice是作为默认配置广泛应用于各大云厂商。
但是在当前仅次于X86的服务器生态的ARM64架构服务器上的虚拟机中却无法使用QXL虚拟机显示技术,其中主要原因一个是社区发行版中ARM64架构的QEMU均未支持QXL设备模拟,另一个原因是GUESTOS中QEL在ARM64架构中无法使用,存在问题,启动内核时KVM会报出错误导致虚拟机卡死。
因此,有必要提供一种方法,解决在ARM64架构上QEMU虚拟机中不能使用QXL虚拟显卡的问题。
发明内容
解决的技术问题
针对现有技术所存在的上述缺点,本发明提供了一种基于在ARM64架构虚拟机中支持QXL显示的方法,该方法可以解决在ARM64架构上QEMU虚拟机中不能使用QXL虚拟显卡的问题。
技术方案
为实现以上目的,本发明通过以下技术方案予以实现:
本发明提供了一种基于在ARM64架构虚拟机中支持QXL显示的方法,包括如下步骤:
S1、对ARM64架构的QEMU虚拟机的源码进行重新编译,以使其支持QXL显卡;
S2、更改所述QEMU虚拟机的源码驱动,使其支持启动所述QXL显卡。
进一步地,步骤S1具体包括:
下载所述QEMU虚拟机的源码,所述QEMU虚拟机的源码与所述ARM64架构对应;
打开所述QEMU虚拟机的源码中的QXL开关使其支持所述QXL显卡;
在所述ARM64架构中重新编译安装QEMU,并在XML配置使用该QEMU作为模拟器,生成新的QEMU虚拟机。
进一步地,所述打开所述QEMU虚拟机的源码中的QXL开关使其支持所述QXL显卡具体包括:在所述QEMU虚拟机的源码中对应的CONFIG配置文件中添加CONFIG_QXL=y。
进一步地,步骤S2具体包括:
更改所述源码驱动中跟所述QXL显卡属性相关的地方,使其支持非对齐访问;将所述QXL显卡的所有bar空间全部映射为可以支持非对齐访问内存属性;更改所述源码驱动中跟QXL ROM相关的地方,使其支持IDP/STP指令访问;将所述QXL显卡的ROM地址映射为可以非对齐内存访问属性,并做二次内存内存拷贝,使其支持IDP/STP指令访问。
基于同一发明构想,本发明还提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述任一项所述的方法。
基于同一发明构想,本发明还提供了一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的方法。
有益效果
本发明提供一种基于在ARM64架构虚拟机中支持QXL显示的方法,该方法可以解决在ARM64架构上QEMU虚拟机中不能使用QXL虚拟显卡的问题;进一步地,该方法由于优化算法的设计和实现都是自主设计研发,具有自主可控性;最后,该方法实现效果明显,采用本发明的方法,可以有效解决基于ARM64的虚拟机QXL显卡无法使用问题,使大量云桌面厂商从传统X86上的业务可以无缝迁移到国产CPU平台。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于在ARM64架构虚拟机中支持QXL显示的方法步骤示意图;
图2为本发明一实施例提供的基于在ARM64架构虚拟机中支持QXL显示的方法框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本发明提到的技术术语进行解释。
云桌面:云桌面又称桌面虚拟化,是虚拟化和云计算时代的典型应用,云桌面通过云计算技术在云端数据中心搭建服务器集群,创建多个虚拟机以提供远程的计算、存储、应用程序等个性化内容的远程服务,用户通过各种云终端设备通过网络连入远程云桌面,获得属于自己的计算、存储、个性化应用和数据内容,实现与本地PC一致的使用体验。云桌面通过云桌面传输协议向用户交付。云桌面传输协议是云桌面核心技术之一,决定着云桌面的效率和展现效果。
QEMU:在Linux平台上广泛使用的开源虚拟机监视器,可以以纯软件方式提供虚拟化服务,结合Linux内核中的KVM(Kernel Virtual Machine,内核虚拟机)模块,可实现对硬件虚拟化的支持。目前在Linux平台通常采用QEMU+KVM来提供虚拟化服务:KVM负责对CPU和内存的虚拟化,而QEMU负责设备模拟的功能,包括模拟BIOS、PCI/PCIE总线、磁盘、网卡、显卡、声卡、键盘、鼠标等。QEMU也负责与SPICE等云桌面的对接:接收SPICE等云桌面发过来的用户操作请求并传递给虚拟机,并将虚拟机中的图像、声音等数据发送给SPICE等云桌面。
SPICE:SPICE(Simple Protocol for Independent Computing Environment,简单协议独立计算环境)协议,是基于KVM+QEMU虚拟机的开源云桌面传输协议,主要应用于Linux内核操作系统的桌面虚拟化。QEMU和SPICE相互配合,共同提供了远程访问云桌面的解决方案:QEMU定时扫描获取虚拟机中的桌面图像,并将其发送给SPICE服务端,SPICE服务端对图像进行压缩处理后,再通过网络发送至SPICE客户端,客户端对压缩数据进行解压,并将桌面图像呈现在显示窗口中。
QXL:QXL是QEMU提供的一种全虚拟化显卡。QEMU中可以模拟CIRRUS、VGA和QXL等显卡,这几种显卡都是通过纯软件模拟,具有很好的扩展性和移植性。其中QXL性能突出,在云桌面办公、视频播放等应用场景都比传统的VGA、CIRRUS体验更优。特别是在X86架构下的云桌面,QXL+spice是作为默认配置广泛应用于各大云厂商。
参阅图1和图2,本发明一实施例提供了一种基于在ARM64架构虚拟机中支持QXL显示的方法,包括如下步骤:S1、对ARM64架构的QEMU虚拟机的源码进行重新编译,以使其支持QXL显卡;S2、更改所述QEMU虚拟机的源码驱动,使其支持启动所述QXL显卡。
在本实施例中,步骤S1具体包括:下载所述QEMU虚拟机的源码,所述QEMU虚拟机的源码与所述ARM64架构对应;打开所述QEMU虚拟机的源码中的QXL开关使其支持所述QXL显卡;在所述ARM64架构中重新编译安装QEMU,并在XML配置使用该QEMU作为模拟器,生成新的QEMU虚拟机。
在本实施例中,所述打开所述QEMU虚拟机的源码中的QXL开关使其支持所述QXL显卡具体包括:在所述QEMU虚拟机的源码中对应的CONFIG配置文件中添加CONFIG_QXL=y。
在本实施例中,步骤S2具体包括:更改所述源码驱动中跟所述QXL显卡属性相关的地方,使其支持非对齐访问;将所述QXL显卡的所有bar空间全部映射为可以支持非对齐访问内存属性;更改所述源码驱动中跟QXLROM相关的地方,使其支持IDP/STP指令访问;将所述QXL显卡的ROM地址映射为可以非对齐内存访问属性,并做二次内存内存拷贝,使其支持IDP/STP指令访问。其中,在ARM中有两种方式可以实现程序的跳转:跳转指令和直接向PC寄存器中写入目标地址值。通过直接向PC寄存器中写入目标地址值可以实现64bit地址空间跳转,称之为长跳转。ARM的跳转指令可以从当前指令向前或向后的32MB的地址空间跳转。这类跳转指令由以下4种:B跳转指令;BL带返回的跳转指令;BLX带返回和状态切换的跳转指令;BX带状态切换的跳转指令。LDP指令和STP指令是指LDP和STP实现多直接内存的加载与存储,并且LDP和STP支持3种寻址模式:a.基地址偏移量模式;b.前变基模式;c.后变基模式。
基于同一发明构想,本发明还提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述基于在ARM64架构虚拟机中支持QXL显示的方法。
所述处理器在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器(例如GPU(Graphics Processing Unit-图形处理器))、或其他数据处理芯片。该处理器通常用于控制所述电子设备的总体操作。本实施例中,所述处理器用于运行所述存储器中存储的程序代码或者处理数据,例如运行所述基于在ARM64架构虚拟机中支持QXL显示的方法的程序代码。
所述存储器至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器可以是所述电子设备的内部存储单元,例如该电子设备的硬盘或内存。在另一些实施例中,所述存储器也可以是所述电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器还可以既包括所述电子设备的内部存储单元也包括其外部存储设备。本实施例中,所述存储器通常用于存储安装于所述电子设备的操作方法和各类应用软件,例如所述基于在ARM64架构虚拟机中支持QXL显示的方法的程序代码等。此外,所述存储器还可以用于暂时地存储已经输出或者将要输出的各类数据。
基于同一发明构想,本发明还提供一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现所述基于在ARM64架构虚拟机中支持QXL显示的方法。
综上所述,本发明的优点在于提供一种基于在ARM64架构虚拟机中支持QXL显示的方法,该方法可以解决在ARM64架构上QEMU虚拟机中不能使用QXL虚拟显卡的问题;进一步地,该方法由于优化算法的设计和实现都是自主设计研发,具有自主可控性;最后,该方法实现效果明显,采用本发明的方法,可以有效解决基于ARM64的虚拟机QXL显卡无法使用问题,使大量云桌面厂商从传统X86上的业务可以无缝迁移到国产CPU平台。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (6)

1.一种基于在ARM64架构虚拟机中支持QXL显示的方法,其特征在于,包括如下步骤:
S1、对ARM64架构的QEMU虚拟机的源码进行重新编译,以使其支持QXL显卡;
S2、更改所述QEMU虚拟机的源码驱动,使其支持启动所述QXL显卡。
2.根据权利要求1所述的基于在ARM64架构虚拟机中支持QXL显示的方法,其特征在于,步骤S1具体包括:
下载所述QEMU虚拟机的源码,所述QEMU虚拟机的源码与所述ARM64架构对应;
打开所述QEMU虚拟机的源码中的QXL开关使其支持所述QXL显卡;
在所述ARM64架构中重新编译安装QEMU,并在XML配置使用该QEMU作为模拟器,生成新的QEMU虚拟机。
3.根据权利要求2所述的基于在ARM64架构虚拟机中支持QXL显示的方法,其特征在于,所述打开所述QEMU虚拟机的源码中的QXL开关使其支持所述QXL显卡具体包括:在所述QEMU虚拟机的源码中对应的CONFIG配置文件中添加CONFIG_QXL=y。
4.根据权利要求1所述的基于在ARM64架构虚拟机中支持QXL显示的方法,其特征在于,步骤S2具体包括:
更改所述源码驱动中跟所述QXL显卡属性相关的地方,使其支持非对齐访问;将所述QXL显卡的所有bar空间全部映射为可以支持非对齐访问内存属性;更改所述源码驱动中跟QXL ROM相关的地方,使其支持IDP/STP指令访问;将所述QXL显卡的ROM地址映射为可以非对齐内存访问属性,并做二次内存内存拷贝,使其支持IDP/STP指令访问。
5.一种电子设备,其特征在于,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1至4中任一项所述的方法。
6.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至4中任一项所述的方法。
CN202210931914.4A 2022-08-04 2022-08-04 一种基于在arm64架构虚拟机中支持qxl显示的方法 Pending CN115390987A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210931914.4A CN115390987A (zh) 2022-08-04 2022-08-04 一种基于在arm64架构虚拟机中支持qxl显示的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210931914.4A CN115390987A (zh) 2022-08-04 2022-08-04 一种基于在arm64架构虚拟机中支持qxl显示的方法

Publications (1)

Publication Number Publication Date
CN115390987A true CN115390987A (zh) 2022-11-25

Family

ID=84118601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210931914.4A Pending CN115390987A (zh) 2022-08-04 2022-08-04 一种基于在arm64架构虚拟机中支持qxl显示的方法

Country Status (1)

Country Link
CN (1) CN115390987A (zh)

Similar Documents

Publication Publication Date Title
US10074206B1 (en) Network-optimized graphics library for virtualized graphics processing
CN103282881B (zh) 通过虚拟化直接共享智能设备
US9176765B2 (en) Virtual machine system and a method for sharing a graphics card amongst virtual machines
CN102567052B (zh) 启用配置有图形处理器的服务器的远程管理的技术
CN102369510B (zh) 使用存储器分段和基于acpi的上下文切换加载操作系统
US7568189B2 (en) Code translation and pipeline optimization
US10310879B2 (en) Paravirtualized virtual GPU
CN102207896B (zh) 虚拟机崩溃文件生成技术
US8416253B2 (en) Apparatus, method, and recording medium for detecting update of image information
US20060146057A1 (en) Systems and methods for virtualizing graphics subsystems
US10102605B1 (en) Graphics library virtualization for virtualized graphics processing
CN110888599B (zh) 接口装置、用于虚拟化大容量存储的系统
CN102495769A (zh) 动态虚拟设备故障恢复
US20110246988A1 (en) Hypervisor for starting a virtual machine
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP2011028712A (ja) システム初期化の動作中にプラットフォーム・グラフィクスを表示するための方法及びシステム
CN110928935B (zh) 数据的访问命令处理方法、装置和系统
US8490116B2 (en) Emulating legacy video using UEFI
US11875145B2 (en) Virtual machine update while keeping devices attached to the virtual machine
CN113419845A (zh) 计算加速方法和装置、计算系统、电子设备及计算机可读存储介质
US20210357339A1 (en) Efficient management of bus bandwidth for multiple drivers
CN109426511B (zh) 软核更新方法和系统
CN108733602B (zh) 数据处理
CN116701285A (zh) 远程访问控制装置、方法、设备及计算机可读介质
CN115390987A (zh) 一种基于在arm64架构虚拟机中支持qxl显示的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination