國產化之虛擬ARM64-CPU安裝銀河麒麟作業系統

波斯馬發表於2022-03-07

背景

某個專案需要實現基礎軟體全部國產化,其中作業系統指定銀河麒麟v4,CPU使用飛騰處理器。我本地沒有這個國產的處理器,但飛騰是基於ARMv8架構的64位處理器,所以理論上基於這個CPU架構的硬體應該都可以。

首先想到的是樹莓派,這個開發板整合的ARM CPU,不過要看下是否為ARMv8架構,如果正好有的話可以試一試。不過這也有點重了,能模擬CPU就好了,最終找到了QEMU這個工具,可以在Windows上執行。

這篇文章就在Windows 10上建立一個模擬ARM64平臺的虛擬機器來安裝銀河麒麟作業系統。

環境

  • 主機作業系統:Windows 10 專業版
  • 主機CPU平臺:x86-64
  • 虛擬機器軟體:QEMU

下載

銀河麒麟v4 ARM版下載地址:「Inspur」- NF2180M3 (ARMv8) – K4NZ BLOG

QEMU下載地址:Download QEMU – QEMU

QEMU的UEFI韌體:https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd

虛擬網路卡工具:https://pan.baidu.com/s/1sFSH8AOnLb-I3JWLHV-3Ow?pwd=309c

安裝

1、安裝QEMU

執行安裝檔案,一路安裝即可。我這裡都是預設配置,沒有更改。

2、配置虛擬機器網路

這一步是在主機建立一個Tap網路卡給虛擬機器使用,使用【下載】步驟中的 虛擬網路卡工具。

這個工具是從某個軟體提取出來的,建立虛擬網路卡的命令:

tapctl create --name tap0

通過這個命令可以刪除:

tapctl delete tap0

注意:tap0是虛擬網路卡的名字,可以按照自己的習慣命名,不重複就行了。

然後還要共享主機網路給這個虛擬網路卡使用,參照下圖:img

3、建立虛擬機器

這個工具需要使用命令,這裡編寫一個批處理檔案:create.bat,內容如下:

"C:\Program Files\qemu\qemu-img.exe" create -f qcow2 D:\qemu\kylin-v4-arm64\kylin-v4-arm64.qcow2 50G

"C:\Program Files\qemu\qemu-system-aarch64.exe" ^
-m 2048 ^
-cpu cortex-a53 ^
-smp 4,cores=4,threads=1,sockets=1 ^
-M virt ^
-bios D:\qemu\kylin-v4-arm64\QEMU_EFI.fd ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-mouse ^
-device usb-kbd ^
-cdrom D:\qemu\kylin-4.0.2-server-sp2-arm64.iso ^
-net nic,model=virtio ^
-net tap,ifname=tap0 ^
-boot d D:\qemu\kylin-v4-arm64\kylin-v4-arm64.qcow2

簡單解讀下,裡邊執行了兩個命令:

第一行是建立一個映象。映象檔案帶路徑的名字是:D:\qemu\kylin-v4-arm64\kylin-v4-arm64.qcow2,大小是50G。路徑和名字都是可以按自己的需求定義的。

第二行是在第一行建立的映象中建立虛擬機器。

  • -m 指定記憶體大小,單位M,2048就是2G。
  • -cpu 指定CPU型號,cortex-a53 是一款ARMv8架構的處理器。
  • -smp 依次為:邏輯處理器的個數、每個CPU的核心數、每個CPU的執行緒數、CPU的個數。
  • -bios UEFI韌體的路徑,前文【下載】的步驟中提到過。
  • -cdrom 光碟映象檔案的地址,這裡就是作業系統安裝映象的路徑。
  • -boot 當前虛擬機器映象的檔案路徑。
  • -net tap 指定後端網路型別是TAP,ifname指定TAP網路卡的名字是tap0。

4、安裝作業系統

以管理員身份執行上文中的批處理程式 create.bat,然後會啟動QEMU的視窗,並開啟作業系統的安裝。

這裡沒什麼好說的,按照提示一步步設定就行了。為了方便操作,建議安裝圖形化介面。

img

安裝過程比較慢,請耐心等待。

5、啟動作業系統

安裝完畢後,重新啟動時需要移除光碟映象,否則還會進入安裝介面。

退出當前的的QEMU視窗,重新建立一個批處理檔案 start.bat:

"C:\Program Files\qemu\qemu-system-aarch64.exe" ^
-m 2048 ^
-cpu cortex-a53 ^
-smp 4,cores=4,threads=1,sockets=1 ^
-M virt ^
-bios D:\qemu\kylin-v4-arm64\QEMU_EFI.fd ^
-device VGA ^
-device nec-usb-xhci ^
-device usb-mouse ^
-device usb-kbd ^
-net nic,model=virtio ^
-net tap,ifname=tap0 ^
-boot d D:\qemu\kylin-v4-arm64\kylin-v4-arm64.qcow2

這些引數和上邊建立虛擬機器的引數差不多,這裡就不多介紹了。

以管理員身份執行 start.bat ,啟動後,檢視電腦屬性,其中系統核心中提到的的aarch64就是ARMv8架構支援的。

img

6、更改軟體包源

銀河麒麟v4的預設軟體包源是光碟,這個可能不好搞。不過這個作業系統是基於ubuntu 16.04的,所以ubuntu 16.04的包源應該可以,但是還要注意針對ARM架構的包源和x64的不太一樣,這裡給出一個清華大學的映象包源,國內訪問比較快。

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe

7、重用映象

對於安裝好系統的映象,可以通過複製映象檔案的方式做個備份。

如果不小心把系統搞壞了,可以用備份的映象重新啟動一個乾淨的環境,避免漫長的系統安裝過程。

也可以通過複製多個映象檔案,啟動多個虛擬機器,不過網路那塊得想想怎麼搞,這裡就懶得去折騰了。


以上就是本文的主要內容,如有錯漏歡迎指正。

收穫更多架構知識,請關注微信公眾號 螢火架構。原創內容,轉載請註明出處。
掃描二維碼關注公眾號

相關文章