使用上文生成的內核鏡像文件,用Qemu模擬內核啟動,輸入如下命令:

qemu-system-arm -M versatileab -kernel ./arch/arm/boot/zImage -m 128M -nographic

出現圖示錯誤,提示machine ID不能識別,是因為沒有指定設備樹,設備樹二進位文件在boot/dts目錄下,如下圖所示,編譯程序會將dts文件轉為dtb二進位文件,此文件在內核啟動時是由bootloader引導載入程序傳遞給內核的,這裡因為沒有將此傳遞給內核,所以出現了上圖所示的Error。

下圖所示,指定設備樹二進位設備樹文件後,內核成功啟動起來了。

但是在啟動後期出現下圖所示的panic(內核恐慌),因為沒有給內核指定根文件系統,所以內核不知道起來後,他應該做啥,所以panic,慌的一米。下篇講解如何給內核指定根文件系統,讓它有所作為。

--未完待續

推薦閱讀:

相关文章