当前位置: 首页 > 面试题库 >

运行Qemu后只是黑屏

巫马昆杰
2023-03-14
问题内容

我刚刚安装了QEMU并编译了具有ARM支持的linux内核,但是当我在以下命令下运行时

qemu-system-arm -M versatilepb -m 128M -kernel /home/arit/QEMU/linux-3.8.4/arch/arm/boot/uImage -append "console=tty1"

我只能看到黑屏,我也尝试了下面线程中的建议

但是仍然没有用。

以下是我运行以编译内核源代码的make命令的输出

使ARCH = arm CROSS_COMPILE = arm-none-linux-gnueabi- uImage -s

 Image Name:   Linux-3.8.4
 Created:      Tue Dec 24 12:49:07 2013
 Image Type:   ARM Linux Kernel Image (uncompressed)
 Data Size:    4406472 Bytes = 4303.20 kB = 4.20 MB
 Load Address: fffffff2
 Entry Point:  fffffff2

负载点和入口点可以吗?


问题答案:

没有您的负载和入口点不正确。通常在下面是加载和入口地址

Image Name:   Linux-3.9.0
Created:      Thu Dec 26 09:50:57 2013
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    1908056 Bytes = 1863.34 kB = 1.82 MB
Load Address: 00008000
Entry Point:  00008000

而且,如果您尝试使用命令,内核将be panic在没有rootfs的情况下使用。initrd参数丢失。同样,在构建内核时,您可能会缺少一些配置。

请尝试以下步骤:

1)make ARCH=arm distclean

2)make ARCH=arm versatile_defconfig

3)make ARCH=arm menuconfig

在这里,您需要启用以下功能

Kernel Features ---> [*] Use the ARM EABI to compile the kernel. (enable this).

4)make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

5)qemu-system-arm -M versatilepb -m 128M -kernel arch/arm/boot/uImage -append "console=tty1"

在这里,您将获得控制台提示说内核崩溃。为了避免这种情况,请传递您的rootfs参数

我猜你是从busybox构建rootfs的,如果这样,请尝试使用以下命令完全启动系统

6)qemu-system-arm -M versatilepb -m 128M -kernel arch/arm/boot/uImage -initrd rootfs.img -append "root=/dev/ram mem=128M rdinit=/sbin/init" -serial stdio.



 类似资料:
  • 使用 QEMU 运行内核 使用 OpenSBI 新版 QEMU 中内置了 OpenSBI 固件,它主要负责在操作系统运行前的硬件初始化和加载操作系统的功能。我们使用以下命令尝试运行一下: 运行输出 $ qemu-system-riscv64 \ --machine virt \ --nographic \ --bios default OpenSBI v0.6 ____

  • 我试图让这个游戏工作,但它只是显示一个黑屏。这是一个简单的游戏,你只要避免掉块。我看过相关的问题,但没有一个答案对我有用。它说我必须添加更多细节,所以希望这一行足够了,因为idk在这一行还需要写些什么来为我的文章添加细节。我的代码:

  • 问题内容: 我正在尝试使用qemu调试linux内核的启动顺序,我正在运行的命令是: 在引导过程中,所有内核消息都将打印到QEMU窗口。仅在启动完成后,我才提示我回到运行QEMU的终端。 现在,我可以开始使用正在运行的内核终端,并在终端而不是QEMU窗口中看到输出。 我如何将包括启动消息在内的所有消息发送到我的终端而不是QEMU窗口(因为我无法在该窗口中向上滚动。)? 问题答案: 删除参数 添加参

  • 摘要 本文描述了在 Windows 平台使用 QEMU 运行 RT-Thread 动态模块及动态库。 简介 RT-Thread 动态模块组件 dlmodule 提供了动态加载程序模块的机制。dlmodule 组件更多的是一个 ELF 格式加载器,把单独编译的一个 elf 文件的代码段,数据段加载到内存中,并对其中的符号进行解析,绑定到内核导出的 API 地址上。动态模块 elf 文件主要放置于 R

  • QEMU是一套由Fabrice Bellard所编写的模拟处理器的自由软件。它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由kqemu这个开源的加速器,QEMU能模拟至接近真实电脑的速度。QEMU有两种主要运作模倾: User mode模拟模式,亦即是使用者模式。QEMU 能启动那些为不同中央处理器编译的Linux程序。而Wine及 Dosemu是其

  • 我想在主线QEMU中测试TrustZone功能,让QEMU运行android映像。TrustZone功能不在qemu-ranchu中,它是在旧版本qemu之上构建的android模拟器。Qemu-ranchu不包括TrustZone功能。所以我必须使用普通qemu在android上运行信任区功能。 我已经编译了带有arm64选项的AOSP,我有以下图像文件:ramdisk.img、system.i