Linux利器:QEMU!用它模擬開發(fā)板能替代真開發(fā)板?
不想錯過我的推送,記得右上角-查看公眾號-設(shè)為星標(biāo),摘下星星送給我!

你可以把它當(dāng)作一塊召之即來的開發(fā)板,在上面運(yùn)行 U-Boot、Linux Kernel、甚至 Ubuntu 等各種軟件和操作系統(tǒng)。
有時候我們想體驗(yàn)一下 mainline 上最新的 U-Boot 或者 Linux Kernel,可是卻發(fā)現(xiàn)手邊沒有合適的板子,或者手邊的板子搭載的 U-Boot 和 Linux Kernel 版本都比較低,這時候 QEMU 可以幫你迅速實(shí)現(xiàn)這一愿望。
我們安裝的是 Arm 版本的 QEMU,如果直接在 Ubuntu 上用sudo apt install qemu-system-arm命令安裝的話,得到的 QEMU 版本比較舊,最好直接通過源碼去編譯。
我在 Ubuntu 18.04 系統(tǒng)上發(fā)現(xiàn)系統(tǒng)默認(rèn)安裝的 QEMU 在圖形模式(不帶 -nographic 參數(shù))下無法啟動。


是不是有很多熟悉的開發(fā)板都在里面,i.MX、EXYNOS 這些知名的芯片都有包含。
第一步:U-Boot 代碼下載:
git clone https://gitlab.denx.de/u-boot/u-boot.gitvexpress_ca9x4_defconfig
第二步:編譯
make vexpress_ca9x4_defconfigmake?CROSS_COMPILE=arm-linux-gnueabihf-?all


git clone git://git.buildroot.net/buildroot







arm-linux-gnueabihf/libc/usr/include/linux/version.h





git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
.=arm vexpress_defconfig

?在 Kernel hacking->printk and dmesg options選項(xiàng)中選中第一項(xiàng),這樣打印的內(nèi)核 log 前面會附帶有時間戳信息,比較好看。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
dd if=/dev/zero of=sd.img bs=4096 count=4096mkfs.vfat sd.img
sudo?mount?sd.img?/mnt/?-o?loop,rwsudo?cp?arch/arm/boot/zImage?/mnt/sudo?cp?arch/arm/boot/dts/vexpress-v2p-ca9.dtb?/mnt/sudo?umount?/mnt
sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel ../uboot-imx/u-boot-nographic -sd sd.img
fatload?mmc?0:0 0x62008000?zImagefatload?mmc?0:0?0x64008000?vexpress-v2p-ca9.dtb


bootz 0x62008000 - 0x64008000
?

評論
圖片
表情

