简单记录一下qemu搭arm64环境,用于复现一些iot上的东西

肚子好疼啊

获取各种需要的文件

主要是这个网站

https://people.debian.org/~aurel32/qemu/

里面除了arm还有其他架构的内核和镜像之类的,很方便

上面这些镜像其实没有我们需要的arm64的东西,我们要的在底下藏起来了x

最底下那个链接点进去

甚至有riscv架构的

然后就可以用wget命令来下载:

wget https://gitlab.com/api/v4/projects/giomasce%2Fdqib/jobs/artifacts/master/download?job=convert_arm64-virt

下载之后解压应该是这个样子的:

qemu,启动!

打开readme,可以看到他已经给了我们参考命令,但是网络上的配置有点怪怪的,我就用了之前配mips时的命令:

#!/bin/sh 
sudo brctl addbr virbr0
sudo ifconfig virbr0 192.168.21.128 up
sudo tunctl -t tap0
sudo ifconfig tap0 192.168.21.129 up
sudo brctl addif virbr0 tap0
sudo qemu-system-aarch64 -machine 'virt' -cpu 'cortex-a57' -m 1G -device virtio-blk-device,drive=hd -drive file=image.qcow2,if=none,id=hd -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet -kernel kernel -initrd initrd -nographic -append "root=LABEL=rootfs console=ttyAMA0"

可以自己直接终端输入也可以放到一个sh脚本里一起搞(后者方便一点,而且可以作为模板之类的)

这样就成功启动了,初始login和password都是root。

这个时候你ping我们的虚拟机是ping不通的,还得在qemu里配置一下网络。

这里命令用的是ip,之前用的都是ifconfig,结果发现这里根本没有,甚至连vim都没有(

这里配置ip记得添上子网掩码,确保和宿主机的是同一网段。

ip addr add 192.168.21.130/24 dev eth0

双向都ping通就算成功。

130 ping 128,128 ping 130。这个128是我上面宿主机的ens33网卡IP,用于上网的IP(也可能叫eth0之类的,反正很明显),不是指网桥的IP(后面发现好像不一样也没什么关系x,但至少在一个网段吧),之后就可以通过scp命令传东西进来了。

至此,大的环境是基本好了

先写到这,之后再说模拟路由器(

浇浇我,我什么都会做的