[鲲鹏主题活动] 【Hello,鲲鹏】第二期:创造一个属于自己的鲲鹏开发者环境

历史上,windows与intel的大联盟共同创造了昵称为“wintel”的庞大帝国,直到现在,业界绝大多数程序员选择的工作平台仍然是windows桌面操作系统。对于大多数行业新技术的接触,也从新技术如何在自己的桌面运行“hello,world”开始。

那么我们今天就从三个段落来讲述如何创造一个属于自己的鲲鹏开发者环境,分别是:

  1. windows x86桌面上如何运行一个兼容ARMv8指令集的模拟环境。

  2. linux x86主机上如何运行一个兼容ARMv8指令集的模拟环境。

  3. 通过华为云ECS RC3/RC6系列实例,一键式获取一个原生鲲鹏芯片环境。

文末附公测链接

 

windows x86桌面上如何运行一个兼容ARMv8指令集的模拟环境。

 

我们首先需要聊一个软件QEMU。QEMU本身是一款用来完成硬件虚拟化及虚拟机托管的开源软件,他通过动态的二进制转换,模拟CPU,也可以通过KVM一起使用使得虚拟机的性能接近真实的计算机速度。

在主流的功能(虚拟机托管)之外,他还有一个重要的功能可以为user-level的进程执行CPU仿真,进而允许了为一种架构编译的程序在另外一种架构上面运行。

 

我们今天先讲讲,如何在windows上创建一台模拟ARMv8指令集的虚拟机,虚拟机使用Ubuntu18.04作为操作系统。

 

准备工作

  1. QEMU on win64软件包。官网地址https://www.qemu.org/download/,软件包下载页https://qemu.weilnetz.de/w64/。我们选择其中较新的一个发布件https://qemu.weilnetz.de/w64/qemu-w64-setup-20190218.exe

  2. Ubuntu18.04 for ARM64的操作系统引导光盘镜像文件http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.2-server-arm64.iso。当然操作系统大家可以换成自己想要的,理论上所有支持ARMv8指令集的操作系统都可以运行。如果你想使用的是一款虚拟机镜像则不需要参考详细步骤中通过光盘引导安装这个章节,直接使用qemu-img程序,将虚拟机镜像直接转制成磁盘文件,就可以直接启动虚拟机了,我会在下面的楼层里补充操作方法。

  3. ARM64BIOS bin文件,qemu-efi-aarch64_0~20180205.c0d9813c-2_all.deb。https://packages.ubuntu.com/bionic/qemu-efi-aarch64

  4. 本机安装7-zip或具备相同功能的解压缩软件。

  5. 由于QEMU是个纯命令行工具,至少知道目前,还没有已知的很理想的GUI工具,因此你需要在实际操作前先了解QEMU的使用方式。

  6. 预留100G左右本地磁盘空间、

 

一些假设

  1. 虚拟机的磁盘文件所在的目录为d:\qemu\vm\test_kunpeng\,并且预先创建好该目录

  2. 虚拟机的BIOS bin所在的目录为d:\qemu\bios,并且预先创建好该目录。

  3. ubuntu操作系统引导光盘绝对路径为d:\download\ubuntu-18.04.2-server-arm64.iso

  4. qemu软件安装路径为c:\qemu

 

详细步骤

  1. 安装qemu软件。纯gui操作step by step操作,不再详述。

    image.png

  2. 解压bios bin文件。

  3. 使用7-zip或具备相同功能的解压缩工具,解压qemu-efi-aarch64_0~20180205.c0d9813c-2_all.deb软件包,提取其中的QEMU_EFI.fd至目录d:\qemu\bios

    image.png

  4. 使用windows cmd创建虚拟机的系统盘,40G

  5. 输入以下命令:

    c:\qemu\qemu-img.exe create D:\qemu\vm\test_kunpeng\hdd01.img 40G

    image.png

  6. 执行命令直接通过光盘引导启动虚拟机

  7. 输入以下命令:

    c:\qemu\qemu-system-aarch64.exe -m 2048 -cpu cortex-a72 -smp 2,cores=2,threads=1,sockets=1 -M virt -bios D:\qemu\bios\QEMU_EFI.fd -net nic,model=pcnet -device VGA -drive if=none,file=d:\download\ubuntu-18.04.2-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=D:\qemu\vm\test_kunpeng\hdd01.img,id=hd0 -device virtio-blk-device,drive=hd0


    参数的含义大致如下:

      截图.PNG

      这时候,一个带图形界面的VM就启动起来了,不过画面中什么都没有。当然还有很多其他高级参数,大家可以去qemu官方网站学习。

      image.png


  8. 安装Ubuntu操作系统

  9. 先选择串口,安装界面就出来了,后面按照Ubuntu官方指引进行安装,并等待安装完成。

    image.png 

    image.png

    image.png

    image.png  

  10. 系统再次启动

  11. 下次启动虚拟机的时候,并不能再次使用前面的命令,否则又会使用光盘引导安装。我们需要将CDROM相关的参数移除。

    c:\qemu\qemu-system-aarch64.exe -m 2048 -cpu cortex-a72 -smp 2 -M virt -bios D:\qemu\bios\QEMU_EFI.fd -device VGA -device virtio-scsi-device -drive if=none,file=D:\qemu\vm\test_kunpeng\hdd01.img,id=hd0 -device virtio-blk-device,drive=hd0


    重新启动后可以看到这样的界面

    image.png

    那么到这里,我们在windows上就成功搭建出一个鲲鹏开发者环境了。


 


 

Linux 相关的OS运行一个兼容ARMv8指令集的模拟环境。

本质上和前文的windows桌面平台没有太大差别,我这里把差别列举一下。

  1. QEMU on Linux的安装方法:

  2. wget https://download.qemu.org/qemu-4.0.0.tar.xz
    tar xvJf qemu-4.0.0.tar.xz
    cd qemu-4.0.0
    ./configure
    make


  3. 通常Linux主机没有桌面,执行命令的时候可以加上-nographic参数使用纯文本的操作系统安装界面。也可以使用带桌面的Linux,就和Windows的方法没有区别了。

  4. 0网络的配置在Linux上有很多小技巧,可以尝试通过社区学习。

 

通过华为云获取原生使用鲲鹏处理器的弹性云服务器(ECS

 目前ARM通用性云服务器,已经登录华为云-北京四区域并上线公测,有兴趣的小伙伴,可以前往北京四申请公测。目前已经提供了4类操作系统供大家使用,均支持lazyloading。

image.png

 

通过互联网使用的小伙伴们,绑定EIP就可以正常访问了,同时还可以享受mirrors.huaweicloud.com中众多开源社区镜像站的加速能力,急速安装常用软件。

 

看,眨眼间我就拥有一台原生使用鲲鹏920芯片的云服务器了。

image.png