QEMU搭建ARM+Linux

参考网址:

https://zhuanlan.zhihu.com/p/679415673

qemu-img create -f qcow2 E:\arm_kylin\Kylin.img 50G

arm64专用BIOS,用于启动 EFI (可扩展固件接口) 内核

https://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

安装 iso

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios E:\arm_kylin\QEMU_EFI.fd -net nic -net tap,ifname=tap0 -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=E:\arm_kylin\Kylin-Desktop-V10-SP1-General-Release-2303-ARM64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=E:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

重新启动

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios E:\arm_kylin\QEMU_EFI.fd -net nic -net tap,ifname=tap0 -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=E:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios E:\arm_kylin\QEMU_EFI.fd -net nic -net tap,ifname=tap0,script=no -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=E:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

这个命令使用 qemu-system-aarch64.exe 启动了一个 QEMU 虚拟机,虚拟机的硬件和部分行为通过命令行参数被配置。下面是对上述命令中各个参数的详细解释:

  • -m 8192:分配8192MB(即8GB)的内存给虚拟机。
  • -cpu cortex-a72:设置虚拟机使用的CPU类型为 ARM Cortex-A72。
  • -smp 4,cores=4,threads=1,sockets=1:虚拟机配置为4个CPU核心,每个核心1个线程,共1个CPU插槽。
  • -M virt:指定虚拟机使用的机器类型为“virt”,这是一种针对虚拟化优化的通用ARM板。
  • -bios F:\VM\test\QEMU_EFI.fd:设置虚拟机使用的BIOS固件文件,路径指向 F:\VM\test\QEMU_EFI.fd
  • -net nic:添加一个网络接口卡到虚拟机。
  • -net tap,ifname=tap0:使用TAP接口配置网络,网络接口命名为 tap0
  • -device nec-usb-xhci:为虚拟机添加一个 USB 3.0 控制器。
  • -device usb-kbd:添加一个 USB 键盘设备给虚拟机。
  • -device usb-mouse:添加一个 USB 鼠标设备给虚拟机。
  • -device VGA:添加一个标准的VGA显示适配器给虚拟机。
  • -drive if=none,file=F:\VM\test\Kylin-Desktop-V10-SP1-General-Release-2303-ARM64.iso,id=cdrom,media=cdrom:创建一个驱动设备,其源文件是一个CD镜像 Kylin-Desktop-V10-SP1-General-Release-2303-ARM64.iso,并将这个设备标识ID设置为 cdrom,指定媒体类型为 cdrom
  • -device virtio-scsi-device:为虚拟机添加一个支持virtio的SCSI控制器,该控制器支持更高的I/O性能和更好的虚拟化集成。
  • -device scsi-cd,drive=cdrom:将之前创建的CD驱动设备(id为 cdrom)连接到虚拟SCSI控制器上。
  • -drive if=none,file=F:\VM\test\Kylin-ARM64.img,id=hd0:创建一个虚拟硬盘驱动,其源文件是 Kylin-ARM64.img,并为这个设备分配ID hd0
  • -device virtio-blk-device,drive=hd0:将虚拟硬盘(ID为 hd0)连接到虚拟机上,使用virtio块设备,这也是为了更好的性能和虚拟化优化。

综上所述,这个命令启动了一个配置了8GB内存、ARM Cortex-A72处理器、一个virt类型的机器、带有UEFI固件、网络连接、USB支持、VGA显示以及安装有Kylin操作系统的虚拟机。Kylin是为中国市场设计的一款基于Linux的操作系统,这个特定的版本是针对ARM64架构的。

powershell 提升为 管理员权限

start-process PowerShell -verb runas

配置网络

ifconfig -s eth0 static 192.168.50.128 255.255.255.0 192.168.50.1

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios E:\arm_kylin\QEMU_EFI.fd -net nic,model=virtio -net user -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=E:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

参考文献:

