使用 VirtualBox 模拟自定义 Buildroot Raspberry Pi .img 文件

使用 VirtualBox 模拟自定义 Buildroot Raspberry Pi .img 文件

我最近一直在摆弄 Buildroot 及其为 Raspberry Pi 计算机创建自定义图像的功能。

但在成功构建后,我意识到我实际上没有合适的电缆将我的 Raspberry Pi 4b 连接到显示器,而且我真的不想在 Buildroot 中设置 SSH。

我读过几篇关于在 VirtualBox 中模拟 .img 文件的帖子,但没有一篇是专门针对这个问题的,而且他们的修复方法似乎都不起作用。我也试过 QEMU,但它也没用,而且它似乎对我的目的来说有点高级。

在 VirtualBox 中,我尝试将文件添加为软盘,将扩展名更改为.iso,并使用 VBoxManage 工具将其转换为.vbi文件。但都出现了某种错误。

任何有关在 VirtualBox 中设置 Raspberry Pi 环境的帮助都将不胜感激!

答案1

Qemu 刚开始使用时可能比较棘手,但是习惯之后我发现它是一种非常强大且可靠的工具。

如果您或其他人愿意尝试,请尝试以下操作:

获取内核、dtb 以及可能预制的 Rasbian SD 卡映像https://github.com/dhruvvyas90/qemu-rpi-kernelhttps://www.raspberrypi.com/software/分别。

qemu-system-arm \
-M versatilepb -cpu arm1176 -m 256 \
-drive "file=2022-09-22-raspios-bullseye-armhf-lite.img,if=none,index=0,media=disk,format=raw,id=disk0" \
-device "virtio-blk-pci,drive=disk0,disable-modern=on,disable-legacy=off" \
-net "user,hostfwd=tcp::5022-:22" \
-dtb versatile-pb-buster-5.4.51.dtb \
-kernel kernel-qemu-5.4.51-buster \
-append 'root=/dev/vda2 panic=1' -no-reboot

首先尝试这些,使其启动。然后用您制作的 buildroot 结果替换内核和 dtb,这样您就可以确保您的 Qemu 设置可以使用已知的良好文件。如果需要,请更改 qemu 命令行以适合您的特定 HOST 网络(例如,点击用于 wifi 互联网共享的设备https://wiki.gentoo.org/wiki/Network_bridge举个例子)

作为测试,我遵循了以下做法:https://ltekieli.com/buildroot-with-raspberry-pi-what-where-and-how/ 基本上下载或者克隆构建根:

cd buildroot
make raspberrypi_defconfig
make -j8

(改变 j 标志来对应您喜欢用于编译的线程数量)

我能够启动新的 buildroot sdcard 映像,它位于 buildroot/output/images/ 中,但当然,内核和 dtb 不是为 qemu 中使用的这个特定 cpu 制作的,qemu 也不了解 raspberrypi 特定的 cpu。现在您必须使用其他内核。

这是道路的分叉。你需要虚拟 Pi 做什么?如果只是编辑和测试,这个设置可能就足够了,使用 buildroot 你甚至可以专门针对 arm1176 cpu 并为虚拟 pi 生成一个有效的 dtb。编辑,连接到互联网,设置 SSH。

取决于你现在的需求。我猜你现在已经想通了,甚至拿到了那根电缆。https://pimylifeup.com/raspberry-pi-virtualbox/可能是针对虚拟盒的答案。但同样,我更喜欢 Qemu,它对于在没有真正的 Pi 的情况下诊断和调试软件很有帮助。

相关内容