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