如何在 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。
- 制作 ARCH=arm versatile_defconfig
- 使所有 ARCH=arm CROSS_COMPILE=arm-none-eabi-
同样分3步编译了qemu
- ./配置
- 制作
- 须藤安装
我运行用这个命令:
../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。
- 制作 ARCH=arm versatile_defconfig
- 使所有ARCH=arm CROSS_COMPILE=arm-none-eabi-
同样分3步编译了qemu
- ./配置
- 制作
- 须藤安装
为了挂载根文件系统,我下载了busybox。 (我不确定,但是这个 busybox 是他们想要制作简单环境时最常用的文件系统)
我下载了 busybox 并遵循了一些步骤。
- wget http://www.busybox.net/downloads/busybox-1.24.1.tar.bz2
- tar -xvf busybox-1.24.1.tar.bz2
- cd busybox-1.24.1/
- 进行defconfig
- make menuconfig(将二进制文件设为静态而不共享)
- 制作-j8
- 进行安装
- cd _install
- 找到。 | cpio -o --format=newc > ../rootfs.img
- CD ..
- 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。
我正在尝试 运行 linux 在 qemu 上,尤其是通用版本。
我从 github 下载了 qemu 和 linux。 (qemu: https://github.com/qemu/qemu.git, linux : https://github.com/torvalds/linux.git)
我认为这两个存储库是他们的主要项目。
总之,我分两步编译了linux。
- 制作 ARCH=arm versatile_defconfig
- 使所有 ARCH=arm CROSS_COMPILE=arm-none-eabi-
同样分3步编译了qemu
- ./配置
- 制作
- 须藤安装
我运行用这个命令:
../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。
- 制作 ARCH=arm versatile_defconfig
- 使所有ARCH=arm CROSS_COMPILE=arm-none-eabi-
同样分3步编译了qemu
- ./配置
- 制作
- 须藤安装
为了挂载根文件系统,我下载了busybox。 (我不确定,但是这个 busybox 是他们想要制作简单环境时最常用的文件系统)
我下载了 busybox 并遵循了一些步骤。
- wget http://www.busybox.net/downloads/busybox-1.24.1.tar.bz2
- tar -xvf busybox-1.24.1.tar.bz2
- cd busybox-1.24.1/
- 进行defconfig
- make menuconfig(将二进制文件设为静态而不共享)
- 制作-j8
- 进行安装
- cd _install
- 找到。 | cpio -o --format=newc > ../rootfs.img
- CD ..
- 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。