背景

某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟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是虚拟网卡的名字,可以按照自己的习惯命名,不重复就行了。

然后还要共享主机网络给这个虚拟网卡使用,参照下图:

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 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、重用镜像

对于安装好系统的镜像,可以通过复制镜像文件的方式做个备份。

如果不小心把系统搞坏了,可以用备份的镜像重新启动一个干净的环境,避免漫长的系统安装过程。

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


以上就是本文的主要内容,如有错漏欢迎指正。

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

国产化之虚拟ARM64-CPU安装银河麒麟操作系统的更多相关文章

  1. 银河麒麟操作系统U盘手动挂载,出现乱码

    使用银河麒麟操作系统,U盘手动挂载,U盘中中文字符显示为乱码??      对于银河麒麟操作系统的这一问题,可能是因为字符集的原因,需要在mount后加参数: sudo mount –o iochar ...

  2. 银河麒麟操作系统打开VMware报vmmon无法编译

    使用银河麒麟操作系统打开VMware可能会报vmmon无法编译 这个时候... 将/usr/src/linux-headers-xxx/include/miscdevice.h第71行void改为in ...

  3. 飞腾1500A 上面银河麒麟操作系统 进行远程以及添加用户的方法 linux xrdp

    1. 安装远程用的软件: sudo apt-get install xrdp vnc4server xbase-clients systemctl enable xrdp systemctl star ...

  4. 国产化之银河麒麟安装达梦数据库DM8

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用DM8. 虽然在之前的文章中已经成功模拟国产飞腾处理器,但是运行效率不高,所以这里的银河麒麟操作系统还是运行在x64平台上 ...

  5. 银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行

    银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化.云计算.大数据.工业互联网时代对主机系统可靠性.安全性.性能.扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全.云原生支 ...

  6. [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP

    银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...

  7. 国产化之Arm64 CPU+银河麒麟系统安装.NetCore

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,银河麒麟就是一个Linux发行版,数据库使用达梦V8,这个数据库很多概念和Oracle相似,CPU平台的范围:龙芯.飞腾.鲲鹏等. ...

  8. 国产化之银河麒麟安装.NetCore-包管理器方式

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...

  9. 国产化之银河麒麟.netcore3.1访问https服务的两个问题

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...

随机推荐

  1. iBooker AI+财务提升星球 2020.4 热门讨论

    比特币量化套利的心路历程(附python量化招聘)(分享自知- 如何选择一份好的工作? 你知道为什么大家都想去好公司吗? 不- #财务知识# 可转债套利 辉丰转债128012套利之三个知道- #财务知 ...

  2. C 字符串奇数位小写字母转大写

    如题 C实现 #include<stdio.h> #include<string.h> #define COUNT 20 //最大接受字符串数,可以使用动态获取空间函数优化 v ...

  3. FileInputStream 类与 FileReader 类的区别

    FileInputStream 类与 FileReader 类的区别: 两个类的构造函数的形式和参数都是相同的,参数为 File 对象或者表示路径的 String ,它们到底有何区别呢? FileIn ...

  4. web安全知识拓扑

  5. shell——并发工具parallel

    官方文档:https://www.gnu.org/software/parallel/parallel_tutorial.html 安装 (wget -O - pi.dk/3 || curl pi.d ...

  6. MySQL里的那些日志们

    该系列博文会告诉你如何从入门到进阶,从sql基本的使用方法,从MySQL执行引擎再到索引.事务等知识,一步步地学习MySQL相关技术的实现原理,更好地了解如何基于这些知识来优化sql,减少SQL执行时 ...

  7. 基于 Kintex-7 XC7K325T的半高PCIe x4双路万兆光纤收发卡

    一.板卡概述 板卡采用Xilinx公司的XC7K325T-2FFG900I芯片作为主处理器,可应用于万兆网络.高速数据采集.存储:光纤隔离网闸等领域. 二.功能和技术指标: 板卡功能 参数内容 主处理 ...

  8. ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式

    毫不夸张地说,整个ASP.NET Core就是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道所需的服务,以及管道处理请求使用到的服务,均来源于依赖注入容器.依赖注入容器不仅为A ...

  9. 暑假撸系统7- 熊孩子的捣乱!javascript保存前台状态!

    系统大体框架已经搭的差不多了, 往下就是技术性的美化以及修补了,但这也是最最耗费时间的.在这个过程就发现了一个有意思的需求,这里把思路以及解决方案总结下. 因为做的是考试系统,不管是大或者小的考试,本 ...

  10. Node 模块规范鏖战:难以相容的 CJS 与 ESM

    自 13.2.0 版本开始,Node.js 在保留了 CommonJS(CJS)语法的前提下,新增了对 ES Modules(ESM)语法的支持. 天下苦 CJS 久已,Node 逐渐拥抱新标准的规划 ...