转自鲲鹏社区
历史上,windows与intel的大联盟共同创造了昵称为“wintel”的庞大帝国,直到现在,业界绝大多数程序员选择的工作平台仍然是windows桌面操作系统。对于大多数行业新技术的接触,也从新技术如何在自己的桌面运行“hello,world”开始。
那么我们今天就从三个段落来讲述如何创造一个属于自己的鲲鹏开发者环境,分别是:
- windows x86桌面上如何运行一个兼容Armv8指令集的模拟环境。
- linux x86主机上如何运行一个兼容Armv8指令集的模拟环境。
- 通过华为云ECS KC1系列实例,一键式获取一个原生鲲鹏开发者环境。
windows x86桌面上如何运行一个兼容Armv8指令集的模拟环境。
我们首先需要聊一个软件QEMU。QEMU本身是一款用来完成硬件虚拟化及虚拟机托管的开源软件,他通过动态的二进制转换,模拟CPU,也可以通过KVM一起使用使得虚拟机的性能接近真实的计算机速度。
在主流的功能(虚拟机托管)之外,他还有一个重要的功能可以为user-level的进程执行CPU仿真,进而允许了为一种架构编译的程序在另外一种架构上面运行。
我们今天先讲讲,如何在windows上创建一台模拟Armv8指令集的虚拟机,虚拟机使用Ubuntu18.04作为操作系统。
准备工作
- QEMU on win64软件包。官网地址,软件包下载页,我们根据如下路径选择其中较新的一个发布件:qemu-w64-setup-20190218.exe
- Ubuntu18.04 for Arm64的操作系统引导光盘镜像文件:官网地址,根据如下路径找到文件:releases/18.04/release/ubuntu-18.04.2-server-arm64.iso。当然操作系统大家可以换成自己想要的,理论上所有支持Armv8指令集的操作系统都可以运行。如果你想使用的是一款虚拟机镜像则不需要参考详细步骤中通过光盘引导安装这个章节,直接使用qemu-img程序,将虚拟机镜像直接转制成磁盘文件,就可以直接启动虚拟机了,我会在下面的楼层里补充操作方法。
- Arm64的BIOS bin文件,qemu-efi-aarch64_0~20180205.c0d9813c-2_all.deb。软件包下载地址。
- 本机安装7-zip或具备相同功能的解压缩软件。
- 由于QEMU是个纯命令行工具,至少知道目前,还没有已知的很理想的GUI工具,因此你需要在实际操作前先了解QEMU的使用方式。
- 预留100G左右本地磁盘空间、
一些假设
- 虚拟机的磁盘文件所在的目录为d:qemuvm est_kunpeng,并且预先创建好该目录
- 虚拟机的BIOS bin所在的目录为d:qemuios,并且预先创建好该目录。
- ubuntu操作系统引导光盘绝对路径为d:downloadubuntu-18.04.2-server-arm64.iso
- qemu软件安装路径为c:qemu
详细步骤
- 安装qemu软件。纯gui操作,step by step操作,不再详述。
2. 解压bios bin文件。
使用7-zip或具备相同功能的解压缩工具,解压qemu-efi-aarch64_0~20180205.c0d9813c-2_all.deb软件包,提取其中的QEMU_EFI.fd至目录d:qemuios
3. 使用windows cmd创建虚拟机的系统盘,40G
输入以下命令:
c:qemuqemu-img.exe create D:qemuvm est_kunpenghdd01.img 40G
4. 执行命令直接通过光盘引导启动虚拟机
输入以下命令:
参数的含义大致如下:
qemu-system-aarch64.exe |
二进制文件,提供模拟aarch64架构的虚拟机进程 |
-m 2048 |
分配2048MB内存 |
-M virt |
模拟成什么服务器,我们一般选择virt就可以了,他会自动选择最高版本的virt |
-cpu cortex-a72 |
模拟成什么CPU,其中cortex-a53a57a72都是Armv8指令集的 |
-smp 2,cores=2,threads=1,sockets=1 |
2个vCPU,这2个vCPU由qemu模拟出的一个插槽(socket)中的2个核心,每个核心支持一个超线程构成。 |
-bios xxx |
指定bios bin所在的路径 |
-device xxx |
添加一个设备,参数可重复 |
-drive |
添加一个驱动器,参数可重复 |
-net |
添加网络设备 |
这时候,一个带图形界面的VM就启动起来了,不过画面中什么都没有。当然还有很多其他高级参数,大家可以去qemu官方网站学习。
- 安装Ubuntu操作系统
先选择串口,安装界面就出来了,后面按照Ubuntu官方指引进行安装,并等待安装完成。
- 系统再次启动
下次启动虚拟机的时候,并不能再次使用前面的命令,否则又会使用光盘引导安装。我们需要将CDROM相关的参数移除。
重新启动后可以看到这样的界面
那么到这里,我们在windows上就成功搭建出一个鲲鹏开发者环境了。
Linux 相关的OS上运行一个兼容Armv8指令集的模拟环境。
本质上和前文的windows桌面平台没有太大差别,我这里把差别列举一下。
- QEMU on Linux的安装方法:
- 通常Linux主机没有桌面,执行命令的时候可以加上-nographic参数使用纯文本的操作系统安装界面。也可以使用带桌面的Linux,就和Windows的方法没有区别了。
- 网络的配置在Linux上有很多小技巧,可以尝试通过社区学习。
目前鲲鹏弹性云服务器KC1,已经正式转商,有兴趣的小伙伴,可以前往华为云官网ECS产品主页进行购买。目前已经提供了4类操作系统供大家使用,均支持lazyloading。
通过互联网使用的小伙伴们,绑定EIP就可以正常访问了,同时还可以享受mirrors.huaweicloud.com中众多开源社区镜像站的加速能力,急速安装常用软件。
看,眨眼间我就拥有一台原生使用华为鲲鹏920的云服务器了。
作者:太一