繁体   English   中英

如何在 QEMU 中模拟 TrustZone?

[英]How to emulate TrustZone in QEMU?

我正在尝试在 Qemu 中模拟 TrustZone 功能。 我找到了两个似乎可以解释此过程的链接。

First Reference没有附上支持 TrustZone 的图像 kernel(我在哪里可以找到它?)

第二个参考解释了我如何编译一个 kernel 但它不是从第一个网站中编写的命令行开始的,如下所示

./arm-softmmu/qemu-system-arm -kernel $PATH_TO_KERNEL/zImage -M vexpress-a15 -cpu cortex-a15 -dtb PATH_TO_DTB/vexpress-v2p-ca15-tc1.dtb -m 1024 -append 'console=ttyAMA0,38400n8' -serial stdio -initrd $PATH_TO_INITRD/initrd.img

有没有其他方法可以运行 TrustZone 模拟器?

使用OP-TEE (一种开源 TEE),在 QEMU 上运行 TrustZone 非常容易。 您拥有从普通用户空间和 Linux 内核到安全世界的整个堆栈运行代码,运行 TEE 本身以及受信任的应用程序。 QEMU + OP-TEE 适用于 ARMv7-A 和 ARMv8-A。 如果您想在本地 PC 上试用它,我建议您前往optee_os/README.md并按照第4.1、5 (仅与 QEMU 相关)和第 6 节中的说明进行操作。总而言之,我们谈论的更少在 shell 中执行超过 10 个命令,您将下载、编译所有源代码,并在您的 PC 本地启动和运行所有内容。

我写了一篇关于为什么 QEMU 是进行 TrustZone 开发的不错选择的博客文章

您可以查看以下链接: https : //github.com/OP-TEE/build和文档 ( https://optee.readthedocs.io/building/gits/build.html ) 以构建所有图像和运行 Linux 需要 BSP。

有没有其他方法可以运行 TrustZone 模拟器?

除了 QEMU,您还可以查看使用 Fastmodel 的 Arm System Guidance ( https://developer.arm.com/ip-products/system-ip/reference-design )。 还有一个make recipe 来构建所有需要的 BSP。

在这里,我能够在 QEMU 上运行 OP-TEE 和 Linux。

有关详细信息,请参阅此链接: https://blooggspott.blogspot.com/2022/04/op-tee-3.html

这里是完整的命令:

#!/bin/sh

nc -z  127.0.0.1 54320 || /usr/bin/gnome-terminal -x ./soc_term.py 54320 &
nc -z  127.0.0.1 54321 || /usr/bin/gnome-terminal -x ./soc_term.py 54321 &
while ! nc -z 127.0.0.1 54320 || ! nc -z 127.0.0.1 54321; do sleep 1; done

./qemu-system-aarch64 \
    -nographic \
    -serial tcp:localhost:54320 -serial tcp:localhost:54321 \
    -smp 2 \
    -s -S -machine virt,secure=on,gic-version=2,virtualization=false \
    -cpu cortex-a57 \
    -d unimp -semihosting-config enable=on,target=native \
    -m 1057 \
    -bios bl1.bin       \
    -initrd rootfs.cpio.gz \
    -kernel Image -no-acpi \
    -append 'console=ttyAMA0,38400 keep_bootcon root=/dev/vda2 ' \
     \
    -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0,max-bytes=1024,period=1000 -fsdev local,id=fsdev0,path=./shared_folder,security_model=none -device virtio-9p-device,fsdev=fsdev0,mount_tag=host -netdev user,id=vmnic -device virtio-net-device,netdev=vmnic

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM