【虛擬機器】Windows(x86)上部署ARM虛擬機器(Ubuntu)

清风来叙發表於2024-07-26

【虛擬機器】Windows(x86)上部署ARM虛擬機器(Ubuntu)

零、起因

最近在學嵌入式,這就不得不涉及ARM指令集,但是電腦是x86指令集的,用手機不太方便,買開發板又要等幾天……,總之就是要找個理由在x86的Windows上執行一下ARM的Ubuntu~

壹、準備

我們要在ARM虛擬機器上執行Ubuntu系統需要準備下面這些檔案(文末提供網盤分享連結):

1. 虛擬機器

這邊我們使用的是QEMU,QEMU可以模擬很多不同指令集的CPU,目前包括有 ARM、LoongArch、MIPS、RISCV 和 x86_64 等,我們可以到官網下載最新版:https://www.qemu.org/,也可以選擇跟我一樣的版本,下載後得到一個軟體安裝包,按照正常的軟體安裝方法執行安裝程式,設定好安裝位置,安裝安裝即可,這裡需要記一下安裝位置!下載地址:https://qemu.weilnetz.de/w64/2024/qemu-w64-setup-20240423.exe

2. UEFI

統一可擴充套件韌體介面(英語:Unified Extensible Firmware Interface,縮寫UEFI)是一種個人電腦系統規格,用來定義作業系統與系統韌體之間的軟體介面,作為BIOS(基本輸入/輸出系統)的替代方案。可擴充套件韌體介面負責加電自檢(POST)、聯絡作業系統以及提供連線作業系統與硬體的介面。我們的ARM虛擬機器需要用到這個,下載地址:http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

3. Ubuntu

Ubuntu的系統安裝包,Ubuntu系統就不多介紹了,可以自行到官網下載,官網地址:https://cn.ubuntu.com/download/server/arm,也可以下載跟我一樣的版本,只要下載的是ARM版本的即可,下載地址:https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04-live-server-arm64.iso

貳、安裝

1. 虛擬機器的安裝

直接執行下載得到的qemu-w64-setup-20240423.exe即可,安裝過程中的選項都可以保持預設的,但是要注意記一下安裝位置,等下要用到:
記住安裝路徑

我的安裝位置:D:\Program Files\qemu

2. 虛擬機器環境變數配置(選做)

為了方便,可以把安裝路徑配置到環境變數中去,這樣到時候虛擬機器的命令就可以簡單一點點,我選擇不配置,要配置的同學可以看看:
配置環境變數

3. 建立磁碟檔案

在安裝系統之前,我們需要給虛擬機器建立一個磁碟檔案,作為虛擬機器儲存資料的地方,使用如下命令(配置了環境變數後可以省略安裝路徑):
CMD命令格式:

"QEMU安裝路徑\qemu-img.exe" create -f qcow2 "儲存的資料夾\檔名.qcow2" 檔案大小

我的:

"D:\Program Files\qemu\qemu-img.exe" create -f qcow2 "F:\VM\ARM\ubuntu\ubuntu.qcow2" 40G

這樣我們會得到一個虛擬磁碟檔案:F:\VM\ARM\ubuntu\ubuntu.qcow2

4. 安裝Ubuntu系統

CMD命令格式:

"QEMU安裝路徑\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "下載的 QEMU_EFI.fd 檔案路徑" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="剛剛建立的磁碟檔案的路徑",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="Ubuntu系統安裝包檔案路徑",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

最後一個引數hostfwd是做的埠對映,把虛擬機器的埠號為22的TCP協議對映到主機地址127.0.0.1:2222中,方便我們使用SSH連結虛擬機器。

我的:

"D:\Program Files\qemu\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "F:\VM\ARM\ubuntu\QEMU_EFI.fd" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu-24.04-live-server-arm64.iso",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

執行此命令後會彈出一個視窗,稍作等待即可進入Ubuntu的安裝載入程式了,具體如何配置Ubuntu的安裝程式我就不多介紹了,系統安裝完即可正常使用了,至此我們成功在Windows(x86)上執行了Ubuntu(ARM)。

5. 執行已安裝好系統的虛擬機器

安裝好後把虛擬機器視窗關掉了,想再次開啟可以使用下面的命令(不需要指定系統安裝包了):
CMD命令格式:

"QEMU安裝路徑\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "下載的 QEMU_EFI.fd 檔案路徑" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="安裝有系統的磁碟檔案路徑",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

我的:

"D:\Program Files\qemu\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "F:\VM\ARM\ubuntu\QEMU_EFI.fd" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

稍作等待,Ubuntu系統成功在ARM虛擬機器中啟動之後就可以使用了~

可以輸入如下命令檢視系統使用的CPU指令集:
檢視CPU指令集

6. 配置Ubuntu系統

Ubuntu系統安裝好後還需要經過一定的配置才好用,這邊不詳細講,給同學們找了幾篇文章參考:

  1. 配置SSH:如何在 Ubuntu 上啟用 SSH,安全地遠端管理和傳輸資料:https://developer.aliyun.com/article/1375688
  2. 配置遠端連線:【Linux】遠端連線Linux虛擬機器(MobaXterm):https://www.cnblogs.com/minuhy/p/18324410
  3. 配置映象軟體源:【Ubuntu】Ubuntu 配置映象源(ARM):https://www.cnblogs.com/minuhy/p/18323928
  4. 安裝程式設計軟體(可選):如何在 Ubuntu 22.04 上安裝 GCC:https://cn.linux-console.net/?p=14950

叄、參考文件

  • UEFI啟動和Bios(Legacy)啟動的區別:https://blog.csdn.net/zhangxiangweide/article/details/95342334
  • WIN10 x86環境部署ARM虛擬機器(銀河麒麟)例項:https://blog.csdn.net/weixin_44255842/article/details/120652227
  • Linux 檢視CPU架構及核心版本:https://blog.csdn.net/lxh_worldpeace/article/details/106916780

相關文章