qemu启动linux内核

linux内核源码请自行下载了。

下面开始编译Linux4.16.4的内核试试,

进入内核根目录,先生成内核配置文件:

make ARCH=arm vexpress_defconfig

因为准备挂载ramdisk文件系统,所以这里还需要再配置一下内核,

make ARCH=arm menuconfig,去配置支持RAMDISK,配置步骤如下:

然后编译内核:

make ARCH=arm CROSS_COMPILE=arm-unknown-linux-gnueabi- -j8

编译结果如下:

接下来来验证下,能否使用qemu将内核运行起来。

qemu-system-arm -M virt -cpu cortex-a15 -m 256 -kernel arch/arm/boot/zImage -nographic -append "console=ttyAMA0"

发现打印信息如下:

Booting Linux on physical CPU 0x0

Linux version 4.16.4 (jqh@ubuntu) (gcc version 8.2.0 (crosstool-NG 1.23.0.480-2157b)) #1 SMP Sat Nov 3 07:15:51 PDT 2018

CPU: ARMv7 Processor [412fc0f1] revision 1 (ARMv7), cr=10c5387d

CPU: div instructions available: patching division code

CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache

OF: fdt: Machine model: linux,dummy-virt

······

VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6

······

---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

我们发现,内核是运行起来了,但是最终终止运行了。问题出在无法挂载根文件系统。所以下一步需要制作根文件系统了。

猜你喜欢

转载自blog.csdn.net/jqh_111/article/details/83795593