使用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应用能力。
评论 (0)
  • esp32s3使用platformio 点亮1.69寸TFT历程之LVGL移植 继上一篇我历经很久的时间点亮了1.69寸TFT之后。我开始进行LVGL的移植。开始LVGL的学习。用platformio 开发esp32s3真的好方便。按照上一节的环境。本次由于需要使用LVGL。打开platformio lib界面搜索LVGL。目前里面的版本是9.2.2。我使用的8.3.6。然后按照下图加载到自己的工程项目。待加载完毕后。我们会看到libdeps下面会出现LVGL库好了,这一步完成后。我们就开始移植
    zhusx123 2025-03-15 20:58 104浏览
  • 近日,2025年GTI国际产业大会成功举办,活动上GTI Awards 2025获奖名单正式揭晓,紫光展锐连续三年斩获国际权威机构GTI颁发的大奖。此次,T8300凭借在5G技术创新和娱乐体验方面的卓越表现,荣获GTI“移动技术创新突破奖”(Innovative Breakthrough in Mobile Technology Award)。GTI是由中国移动、软银、沃达丰等运营商于2011年发起成立的国际产业合作平台。GTI Awards作为全球通信行业最具影响力的奖项之一,旨在表彰为行业
    紫光展锐 2025-03-14 17:35 66浏览
  • 一、引言:语音芯片的智能化浪潮在万物互联的智能化时代,语音交互技术已成为人机交互的重要纽带。从智能家电的提示音到儿童玩具的趣味互动,从工业设备的语音告警到公共服务设施的自动播报,语音播放芯片IC作为核心硬件支撑,正在重塑各行各业的用户体验。在众多解决方案中,WTN6、WT588、WT2003H、WTV四大系列产品,凭借差异化的技术特性构建了完整的语音芯片产品矩阵。本文将深度解析这四大主流芯片的技术特点与应用场景,为开发者提供选型参考。二、主流语音芯片技术特性全解析2.1 WTN6系列:高性价比的
    广州唯创电子 2025-03-17 09:04 122浏览
  • 万物互联时代,全屋智能正从概念走向现实,而蓝牙低功耗(BLE)技术凭借独特优势,已成为构建智慧家庭生态的核心驱动力之一。作为一项成熟且持续创新的无线通信协议,BLE技术不仅以“低功耗”定义行业标准,更凭借Mesh组网能力打破场景疆界,为智能家居设备提供了灵活、可靠、可扩展的解决方案,有力推动了全屋智能的落地应用。据中商产业研究院整理数据显示,2023年我国智能家居市场规模为7257亿元,预计到2024年将达7848亿元,到2025年将达到8526亿元,同比增长率约为10%。随着未来新房建设和老房
    华普微HOPERF 2025-03-14 17:08 60浏览
  • 文/Leon编辑/cc孙聪颖‍蛇年春晚最有意思的节目,一定非机器人跳舞莫属。就算是遥控或预编程,机器人能够做出如此复杂的动作,在五年前都是不敢想象的事情,其制造商宇树科技也因此火爆全网。就在春节过后不到一个月,会骑自行车的人形机器人诞生了。这背后,是近年来“具身智能”概念的迅猛发展。“我们造了一个跟人一样灵动的机器人!”3月11日,智元机器人联合创始人兼首席技术官彭志辉在微博上说道。在视频中,灵犀X2会骑自行车、能跳《科目三》,还可以与人促膝长谈,甚至拿起葡萄“穿针引线”。在全球人形机器人领域,
    华尔街科技眼 2025-03-17 12:38 90浏览
  • 在求职路上,一直没能拿到理想的录用通知,真的要放低要求吗?对很多人来说,这个问题往往让人进退两难。期待中那个能够激发自我潜能又能带来丰厚回报的职位,似乎离自己遥不可及。可是眼看着账单越压越重,生活在缓缓拖累前行。在这种局面下,究竟该不该向现实妥协,先找一份工作再说?有些人会觉得,先就业意味着放弃理想,觉得一旦走上这条路,就难以回到最初的目标。但事实上,这种担忧常常让人陷入犹豫与停滞。路走不通时,不代表必须原地不动。有时选择一份尚可接受的工作,也能带来意想不到的机会。公司内部的人脉、行业的历练,乃
    优思学院 2025-03-14 17:12 64浏览
  • 在现代机械传动系统中,电机与传动轴的连接至关重要。正确的连接方式不仅能提高传动效率,还能延长设备的使用寿命。本文将探讨电机传动轴的几种常见连接方式及其优缺点。1.直接连接直接连接是将电机的输出轴与传动轴直接相连,通常采用联轴器进行连接。这种方式的优点是结构简单,传动效率高,适合于高转速和高精度的应用场合。然而,直接连接对对中精度要求较高,稍有偏差就可能导致振动和磨损。2.齿轮连接齿轮连接通过齿轮传动将电机的动力传递到传动轴。该方式的优点在于能够实现较大的转速变化和扭矩增益,适合于需要大功率和高扭
    博扬智能 2025-03-14 16:32 68浏览
  • 失效模式与影响分析(FMEA)失效模式与影响分析(FMEA)是一种系统方法,用于识别和分析系统或过程中的潜在失效,广泛应用于工程和制造领域,以提高产品可靠性和安全性。最新标准由 2019 年发布的 AIAG-VDA FMEA 手册(第一版) 定义,该手册结合了美国和欧洲汽车行业的最佳实践,并引入了 七步法,确保分析全面且结构化。图:优思学院六西格玛新版 FMEA 失效分析的七个步骤1. 规划与准备确定 FMEA 研究的 范围、边界和目标。组建跨职能团队(设
    优思学院 2025-03-17 14:43 78浏览
  • 宠物饮水机是专为宠物设计的自动供水设备,它能够持续提供新鲜流动的水,刺激宠物饮水欲望,保持宠物健康。智能水位监测功能可确保宠物始终有水可饮,同时避免溢水和干烧,是现代宠物家庭的理想选择。那么,宠物饮水机水箱是如何实现低水位提醒功能的呢?ICMAN液位检测芯片轻松实现宠物饮水机的水箱低液位提醒功能!工作原理 :基于双通道电容式单点液位检测原理方案特点:液位检测精度高达±1mm,超强抗干扰,动态CS 10V 为家用电器水位提醒的应用提供了一种简单而又有效的实现方式<iframe height=
    ICMAN 2025-03-14 16:46 76浏览
  • 一、问题现象:语音播放异常的典型表现在使用WT588F(E)系列语音芯片的开发过程中,工程师常会遇到以下两类典型异常现象:播放不全:语音仅播放前段内容后突然中断,或特定段落无法触发播放断续:音频输出存在明显卡顿、爆音或波形畸变某智能门锁项目实测数据显示,在首批样机中有2%的设备出现语音提示突然中断的情况,经排查发现电源电压在播放瞬间跌落至2.0V(低于芯片工作阈值)。这类问题的根源往往隐藏于硬件设计与系统协同的细节之中。二、核心机理:电压稳定性对语音芯片的影响2.1 电源系统的动态响应特性WT5
    广州唯创电子 2025-03-17 09:18 108浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