【发布时间】:2020-04-27 02:24:36
【问题描述】:
我正在使用 buildroot 编译一个带有 4.19-rt 内核的简约 linux。它应该在树莓派 3b(ARM 处理器)上运行。此外,我想在 x86_64 linux 计算机上运行它,并发现 qemu 作为其仿真解决方案。
构建 linux 和内核并在 raspi 上运行它。它启动了,我可以登录并使用它。
为了测试 qemu,我遵循了这个指令 [1]。最近一个 4.19 内核的 raspbian 可以正常启动,所以 qemu 似乎安装正确。
sudo qemu-system-arm -kernel ./qemu-rpi-kernel/kernel-qemu-4.19.50-buster -hda 2019-09-26-raspbian-buster-lite.img -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -dtb qemu-rpi-kernel/versatile-pb.dtb
- 将 1. 和 2. 放在一起失败。当我尝试模拟任何自建 linux 时,qemu 只显示黑屏,并且一个 CPU 正在使用 100%。
我使用了与真实硬件相同的 sdcard.img。我还尝试使用普通的 4.19 内核(没有实时)重新编译整个系统。我尝试构建一个多功能系统(make qemu_arm_versatile_defconfig && make)。都不行。
启动仿真的命令:
sudo qemu-system-arm -kernel zImage -drive format=raw,file=sdcard.img -cpu arm1176 -m 256 -M versatilepb -no-reboot -append "root=/dev/mmcblk0p2 panic=1 rootfstype=ext4 rw" -serial stdio
我的主要问题是,绝对没有有用的输出。该命令输出以下内容
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
sdl: SDL_OpenAudio failed
sdl: Reason: ALSA: Couldn't open audio device: Connection refused
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
sdl: SDL_OpenAudio failed
sdl: Reason: ALSA: Couldn't open audio device: Connection refused
audio: Failed to create voice `lm4549.out'
并打开一个图形输出窗口(不显示任何内容)。该消息在模拟 raspbian 时也会出现,所以这似乎不是原因。
当我使用 prebuild raspbian 但没有 -dtb 参数运行 qemu 时,我收到类似“错误:无效 dtb 和无法识别/不支持的机器 ID”的消息。我至少希望我的自建代码会出现这样的情况。但是因为没有输出,我什至不知道谷歌是为了什么。
是否有人知道我做错了什么,或者我如何让 qemu 为我提供任何有用的信息来说明问题所在?
[1]https://blog.agchapman.com/using-qemu-to-emulate-a-raspberry-pi/
【问题讨论】:
标签: raspberry-pi arm kernel qemu buildroot