【发布时间】:2020-05-03 05:33:53
【问题描述】:
我正在尝试在 QEMU 上运行 u-boot。但是启动QEMU时什么也没有,为什么这不起作用以及如何调试找出原因?
这是我试过的:
在 Windows 上安装
Ubuntu 18.04 WSL2。-
为 Raspi2 编译 u-boot
sudo apt install make gcc bison flex sudo apt-get install gcc-arm-none-eabi binutils-arm-none-eabi export CROSS_COMPILE=arm-none-eabi- export ARCH=arm make rpi_2_defconfig all -
启动 QEMU
qemu-system-arm -M raspi2 -nographic -kernel ./u-boot/u-boot.bin并且在windows端也试过QEMU,结果是一样的。
PS C:\WINDOWS\system32> qemu-system-arm.exe -M raspi2 --nographic -kernel E:\u-boot\u-boot.bin
【问题讨论】:
-
有些东西在 WSL2 中运行时不起作用。使用 vagrant / virtualbox 或类似工具使用完整的 Ubuntu VM
-
@Marged 你好,我也在 Windows 上尝试了 QEMU,结果是一样的,所以我认为是 WSL2 的原因。
-
如果您在 Linux 主机上运行 QEMU,检查问题是否可重现总是一个好主意 - 很少有上游开发人员运行 Windows 主机,因此仅 Windows 的错误很少受到关注。但是在这种情况下,我怀疑问题在于 -kernel 参数用于运行 Linux 内核,并且 QEMU 没有提供 u-boot 期望的引导环境(也就是说,它不模拟板载固件的引导代码)。
-
@PeterMaydell 好的,我会试试 Linux 虚拟机。
-
在 Ubuntu 16.04 和 qemu 4.1.1 上使用 qem-arm/qemu-virt 可以正常工作,但不能使用 rpi_2/raspi2(我可以在 telnet 会话中显示 u-boot 版本) qemu-virt 机器)。我使用了以下命令:
make CROSS_COMPILE=/opt/arm/9/gcc-arm-9.2-2019.12-x86_64-arm-none-eabi/bin/arm-none-eabi- ARCH=arm mrproper qemu_arm_defconfig all,/opt/qemu-4.1.1/bin/qemu-system-arm -nographic -serial telnet::4444,server,nowait -machine virt -cpu cortex-a7 -bios u-boot-qemu-virt-arm.bin,然后使用rpi_2_defconfig构建并使用`-machine raspi2` 和u-boot-rpi_2.bin启动qemu