如何在 QEMU ARM 多功能机器上 运行 Linux?

How to run Linux on a QEMU ARM Versatile machine?

我正在尝试 运行 linux 在 qemu 上,尤其是通用版本。

我从 github 下载了 qemu 和 linux。 (qemu: https://github.com/qemu/qemu.git, linux : https://github.com/torvalds/linux.git)

我认为这两个存储库是他们的主要项目。

总之,我分两步编译了linux。

  1. 制作 ARCH=arm versatile_defconfig
  2. 使所有 ARCH=arm CROSS_COMPILE=arm-none-eabi-

同样分3步编译了qemu

  1. ./配置
  2. 制作
  3. 须藤安装

我运行用这个命令:

../qemu/arm-softmmu/qemu-system-arm -M versatilepb -m 128M -kernel ./arch/arm/boot/zImage

然后 window 弹出,只是黑屏。之后我应该做什么?

我从 github 下载了 qemu 和 linux。 (qemu:https://github.com/qemu/qemu.git, linux : https://github.com/torvalds/linux.git)

我认为这两个仓库是他们的主要项目。

总之,我分两步编译了linux。

  1. 制作 ARCH=arm versatile_defconfig
  2. 使所有ARCH=arm CROSS_COMPILE=arm-none-eabi-

同样分3步编译了qemu

  1. ./配置
  2. 制作
  3. 须藤安装

为了挂载根文件系统,我下载了busybox。 (我不确定,但是这个 busybox 是他们想要制作简单环境时最常用的文件系统)

我下载了 busybox 并遵循了一些步骤。

  1. wget http://www.busybox.net/downloads/busybox-1.24.1.tar.bz2
  2. tar -xvf busybox-1.24.1.tar.bz2
  3. cd busybox-1.24.1/
  4. 进行defconfig
  5. make menuconfig(将二进制文件设为静态而不共享)
  6. 制作-j8
  7. 进行安装
  8. cd _install
  9. 找到。 | cpio -o --format=newc > ../rootfs.img
  10. CD ..
  11. gzip -c rootfs.img > rootfs.img.gz

所以,我最后的命令是

../qemu/arm-softmmu/qemu-system-arm -M versatilepb -kernel ./arch/arm/boot/zImage -nographic -dtb arch/arm/boot/dts/versatile-pb.dtb -initrd ../rootfs.img.gz -append "root=/dev/ram0 initrd=/bin/sh"

我运行linux关于qemu特别全能的版本

这是我使用 'ls' 命令

的文件当前状态

对于运行上层命令,linux,qemu和文件系统镜像应该这样定位(除了FreeRTOS等其他项目,这只是针对我的情况)

Buildroot

git clone https://github.com/buildroot/buildroot
cd buildroot
git checkout 2017.02
make qemu_arm_versatile_defconfig
make BR2_JLEVEL="$(($(nproc) - 2))"
# From: https://github.com/buildroot/buildroot/blob/master/board/qemu/arm-versatile/readme.txt
qemu-system-arm -M versatilepb -kernel output/images/zImage -append "console=ttyAMA0,115200" -serial stdio -net user -net nic,model=smc91c111

欢迎来到自动化 Nirvana。