https://www.cnblogs.com/wpcnblog/p/11517546.html#:~:text=vlan%3Dvlan%E7%BC%96%E5%8F%B7%EF%BC%8C%E5%B0%86%E7%94%A8%E6%88%B7%E6%A8%A1%E5%BC%8F%E7%BD%91%E7%BB%9C%E6%A0%88%E8%BF%9E%E6%8E%A5%E5%88%B0%E7%BC%96%E5%8F%B7%E4%B8%BAn%E7%9A%84VLAN%E4%B8%AD%EF%BC%88%E9%BB%98%E8%AE%A4%E5%80%BC%E4%B8%BA0%EF%BC%89%E3%80%82%20name%3D%E5%90%8D%E7%A7%B0%EF%BC%8C%E5%88%86%E9%85%8D%E4%B8%80%E4%B8%AA%E7%BD%91%E7%BB%9C%E5%90%8D%E7%A7%B0%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%94%A8%E6%9D%A5%E5%9C%A8QEMU%20monitor%E4%B8%AD%E8%AF%86%E5%88%AB%E8%AF%A5%E7%BD%91%E7%BB%9C%E3%80%82,net%3D%E5%9C%B0%E5%9D%80%20%E6%8E%A9%E7%A0%81%5D%EF%BC%8C%E8%AE%BE%E7%BD%AE%E5%AE%A2%E6%88%B7%E6%9C%BA%E6%89%80%E5%9C%A8%E5%AD%90%E7%BD%91%EF%BC%8C%E7%BC%BA%E7%9C%81%E5%80%BC%E6%98%AF10.0.2.0%2F24%E3%80%82%20host%3D%E5%9C%B0%E5%9D%80%EF%BC%8C%E8%AE%BE%E7%BD%AE%E5%AE%A2%E6%88%B7%E6%9C%BA%E7%9C%8B%E5%88%B0%E7%9A%84%E5%AE%BF%E4%B8%BB%E6%9C%BAIP%E5%9C%B0%E5%9D%80%EF%BC%8C%E7%BC%BA%E7%9C%81%E5%80%BC%E4%B8%BA%E5%AE%A2%E6%88%B7%E6%9C%BA%E6%89%80%E5%9C%A8%E7%BD%91%E7%BB%9C%E7%9A%84%E7%AC%AC2%E4%B8%AAIP%E5%9C%B0%E5%9D%8010.0.2.2%E3%80%82

QEMU缺省使用“-net nic-net user”参数为客户机配置网络,提供了一种用户模式( user-mode)的网络模拟。使用用户模式的客户机可以连通宿主机及外部网络。用户模式网络完全由QEMU模拟实现整个TCP/IP协议栈,并且使用这个协议栈提供一个虚拟的NAT网络。它不依赖于宿主机上的网络工具组件,如bridge-utils、tunctl、dnsmasq、iptables等,因此也不需要root用户权限。当然,用户模式网络的缺陷也是明显的:因其在QEMU内部实现所有网络协议栈,相对性能较差。

QEMU命令使用“-net user”参数配置用户模式网络,命令格式如下:

** ** qemu-kvm -net nic -net user [, opion[, option[, … ] ] ] myVM.img

用户模式的参数选项描述如下:

vlan=vlan编号,将用户模式网络栈连接到编号为n的VLAN中(默认值为0)。

name=名称,分配一个网络名称,可以用来在QEMU monitor中识别该网络。

net=地址[/掩码],设置客户机所在子网,缺省值是10.0.2.0/24。

host=地址,设置客户机看到的宿主机IP地址,缺省值为客户机所在网络的第2个IP地址10.0.2.2。

restrict=开关,如果将此选项打开(y或yes),则客户机不能与宿主机通信,也不能通过宿主机路由到外部网络。缺省设置为n或no。

hostname=名称,设置在宿主机DHCP服务器中保存的客户机主机名。

dhcpstart=地址,设置能够分配给客户机的第一个IP,QEMU内嵌的DHCP服务器有16个IP地址可供分配,缺省地址范围是10.0.2.15-10.0.2.30。

dns=地址,指定虚拟DNS的地址,其缺省值是网络中的第3个IP地址10.0.2.3,不能与“host= ”中指定的相同。

hostfwd=[tcpludp] [宿主机地址]:宿主机端口- [客户机地址]:客户机端口,将访问宿主机指定端口的TCP/UDP连接重定向到客户机端口上。该选项可以在一个命令行中可以多次重复使用

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios E:\arm_kylin\QEMU_EFI.fd -net nic,model=virtio -net user -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=E:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

"C:\Program Files\qemu\qemu-system-aarch64.exe" -m 8G -cpu cortex-a72 --accel tcg,thread=multi -M virt -bios d:\soft\QEMU_EFI.fd -rtc base=localtime -display sdl -device VGA -device nec-usb-xhci -device usb-tablet -device usb-kbd -drive if=virtio,file=d:\qvm\kylin_arm64.img,id=hd0,format=raw,media=disk -net nic,model=virtio -net user

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios D:\arm_kylin\QEMU_EFI.fd -net nic -net tap,ifname=tap0,script=no -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=D:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

arm,启动! pwd:[自己设置]

.\qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios D:\arm_kylin\QEMU_EFI.fd -net nic,model=virtio -net user -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=D:\arm_kylin\Kylin.img,id=hd0 -device virtio-blk-device,drive=hd0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值