小编典典

运行Qemu后只是黑屏

linux

我刚刚安装了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

负载点和入口点可以吗?


阅读 1040

收藏
2020-06-02

共1个答案

小编典典

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

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.

2020-06-02