0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用QEMU启动Versal VCK190

XILINX开发者社区 来源:XILINX开发者社区 2023-04-20 10:40 次阅读

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

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

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

仿真包括处理器、外设以及开发板上的其它硬件,支持您在虚拟化硬件上启动操作系统或其它应用。
要在虚拟化硬件中开发此类应用,只需使用物理硬件上所用的相同工具链即可。

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

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

1使用 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 --forceQEMU

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

$ petalinux-boot --qemu --ubootQEMU

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

$ petalinux-boot --qemu --kernel

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

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

2QEMU 网络选项

QEMU 可对小型子网(或 LAN)进行仿真,包括 DHCP 服务器、网关和 DNS 服务器;即访问互联网所需的所有一切均可仿真。
启动 QEMU 并登录系统。使用 ifconfig 实用工具来将网络设置检出。
结果如下:

0fbf9d9e-dec2-11ed-bfe3-dac502259ad0.png0fd55260-dec2-11ed-bfe3-dac502259ad0.png

此处 eth0 是 PS GEM 以太网的接口。通过 RX 和 TX 字节计数可见,部分网络流量已累计。这可能是由于启动期间发生的 DHCP 采集所导致的。
以下列出了部分 QEMU 网络功能,并简要解释了其测试功能。

1. 测试网络:

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

例如,您可以从 AMD 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.zip100% |**********************************************************| 133k 000 ETA

这是从 AMD 公共 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-serverNFS

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

以下示例显示了如何在 /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!! 18923397cbf75d5f3497: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 传递其它实参。

例如,如果在 AMD Versal Adaptive SoC 工程上使用 PetaLinux:

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

登录 QEMU 机器。

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

$ ssh -p 1114 root@localhost

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18288

    浏览量

    222185
  • usb
    usb
    +关注

    关注

    59

    文章

    7436

    浏览量

    258217
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82997
  • qemu
    +关注

    关注

    0

    文章

    54

    浏览量

    5210

原文标题:开发者分享|使用 QEMU 启动 Versal VCK190

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    详解基于赛灵思的Versal™ ACAP设计创建步骤

    Versal ACAP(自适应计算加速平台)是高度集成化的多核计算平台,可通过灵活的自适应能力来满足不断变化的动态算法的需求。VCK190 是赛灵思最早发布的 Versal AI Core 评估器
    的头像 发表于 09-28 10:57 5425次阅读
    详解基于赛灵思的<b class='flag-5'>Versal</b>™ ACAP设计创建步骤

    如何在Linux平台上进行Linux程序开发

    最近陆陆续续有工程师拿到了VCK190单板。 VCK190集成了Xilinx的7nm AIE,有很强的处理能力。 本文介绍怎么运行Xilinx AIE的例程,熟悉AIE开发流程。
    发表于 08-02 08:03 2706次阅读
    如何在Linux平台上进行Linux程序开发

    利用设计网关的 IP 内核在 Xilinx VCK190 评估套件上加速人工智能应用

    应用程序,最大限度地提高任何给定的效率工作负载,同时提供低功耗和低延迟。 Versal AI Core 系列VCK190 评估套件采用VC1902 器件,该器件在产品组合中具有最佳的 AI 性能。该套件
    的头像 发表于 11-25 16:27 1315次阅读

    利用设计网关的 IP 内核在 Xilinx VCK190 评估套件上加速人工智能应用

    应用,从而最大限度地提高任何给定工作负载的效率,同时提供低功耗和低延迟。Versal AI Core 系列VCK190 评估套件采用VC1902器件,该器件在产品组合中具有最佳的 AI 性能。该套件专为需要
    发表于 11-25 16:29

    赛灵思Versal评估套件助力开发者迈入解锁ACAP功能的高速路

    装备业界首个自适应计算加速平台(ACAP)的赛灵思 Versal AI Core 系列 VCK190评估套件 和 Versal Prime 系列 VMK180 Prime 评估套件,现已上市
    的头像 发表于 01-14 09:30 1989次阅读

    赛灵思宣布两款Versal ACAP评估套件现已上市

    日前,赛灵思宣布两款 Versal ACAP 评估套件现已上市,分别为 Versal AI Core 系列 VCK190 评估套件和 Versal Prime系列 VMK180 评估套
    的头像 发表于 03-12 15:14 2897次阅读

    Vitis AI 1.4赋予 AI 产品化更多可能性

    的解决方案堆栈,首次实现了对最新 7nm Versal ACAP 平台和16nm Kria SOM的支持。 VCK190 套件是首款 Versal AI Core 系列评估套件,支持从云端到边缘实现
    的头像 发表于 08-09 10:54 1472次阅读

    VCK190板子上使用DDR4-DIMM的ECC

    在Vivado 2021.2的VCK190 boardfile里DDR4-DIMM的DQ width被限制为64bit,不能使能ECC功能。如果需要在VCK190板子上使用DDR4-DIMM的ECC,可以手动修改board file。
    的头像 发表于 08-17 09:12 1032次阅读

    如何更改VCK190单板启动模式

    办公室有VCK190单板,运行在SD启动模式下,能进入Linux。但是现在在家办公,不能更改VCK190单板启动模式。
    的头像 发表于 08-26 11:05 913次阅读

    利用设计网关的 IP 内核在 Xilinx VCK190 评估套件上加速人工智能应用

    应用,从而最大限度地提高任何给定工作负载的效率,同时提供低功耗和低延迟。 Versal AI Core 系列VCK190 评估套件采用VC1902器件,该器件在产品组合中具有最佳的 AI 性能。该套件专为需要
    的头像 发表于 11-29 18:36 553次阅读
    利用设计网关的 IP 内核在 Xilinx <b class='flag-5'>VCK190</b> 评估套件上加速人工智能应用

    【产品测试】利用设计网关的 IP 内核在 Xilinx VCK190 评估套件上加速人工智能应用

    应用,从而最大限度地提高任何给定工作负载的效率,同时提供低功耗和低延迟。 Versal AI Core 系列VCK190 评估套件采用VC1902器件,该器件在产品组合中具有最佳的 AI 性能。该套件专为需要
    的头像 发表于 11-29 18:36 2274次阅读

    如何在Vivado硬件管理器内读取各项监控值?

    在 Vivado 内,以 Versal 器件为目标创建一个示例,此示例将以 VCK190 开发板为目标创建工程。 创建块设计,并将 CIPS IP 添加到画布上,然后双击此 CIPS IP。
    的头像 发表于 05-17 09:17 2336次阅读
    如何在Vivado硬件管理器内读取各项监控值?

    Versal VCK190评估套件上使用器件固件升级(DFU)执行USB辅助启动模式测试

    本文将演示如何在 Versal AI Core 系列 VCK190 评估套件上从 USB 辅助启动模式启动 Linux
    的头像 发表于 07-10 17:09 583次阅读
    在<b class='flag-5'>Versal</b> <b class='flag-5'>VCK190</b>评估套件上使用器件固件升级(DFU)执行USB辅助<b class='flag-5'>启动</b>模式测试

    使用QEMU启动Versal VCK190 ACAP

    本文涵盖了有关使用 PetaLinux 命令行来对 Versal™ ACAP 的 PetaLinux BSP 运行 QEMU 的信息
    的头像 发表于 07-07 14:14 375次阅读

    VCK190评估板用户指南

    电子发烧友网站提供《VCK190评估板用户指南.pdf》资料免费下载
    发表于 09-13 14:40 0次下载
    <b class='flag-5'>VCK190</b>评估板用户指南