1. 程式人生 > >qemu啟動linux核心

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 ([email protected]) (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)

我們發現,核心是執行起來了,但是最終終止運行了。問題出在無法掛載根檔案系統。所以下一步需要製作根檔案系統了。