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

时间:2016-07-12 04:32:06

标签: linux arm qemu

我试图在qemu上运行linux,尤其是多功能版本。

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

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

无论如何,我用2步编译了linux。

  1. make ARCH = arm versatile_defconfig
  2. make all ARCH = arm CROSS_COMPILE = arm-none-eabi -
  3. 还用3个步骤编译了qemu。

    1. ./配置
    2. 制作
    3. sudo make install
    4. 我用这个命令运行它:

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

      窗口弹出一个黑色的屏幕。之后我该怎么办?

2 个答案:

答案 0 :(得分:1)

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

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

无论如何,我用2步编译了linux。

  1. make ARCH = arm versatile_defconfig
  2. make all ARCH = arm CROSS_COMPILE = arm-none-eabi -
  3. 还用3个步骤编译了qemu。

    1. ./配置
    2. 制作
    3. sudo make install
    4. 要挂载根文件系统,我下载了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. make defconfig
      5. make menuconfig(将二进制文件设为静态不共享)
      6. make -j8
      7. make install
      8. cd _install
      9. 找到。 | cpio -o --format = newc> ../ rootfs.img
      10. cd ..
      11. gzip -c rootfs.img> rootfs.img.gz
      12. 所以,我的最后一个命令是

        ../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"
        

        我在qemu上运行linux,特别是多功能版本

        这是我目前的文件状态' ls'命令

        要运行上面的命令,linux,qemu和filesystem图像应该像这样定位(除了FreeRTOS之外的其他项目,仅适用于我的情况)

        enter image description here

答案 1 :(得分:1)

<强> 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。