背景

某个我的项目须要实现根底软件全副国产化,其中操作系统指定河汉麒麟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/c...

虚构网卡工具:https://pan.baidu.com/s/1sFSH...

装置

1、装置QEMU

执行安装文件,一路装置即可。我这里都是默认配置,没有更改。

2、配置虚拟机网络

这一步是在主机创立一个Tap网卡给虚拟机应用,应用【下载】步骤中的 虚构网卡工具。

这个工具是从某个VPN软件提取进去的,创立虚构网卡的命令:

tapctl create --name tap0

通过这个命令能够删除:

tapctl delete tap0

留神:tap0是虚构网卡的名字,能够依照本人的习惯命名,不反复就行了。

而后还要共享主机网络给这个虚构网卡应用,参照下图:

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的窗口,并开启操作系统的装置。

这里没什么好说的,依照提醒一步步设置就行了。为了不便操作,倡议装置图形化界面。

装置过程比较慢,请急躁期待。

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架构反对的。

6、更改软件包源

河汉麒麟v4的默认软件包源是光盘,这个可能不好搞。不过这个操作系统是基于ubuntu 16.04的,所以ubuntu 16.04的包源应该能够,然而还要留神针对ARM架构的包源和x64的不太一样,这里给出一个清华大学的镜像包源,国内拜访比拟快。

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

7、重用镜像

对于装置好零碎的镜像,能够通过复制镜像文件的形式做个备份。

如果不小心把零碎搞坏了,能够用备份的镜像重新启动一个洁净的环境,防止漫长的零碎装置过程。

也能够通过复制多个镜像文件,启动多个虚拟机,不过网络那块得想想怎么搞,这里就懒得去折腾了。


以上就是本文的次要内容,如有错漏欢送斧正。

播种更多架构常识,请关注微信公众号 萤火架构。原创内容,转载请注明出处。