Ami*_*mar 4 linux virtualization qemu linux-device-driver linux-kernel
我刚刚安装了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"
Run Code Online (Sandbox Code Playgroud)
我只能看到黑屏,我也尝试了下面的线程中建议的内容
但它仍然没有用.
以下是我运行以编译内核源代码的make命令的输出
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
Run Code Online (Sandbox Code Playgroud)
加载和输入点是否正常?
没有您的加载和输入点不正确.通常在下面是加载和输入地址
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
Run Code Online (Sandbox Code Playgroud)
此外,如果您尝试使用您的命令,内核将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.
| 归档时间: |
|
| 查看次数: |
8008 次 |
| 最近记录: |