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


背景

某個項目需要實現基礎軟件全部國產化,其中操作系統指定銀河麒麟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、重用鏡像

對於安裝好系統的鏡像,可以通過復制鏡像文件的方式做個備份。

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

也可以通過復制多個鏡像文件,啟動多個虛擬機,不過網絡那塊得想想怎么搞,這里就懶得去折騰了。


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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM