使用QEMU启动VersalVCK190ACAP

FPGA开发圈 2023-03-13 12:05

作者:Shabbirk,AMD工程师

本篇博文涵盖了有关使用 PetaLinux 命令行来对 Versal™ ACAP 的 PetaLinux BSP 运行 QEMU 的信息,并演示了 QEMU 支持的部分网络选项。

QEMU (Quick EMUlator) 是一种开源跨平台系统仿真器。它是一个可执行程序,可在 x86 Linux 或 Windows 操作系统上运行。

QEMU 可对整个系统进行仿真(通常它被称为访客),如赛灵思 ZCU102 或 VCK190 开发板。

仿真包括处理器、外设以及开发板上的其它硬件,支持您在虚拟化硬件上启动操作系统或其它应用。

要在虚拟化硬件中开发此类应用,只需使用物理硬件上所用的相同工具链即可。

QEMU 也可通过诸如 CAN、以太网和 USB 等接口来与主机进行交互,支持在访客机器中实时使用来自主机的现实世界数据。

赛灵思 QEMU 随 PetaLinux 和 Yocto 工具链一起分发,并与 SDK/Vitis 集成。


使用 PetaLinux 启动 QEMU

请确保根据 PetaLinux 用户指南 (UG1144) 中所述,安装在 Linux 主机上构建 PetaLinux 工程所需的所有 Linux 程序包。请参阅此文档的“Installation Steps”(安装步骤)部分,其中提供了所有必需的程序包,因此尤为重要。


此处所示的演示使用的是预构建的镜像,无须再构建 PetaLinux 工程。


基于 VCK190 BSP 创建工程的步骤 

$ source /settings.sh

注:对于基于 bash 的 shell,请选择 settings.sh,对于基于 C 语言的 shell,请选择 settings.csh。

$ petalinux-create -t project -s xilinx-vck190-v2020.2-final.bsp -n xilinx-qemu-first-run
$ cd xilinx-qemu-first-run
$ petalinux-build(如使用预构建镜像,则此步骤为可选)


下列步骤详述了如何使用 PetaLinux BSP 工程随附的 QEMU 预构建二进制文件来启动 VCK190 平台。


我们将使用下列命令随 U-Boot 和 Linux 内核一并启动 QEMU。


使用 QEMU 启动 U-boot: 

$ petalinux-boot --qemu --prebuilt 2

使用 QEMU 启动内核:

$ petalinux-boot --qemu --prebuilt 3

如果要在运行 petalinux-build 后启动构建的镜像,则所用 QEMU 命令行与此处所示不同,应遵循下述步骤进行操作:


构建 PetaLinux BSP 工程后,下一步是使用命令行生成 BOOT.BIN 二进制文件:

$ petalinux-package --boot --plm --psmfw --uboot --dtb --force

QEMU 启动直至完成 U-Boot 启动为止:

$ petalinux-boot --qemu --uboot

QEMU 启动直至完成 Linux 内核启动为止:

$ petalinux-boot --qemu --kernel


要退出仿真,请按 Ctrl+A,然后按 X。


下一节将侧重于讲解赛灵思 QEMU 所提供的基本网络功能及其测试方式。



QEMU 网络选项

QEMU 可对小型子网(或 LAN)进行仿真,包括 DHCP 服务器、网关和 DNS 服务器;即访问互联网所需的所有一切均可仿真。


启动 QEMU 并登录系统。使用 ifconfig 实用工具来将网络设置检出。


结果如下:

root@xilinx-vck190-2020_2:~# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:22:01 

          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

          inet6 addr: fe80::20a:35ff:fe00:2201/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:2 errors:0 dropped:0 overruns:0 frame:0

          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:1152 (1.1 KiB)  TX bytes:4732 (4.6 KiB)

          Interrupt:30

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


此处 eth0 是 PS GEM 以太网的接口。通过 RX 和 TX 字节计数可见,部分网络流量已累计。这可能是由于启动期间发生的 DHCP 采集所导致的。


以下列出了部分 QEMU 网络功能,并简要解释了其测试功能。


1. 测试网络:

我们可以正常使用此网络连接,与连接到主机网络时几乎相同。


例如,您可以从赛灵思 Github 仓库下载文件。


在 QEMU 上已启动的 Linux 内,输入以下命令:

root@xilinx-vck190-2020_2:~# wget https://github.com/Xilinx/qemu-devicetrees/archive/master.zip

输出应如下所示:

Connecting to codeload.github.com (192.30.255.120:443)

master.zip           100% |**********************************************************|  133k  0:00:00 ETA


这是从赛灵思公共 Github 仓库检索得到的 DTS 工程的源代码 tarball。您可使用 unzip 命令解压此文件。


注:从 QEMU 去 ping 主机是无效的。


