CN116974837A - 基于Qemu调试外部设备的方法、宿主机及存储介质 - Google Patents

基于Qemu调试外部设备的方法、宿主机及存储介质 Download PDF

Info

Publication number
CN116974837A
CN116974837A CN202310863363.7A CN202310863363A CN116974837A CN 116974837 A CN116974837 A CN 116974837A CN 202310863363 A CN202310863363 A CN 202310863363A CN 116974837 A CN116974837 A CN 116974837A
Authority
CN
China
Prior art keywords
qemu
virtual machine
external device
hardware environment
host
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
CN202310863363.7A
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.)
Shenzhen Kaihong Digital Industry Development Co Ltd
Original Assignee
Shenzhen Kaihong Digital Industry Development 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 Shenzhen Kaihong Digital Industry Development Co Ltd filed Critical Shenzhen Kaihong Digital Industry Development Co Ltd
Priority to CN202310863363.7A priority Critical patent/CN116974837A/zh
Publication of CN116974837A publication Critical patent/CN116974837A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种基于Qemu调试外部设备的方法、宿主机及存储介质,属于开发技术领域。该方法包括:获取Qemu源码,根据Qemu源码在宿主机系统上构建Qemu虚拟机;在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟外部设备的硬件环境的启动命令;执行Qemu虚拟机的启动脚本,以在启动脚本中执行启动命令,使得Qemu虚拟机在宿主机系统上运行;在外部设备连接宿主机的情况下,在Qemu虚拟机中模拟外部设备的硬件环境,以在模拟出的硬件环境中对外部设备进行硬件调试。该方法提升了模拟外部设备的硬件环境的效率、便捷性和准确性,降低了调试外部设备时造成硬件损坏的概率。

Description

