QEMU 运行 Linux 内核

模拟x86

qemu-system-x86_64 \
  -kernel bzImage \
  -append "root=/dev/vda rw" \
  -drive file=rootfs.img,format=raw,if=virtio 

模拟asm

qemu-system-arm \
  -M vexpress-a9 \
  -m 512M -kernel zImage_vexpress \
  -dtb vexpress-v2p-ca9.dtb \
  -drive file=rootfs_vexpress_1.ext2,if=sd,format=raw \
  -append "rootwait root=/dev/mmcblk0 console=ttyAMA0" \
  -nographic

编译内核

make -j$(nproc) 2>&1 | tee log
make clean  # 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块
make mrproper # 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件
make distclean # mrproper删除的文件, 加上编辑备份文件和一些补丁文件。

启动uboot

make vexpress_ca9x4_defconfig
make -j$(nproc)

qemu-system-arm \
  -M vexpress-a9 \
  -m 512M \
  -kernel ./u-boot \
  -nographic \
  -sd rootfs_vexpress.ext2

uboot cmd

mmc dev 0
mmc info
ls mmc 0
setenv bootargs rootwait root=/dev/mmcblk0 console=ttyAMA0
load mmc 0:0 0x60000000 zImage_vexpress
load mmc 0:0 0x61000000 vexpress-v2p-ca9.dtb
bootz 0x60000000 - 0x61000000

# 或者
load mmc 0 $kernel_add_r zImage_vexpress
load mmc 0 $fdt_addr_r $fdtfile
bootz $kernel_add_r - $fdt_addr_r
posted @ 2025-02-16 17:21  绿草蓝天  阅读(86)  评论(0)    收藏  举报