2. QEMU 中的网络文件系统 (NFS) 装载

NFS 支持将任一设备上的某个目录与网络中其它设备共享。


预构建的 PetaLinux BSP 具有 rootfs 和 Linux 内核,可通过 NFS 选项加载。因此,NFS 无需进行重新构建或重新配置。以下是在 Linux 主机上使用 QEMU 设置 NFS 的简单步骤:


检查在主机上是否已安装 NFS 服务器

dpkg -l | grep nfs-kernel-server

如未安装,请使用以下命令进行安装:

sudo apt-get install nfs-kernel-server


NFS 服务器安装完成后,请添加要共享的本地目录。


以下示例显示了如何在 /etc/exports 文件的导出设置中添加 /home/test_nfs 目录:


对于此示例,我们将在 NFS 条目中添加“insecure”选项。

/home/test_nfs *(rw,sync,no_root_squash,insecure)

我们还可以为 NFS 服务器主机分配 IP 地址,替代以上命令中的 *。

$ sudo exportfs -ra

使用 petalinux-boot 启动 QEMU,如下所示:

$ petalinux-boot --qemu --prebuilt 3

QEMU 启动完成后,登录访客机。使用以下命令将主机 NFS 文件系统装载到 QEMU 下的 /tmp 目录中。

$ mount -o port=2049,nolock,proto=tcp :/home/test_nfs/  /tmp

要查找 host_ip,请使用 ifconfig 或类似的 IP 实用工具。


现在,我们可以在访客机的 /tmp 目录下看到共享的文件。


3. 使用 TFTP 进行文件传输

QEMU 具有内置 TFTP 功能,支持在访客机与主机之间轻松进行往来文件传输。


如果原先已运行 QEMU,请退出,在主机终端上,创建一个新目录,并在其中包含一个文件:

$ mkdir -p /home/${USER}/qemu-training-tftp$ echo "hello QEMU world" >> /home/${USER}/qemu-training-tftp/file.txt


此新目录中的 file.txt 将包含我们的“hello QEMU world”文本行。


QEMU 需要额外参数以建立到该目录的 TFTP 访问:-tftp /home/${USER}/qemu-training-tftp


如果使用的是 PetaLinux,请使用修改后的命令重新启动 QEMU:

$ petalinux-boot --qemu --prebuilt 3 --qemu-args "-tftp /home/${USER}/qemu-training-tftp"


这将覆盖新目录的默认 TFTP 目录设置。


从访客机发起的任何 TFTP 请求都将指向刚创建的此目录。


内置 TFTP 服务器 IP 为 10.0.2.2

root@xilinx-vck190-2020_2:~# tftp -g -r file.txt 10.0.2.2

对此文件执行 cat 命令,查看内容是否正确:

root@xilinx-vck190-2020_2:~# cat file.txt


4. 使用 SCP 进行文件传输

在主机与访客机之间可使用 scp 命令通过 SSH 来传输文件。


scp 语法如下:
$ scp


远程路径采用如下语法:
user@host:/path/to/file


例如,如果将文件从主机复制到访客机,则命令输出如下所示:

root@xilinx-vck190-2020_2:~#  scp <主机用户名>@<主机 IP>:/scratch/doc-example/myapp.elf .

 Host '<主机 IP>' is not in the trusted hosts file.

(ecdsa-sha2-nistp256 fingerprint sha1!! 18:7e:92:d0:33:ed:97:e7:cb:b2:f7:b1:5d:52:5f:a6:34:9a:97:f9)

Do you want to continue connecting? (y/n) y

komlodi@'s password:

myapp.elf                                                   100%   18KB  17.7KB/s   00:00


5. 通过 SSH 进入 QEMU

要通过 SSH 进入 QEMU,需要向 QEMU 传递其它实参。

例如,如果在 Versal ACAP 工程上使用 PetaLinux:

$ petalinux-boot --qemu --prebuilt 3 --qemu-args "-net nic,netdev=eth0 -netdev user,id=eth0,hostfwd=tcp::1114-:22 -net nic"


登录 QEMU 机器。


在主机终端内,运行以下所示命令以通过 SSH 访问 QEMU。

$ ssh -p 1114 root@localhost



资料

《赛灵思 QEMU 用户指南》:(UG1169)

《PetaLinux 用户指南》:(UG1144)
开源 QEMU 文档:

https://www.qemu.org/documentation/
NFS 设置指南:

https://help.ubuntu.com/community/SettingUpNFSHowTo



FPGA开发圈 这里介绍、交流、有关FPGA开发资料(文档下载,技术解答等),提升FPGA应用能力。
评论
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 160浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 111浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 140浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 48浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 56浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 55浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 214浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 102浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 195浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 87浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 115浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