基于Qemu调试外部设备的方法、宿主机及存储介质
技术领域
本发明涉及开发技术领域,尤其涉及一种基于Qemu调试外部设备的方法、宿主机及存储介质。
背景技术
Qemu是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件。Qemu作为一个开源的硬件模拟器项目,支持x86、arm、arm64、mips、powerpc、ia64等多种硬件架构。Qemu能够模拟设备的系统。因此开发者可以利用Qemu模拟外部设备的硬件环境,对外部设备的硬件进行调试。
然而,现有基于Qemu模拟外部设备的硬件环境的方式,需要开发者预先花费大量时间学习和熟悉相关知识,比如相关参数和硬件体系架构知识等等,除此之外还需要依赖Qemu开发板的芯片手册,效率低,便捷性也低。并且受限于开发者相关知识水平的高低程度,并不能保证能够准确地模拟出外部设备的硬件环境,如果未能准确地模拟出外部设备的硬件环境,可能会在调试时造成硬件的损坏。
发明内容
本发明实施例提供了一种基于Qemu调试外部设备的方法、宿主机及存储介质,旨在提升模拟外部设备的硬件环境的效率、便捷性和准确性,降低调试外部设备时造成硬件损坏的概率。
第一方面,本发明实施例提供一种基于Qemu调试外部设备的方法,包括:
获取Qemu源码,根据所述Qemu源码在宿主机系统上构建Qemu虚拟机;
在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟所述外部设备的硬件环境的启动命令;
执行Qemu虚拟机的启动脚本,以在所述启动脚本中执行所述启动命令,使得所述Qemu虚拟机在所述宿主机系统上运行;
在外部设备连接所述宿主机的情况下,在所述Qemu虚拟机中模拟所述外部设备的硬件环境,以在模拟出的所述硬件环境中对所述外部设备进行硬件调试。
第二方面,本发明实施例还提供一种宿主机,所述宿主机包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现如第一方面所述的基于Qemu调试外部设备的方法。
第三方面,本发明实施例还提供一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如第一方面所述的基于Qemu调试外部设备的方法。
本发明实施例提供一种基于Qemu调试外部设备的方法、设备及存储介质,该基于Qemu调试外部设备的方法,获取Qemu源码,根据Qemu源码在宿主机系统上构建Qemu虚拟机;在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟外部设备的硬件环境的启动命令;执行Qemu虚拟机的启动脚本,以在启动脚本中执行启动命令,使得Qemu虚拟机在宿主机系统上运行;在外部设备连接宿主机的情况下,在Qemu虚拟机中模拟外部设备的硬件环境,以在模拟出的硬件环境中对外部设备进行硬件调试。本发明实施例通过构建Qemu虚拟机,在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,使得Qemu虚拟机具备支持模拟外部设备的硬件环境的能力,并且能够成功在宿主机系统上运行,从而实现在Qemu虚拟机中,快速、便捷、灵活、准确地模拟多种外部设备的硬件环境,提升了模拟外部设备的硬件环境的效率、便捷性、灵活性和准确性,为调试外部设备的硬件提供了便利,降低了调试外部设备时造成硬件损坏的概率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于Qemu调试外部设备的方法的流程示意图;
图2是本发明实施例提供的一种基于Qemu调试外部设备的方法的另一流程示意图;
图3是本发明实施例提供的一种基于Qemu调试外部设备的方法的又一流程示意图;
图4是本发明实施例提供的一种基于Qemu调试外部设备的方法的再一流程示意图;
图5是本发明实施例提供的一种基于Qemu调试外部设备的方法的应用场景示例流程图;
图6是本发明实施例提供的一种宿主机的结构示意框图;
图7是本发明实施例提供的一种宿主机的架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
本发明实施例提供一种基于Qemu调试外部设备的方法、宿主机及存储介质。该基于Qemu调试外部设备的方法,通过构建Qemu虚拟机,在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,使得Qemu虚拟机具备支持模拟外部设备的硬件环境的能力,并且能够成功在宿主机系统上运行,从而实现在Qemu虚拟机中,快速、便捷、灵活、准确地模拟多种外部设备的硬件环境,提升了模拟外部设备的硬件环境的效率、便捷性、灵活性和准确性,为调试外部设备的硬件提供了便利,降低了调试外部设备硬件时造成硬件损坏的概率。
下面结合附图,对本发明的一些实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本发明实施例提供的一种基于Qemu调试外部设备的方法的流程示意图。该方法应用于宿主机,宿主机包括PC(Personal Computer,个人计算机)或服务器等具有数据处理功能的终端设备。
如图1所示,本发明实施例提供的基于Qemu调试外部设备的方法包括步骤S101至步骤S104。
步骤S101、获取Qemu源码,根据Qemu源码在宿主机系统上构建Qemu虚拟机。
在一些实施例中,如图2所示,步骤S101之前,包括步骤S105。
步骤S105、为宿主机安装系统。
在一些实施例中,该系统包括Linux操作系统。具体而言,为了实现本发明实施例提供的技术方案,需要宿主机具备除一般硬件要求之外的特定的基础设施软硬件版本要求。示例性的,要求宿主机安装能够支持Qemu虚拟机运行并模拟外部设备硬件环境的操作系统,例如Linux操作系统Ubuntu20.04。
在一些实施例中,为了提升构建Qemu虚拟机的便捷性,可以从Qemu开源官网获取Qemu源码,从而根据Qemu源码在宿主机系统上构建Qemu虚拟机。示例性的,例如可以从Qemu开源官网获取7.2.91版本Qemu的源码,从而根据7.2.91版本Qemu的源码,在宿主机系统Ubuntu20.04上构建Qemu虚拟机。
在一些实施例中,也可以直接获取Qemu应用程序(即Qemu软件),从而在宿主机上安装Qemu应用程序,完成Qemu虚拟机的构建。
在一些实施例中,根据Qemu源码在宿主机系统上构建Qemu虚拟机,可以是将Qemu源码保存为宿主机的本地代码;在本地代码中运行预设容器镜像,以在宿主机系统上构建Qemu虚拟机。
为了提升稳定性,构建Qemu虚拟机时先将Qemu源码保存为宿主机的本地代码,再在本地代码中运行预设容器镜像,完成在宿主机系统上构建Qemu虚拟机。之后,退出预设容器镜像。
在一些实施例中,可以预先采用预设容器工具下载容器镜像,预设容器工具例如podman或Docker工具。
步骤S102、在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟外部设备的硬件环境的启动命令。
完成在宿主机系统上构建Qemu虚拟机之后,为了确保Qemu虚拟机成功运行并模拟外部设备的硬件环境,需要在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,从而得到模拟外部设备的硬件环境的启动命令。
在一些实施例中,用于模拟外部设备的硬件环境的参数包括外部设备的设备类型、CPU类型、内核启动参数和驱动器映像文件,以及Qemu虚拟机的内存大小和核心数。
具体而言,外部设备属于Qemu虚拟机支持的设备。示例性的,可以通过特定的字符串-machine/-M作为参数,指定外部设备的设备类型,M即表示所指定的具体设备类型;可以通过特定的字符串-cpu作为参数,指定外部设备的CPU类型,例如-cpu cortex-a55表示指定CPU类型为arm的cortex-a55;可以通过特定的字符串-append作为参数,指定外部设备的内核启动时的参数;可以通过特定的字符串-drive作为参数,指定外部设备的驱动器映像文件,例如【-drive if=none,format=raw,file=./rootfs.ext4,id=hd0`】。
还可以通过特定的字符串-m作为参数,指定Qemu虚拟机的内存大小,例如-m 4G表示指定Qemu虚拟机的内存大小为4GB;还可以通过特定的字符串-smp作为参数,指定Qemu虚拟机的核心数,例如-smp 8表示指定Qemu虚拟机的核心数为8个。
在一些实施例中,还可以根据实际需求,在用于模拟外部设备的硬件环境的参数中,灵活地、适应性地增加其他参数。具体而言,用于模拟外部设备的硬件环境的参数,还可以包括禁用UI界面(User Interface,用户界面)、文件系统设备和外部设备总线上挂载的其他设备。
其中,可以通过特定的字符串-nographic作为参数,指定Qemu虚拟机不生成UI界面;可以通过特定的字符串-fsdev作为参数,指定宿主机可以共享给Qemu虚拟机的共享目录,例如【`-fsdev local,security_model=mapped-xattr,id=fsdev0,path=/home/dingzheng/temp/-device virtio-9p-deviceid=fs0,fsdev=fsdev0,mount_tag=hostshare`】,path参数表示共享路径,security_model(共享模型)指的是关于共享目录的权限处理,可以使用mapped-xattr映射权限,这样在宿主机下权限为运行Qemu用户的权限,外部设备有权进行读和写;可以通过特定字符串-device指定外部设备上总线挂载的其他设备,例如virtio-mmio、usb、pci等总线上挂载的其他设备。
需要说明的是,为了确保Qemu虚拟机成功运行并模拟外部设备的硬件环境,上述外部设备的设备类型、CPU类型、内核启动参数和驱动器映像文件,以及Qemu虚拟机的内存大小和核心数,是必不可少的用于模拟外部设备的硬件环境的参数。
在一些实施例中,为了简化操作,提升增加用于模拟外部设备的硬件环境的参数的灵活性和效率,可以显示配置页面,在配置页面执行用于模拟外部设备的硬件环境的参数配置功能,完成在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数。
具体而言,可以在配置页面,加载用于模拟外部设备的硬件环境的参数选择项,供开发人员进行勾选,从而接收开发者勾选的参数,添加至Qemu虚拟机的启动命令行参数中。示例性的,例如通过函数【-machine‘id’,help】查询出Qemu虚拟机所支持的所有设备的设备id,作为设备类型选择项,供开发者进行勾选。当然,开发者也可以在配置页面直接填写用于模拟外部设备的硬件环境的参数,从而将开发者填写的参数添加至Qemu虚拟机的启动命令行参数中。
步骤S103、执行Qemu虚拟机的启动脚本,以在启动脚本中执行启动命令,使得Qemu虚拟机在所述宿主机系统上运行。
可以理解的是,完成在宿主机系统上构建Qemu虚拟机之后,会获得Qemu虚拟机的启动脚本。
在一些实施例中,如图3所示,在步骤S102之前,包括步骤S106。
步骤S106、修改启动脚本,以保证Qemu虚拟机的正常运行。
具体而言,完成在宿主机系统上构建Qemu虚拟机之后,为了确保Qemu虚拟机能够在宿主机系统上成功运行,需要适应性修改Qemu虚拟机的启动脚本。
执行Qemu虚拟机的启动脚本,以在Qemu虚拟机的启动脚本中执行模拟外部设备的硬件环境的启动命令,使得Qemu虚拟机在宿主机系统上运行。
步骤S104、在外部设备连接所述宿主机的情况下,在所述Qemu虚拟机中模拟所述外部设备的硬件环境,以在模拟出的所述硬件环境中对所述外部设备进行硬件调试。
在外部设备连接宿主机的情况下,可以在Qemu虚拟机中对外部设备的硬件环境进行模拟,从而在模拟出的硬件环境中对外部设备进行硬件调试。
在一些实施例中,如图4所示,步骤S104之后,包括步骤S107。
步骤S107、获取硬件调试的信息进行输出。
为了方便开发者查看硬件调试结果,可以获取硬件调试的信息进行输出。
为更好理解上述实施例,请参阅图5,结合图5举例应用场景如下:
首先,为宿主机安装Linux系统Ubuntu20.04。然后,获取Qemu7.2.91的源码,从而在宿主机Linux系统Ubuntu20.04上构建Qemu7.2.91虚拟机。接着,在Linux系统Ubuntu20.04中执行相应的qemu-system-aarch64命令,例如若7.2.91Qemu虚拟机需要模拟树梅派3B的硬件环境,则执行qemu-system-aarch64-machine raspi3b命令或qemu-system-aarch64-M raspi3命令,若Qemu7.2.91虚拟机需要模拟Quard Star board的硬件环境,则执行qemu-system-riscv64-machine quard-star命令或qemu-system-aarch64-Mquard-star命令,从而完成在Qemu7.2.91虚拟机中模拟出树梅派3B或Quard Star board的硬件环境。最终,进入Qemu7.2.91虚拟机模拟出的硬件环境中,对树梅派3B或Quard Starboard进行硬件调试的操作。如此,能够实现快速、便捷、灵活、准确地模拟多种外部设备的硬件环境,为调试外部设备的硬件提供了便利,降低了调试外部设备硬件时造成硬件损坏的概率。
上述提供的基于Qemu调试外部设备的方法,获取Qemu源码,根据Qemu源码在宿主机系统上构建Qemu虚拟机;在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟外部设备的硬件环境的启动命令;执行Qemu虚拟机的启动脚本,以在启动脚本中执行启动命令,使得Qemu虚拟机在宿主机系统上运行;在外部设备连接宿主机的情况下,在Qemu虚拟机中模拟外部设备的硬件环境,以在模拟出的硬件环境中对外部设备进行硬件调试。本发明实施例通过构建Qemu虚拟机,在Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,使得Qemu虚拟机具备支持模拟外部设备的硬件环境的能力,并且能够成功在宿主机系统上运行,从而实现在Qemu虚拟机中,快速、便捷、灵活、准确地模拟多种外部设备的硬件环境,提升了模拟外部设备的硬件环境的效率、便捷性、灵活性和准确性,为调试外部设备的硬件提供了便利,降低了调试外部设备硬件时造成硬件损坏的概率。
请参阅图6,图6是本发明实施例提供的一种宿主机的结构示意性框图。
如图6所示,宿主机200包括处理器201和存储器202,处理器201和存储器202通过总线203连接,该总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器201用于提供计算和控制能力,支撑整个宿主机的运行。处理器201可以是中央处理单元(Central Processing Unit,CPU),该处理器301还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
具体地,存储器202可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明实施例方案相关的部分结构的框图,并不构成对本发明实施例方案所应用于其上的宿主机的限定,具体的宿主机可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
具体而言,如图7所示,图7是本发明实施例提供的一种支持构建Qemu虚拟机且支持虚拟机模拟外部设备的宿主机的架构示意图。在图7中,宿主机还包括KVM模块,外部设备的I/O读写操作,会被KVM模块捕获,KVM模块通知Qemu虚拟机,完成相应的I/O读写操作。
其中,所述处理器201用于运行存储在存储器202中的计算机程序,并在执行所述计算机程序时实现本发明实施例提供的任意一种所述的基于Qemu调试外部设备的方法。
在一实施例中,所述处理器201用于运行存储在存储器202中的计算机程序,并在执行所述计算机程序时实现以下步骤:
获取Qemu源码,根据所述Qemu源码在宿主机系统上构建Qemu虚拟机;
在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟所述外部设备的硬件环境的启动命令;
执行Qemu虚拟机的启动脚本,以在所述启动脚本中执行所述启动命令,使得所述Qemu虚拟机在所述宿主机系统上运行;
在外部设备连接所述宿主机的情况下,在所述Qemu虚拟机中模拟所述外部设备的硬件环境,以在模拟出的所述硬件环境中对所述外部设备进行硬件调试。
在一实施例中,所述用于模拟外部设备的硬件环境的参数包括所述外部设备的设备类型、CPU类型、内核启动参数和驱动器映像文件,以及所述Qemu虚拟机的内存大小和核心数。
在一实施例中,所述处理器201在实现所述在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数时,用于实现:
显示配置页面,在所述配置页面执行用于模拟所述外部设备的硬件环境的参数配置功能,完成在所述启动命令行参数中,增加用于模拟所述外部设备的硬件环境的参数。
在一实施例中,所述处理器201在实现所述在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟外部设备的硬件环境的启动命令之前,用于实现:
修改所述启动脚本,以保证所述Qemu虚拟机的正常运行。
在一实施例中,所述处理器201在实现所述所述根据所述Qemu源码在所述宿主机系统上构建Qemu虚拟机时,用于实现:
将所述Qemu源码保存为所述宿主机的本地代码;
在所述本地代码中运行预设容器镜像,以在所述宿主机系统上构建Qemu虚拟机。
在一实施例中,所述处理器201在实现所述根据所述Qemu源码在所述宿主机系统上构建Qemu虚拟机之前,用于实现:
为所述宿主机安装系统。
在一实施例中,所述系统包括Linux操作系统。
在一实施例中,所述处理器201在实现所述在所述Qemu虚拟机中模拟所述外部设备的硬件环境,以在模拟出的所述硬件环境中对所述外部设备进行硬件调试之后,用于实现:
获取所述硬件调试的信息进行输出。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的宿主机的具体工作过程,可以参考前述基于Qemu调试外部设备的方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如本发明实施例说明书提供的任一项基于Qemu调试外部设备的方法的步骤。
其中,所述存储介质可以是前述实施例所述的宿主机的内部存储单元,例如所述宿主机的硬盘或内存。所述存储介质也可以是所述宿主机的外部存储设备,例如所述宿主机上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施例中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于Qemu调试外部设备的方法,其特征在于,包括:
获取Qemu源码,根据所述Qemu源码在宿主机系统上构建Qemu虚拟机;
在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟所述外部设备的硬件环境的启动命令;
执行Qemu虚拟机的启动脚本,以在所述启动脚本中执行所述启动命令,使得所述Qemu虚拟机在所述宿主机系统上运行;
在外部设备连接所述宿主机的情况下,在所述Qemu虚拟机中模拟所述外部设备的硬件环境,以在模拟出的所述硬件环境中对所述外部设备进行硬件调试。
2.根据权利要求1所述的基于Qemu调试外部设备的方法,其特征在于,所述用于模拟外部设备的硬件环境的参数包括所述外部设备的设备类型、CPU类型、内核启动参数和驱动器映像文件,以及所述Qemu虚拟机的内存大小和核心数。
3.根据权利要求1所述的基于Qemu调试外部设备的方法,其特征在于,所述在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,包括:
显示配置页面,在所述配置页面执行用于模拟所述外部设备的硬件环境的参数配置功能,完成在所述启动命令行参数中,增加用于模拟所述外部设备的硬件环境的参数。
4.根据权利要求1所述的基于Qemu调试外部设备的方法,其特征在于,所述在所述Qemu虚拟机的启动命令行参数中,增加用于模拟外部设备的硬件环境的参数,得到模拟外部设备的硬件环境的启动命令之前,包括:
修改所述启动脚本,以保证所述Qemu虚拟机的正常运行。
5.根据权利要求1所述的基于Qemu调试外部设备的方法,其特征在于,所述根据所述Qemu源码在所述宿主机系统上构建Qemu虚拟机,包括:
将所述Qemu源码保存为所述宿主机的本地代码;
在所述本地代码中运行预设容器镜像,以在所述宿主机系统上构建Qemu虚拟机。
6.根据权利要求1所述的基于Qemu调试外部设备的方法,其特征在于,所述根据所述Qemu源码在所述宿主机系统上构建Qemu虚拟机之前,包括:
为所述宿主机安装系统。
7.根据权利要求6所述的基于Qemu调试外部设备的方法,其特征在于,所述系统包括Linux操作系统。
8.根据权利要求1所述的基于Qemu调试外部设备的方法,其特征在于,所述在所述Qemu虚拟机中模拟所述外部设备的硬件环境,以在模拟出的所述硬件环境中对所述外部设备进行硬件调试之后,包括:
获取所述硬件调试的信息进行输出。
9.一种宿主机,其特征在于,所述宿主机包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现如权利要求1至8中任一项所述的基于Qemu调试外部设备的方法。
10.一种存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至8中任一项所述的基于Qemu调试外部设备的方法。
CN202310863363.7A 2023-07-13 2023-07-13 基于Qemu调试外部设备的方法、宿主机及存储介质 Pending CN116974837A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310863363.7A CN116974837A (zh) 2023-07-13 2023-07-13 基于Qemu调试外部设备的方法、宿主机及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310863363.7A CN116974837A (zh) 2023-07-13 2023-07-13 基于Qemu调试外部设备的方法、宿主机及存储介质

Publications (1)

Publication Number Publication Date
CN116974837A true CN116974837A (zh) 2023-10-31

Family

ID=88470536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310863363.7A Pending CN116974837A (zh) 2023-07-13 2023-07-13 基于Qemu调试外部设备的方法、宿主机及存储介质

Country Status (1)

Country Link
CN (1) CN116974837A (zh)

Similar Documents

Publication Publication Date Title
US8423991B2 (en) Embedded network device and firmware upgrading method
CN103049375B (zh) 一种摄像头在线调试方法
US20140325203A1 (en) Backing up firmware during initialization of device
CN103123605B (zh) 一种Android平台自动化集成测试方法和装置
CN107239309B (zh) 补丁生成方法及装置、更新方法、电子设备、存储介质
CN110531962A (zh) 小程序的开发处理方法、设备及计算机可读存储介质
CN108694052B (zh) 一种固件升级方法、固件升级装置及固件升级系统
CN111338925A (zh) 小程序测试方法及装置、系统、电子设备和存储介质
US10565000B2 (en) Method and apparatus for online upgrade of kernel-based virtual machine module
CN113868174B (zh) 验证平台搭建方法、装置及存储介质
CN115437700A (zh) 驱动程序的硬件资源自动配置方法、装置、系统及介质
CN115291946A (zh) 鸿蒙系统移植方法、装置、电子设备及可读介质
CN114020211A (zh) 存储空间管理方法、装置、设备及存储介质
CN111752623B (zh) 显示配置方法、装置、电子设备及可读存储介质
CN112817595A (zh) 界面渲染方法、装置、存储介质及电子设备
CN113272785B (zh) 一种挂载文件系统的方法、终端设备及存储介质
CN111399926A (zh) 下载启动程序的方法和装置
CN116974837A (zh) 基于Qemu调试外部设备的方法、宿主机及存储介质
CN116540929A (zh) 磁盘阵列的虚拟化读取方法、装置、电子设备及存储介质
US9058184B2 (en) Run time generation and functionality validation of device drivers
CN115203019A (zh) Gpu服务器的性能测试方法、装置、设备及存储介质
CN110327626B (zh) 虚拟服务器创建方法及装置
CN102750167A (zh) 应用程序启动方法、装置和计算机系统
CN114296764A (zh) 系统升级方法、装置、存储介质和电子设备
CN103713917A (zh) 开机方法、热键切换开机图形装置方法与电子装置

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