《云话鲲鹏之大咖来了》第2期:#探索鲲鹏#之“创造一个属于自己的鲲鹏开发者环境

举报
别慌,我只是路过 发表于 2019/12/11 10:00:44 2019/12/11
【摘要】 科技前沿,探寻不怠,以责任、权威和专业, 《云话鲲鹏之大咖来了》将从#初识鲲鹏#、#探索鲲鹏#、#玩转鲲鹏#等不同的维度带领大家更深刻的认识和学习鲲鹏! 话不多说,让我们来看看本期的大咖及他带来的精彩内容吧!

image.png

大家好,鲲鹏论坛《云话鲲鹏之大咖来了》第2期如约与大家见面了哦


科技前沿,探寻不怠,以责任、权威和专业,


《云话鲲鹏之大咖来了》将从#初识鲲鹏#、#探索鲲鹏#、#玩转鲲鹏#等不同的维度带领大家更深刻的认识和学习鲲鹏!


话不多说,让我们来看看本期的大咖及他带来的精彩内容吧!





本期大咖:



image.png



论坛昵称】 太一


大咖称号 华为云鲲鹏解决方案架构师


技能介绍 丰富的鲲鹏软件调研、鲲鹏迁移、鲲鹏开发和云上开发者生态建设经验






本期推荐文章:创造一个属于自己的鲲鹏开发者环境



#关键词#:初识鲲鹏


内容简介本文将从3部分来教大家如何创造鲲鹏开发者环境:如何在windows x86桌面上运行一个兼容Armv8指令集的模拟环境;如何在linux x86主机上运行一个兼容Armv8指令集的模拟环境;通过华为云ECS KC1系列实例,一键式获取一个原生鲲鹏芯片环境。



正文开始



创造一个属于自己的鲲鹏开发者环境




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

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

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

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

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

 

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. ARM64的BIOS 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文件。

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

image.png

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

输入以下命令:

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

image.png

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

输入以下命令:

1
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


参数的含义大致如下:

qemu-system-aarch64.exe

二进制文件,提供模拟aarch64架构的虚拟机进程

-m 2048

分配2048MB内存

-M virt

模拟成什么服务器,我们一般选择virt就可以了,他会自动选择最高版本的virt

-cpu cortex-a72

模拟成什么CPU,其中cortex-a53\a57\a72都是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官方网站学习。


image.png

安装Ubuntu操作系统

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


image.png

image.png

image.png

image.png 

系统再次启动

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

1
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的安装方法:

1
2
3
4
5
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


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

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

 

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


 目前ARM通用性云服务器,已经正式转商,有兴趣的小伙伴,可以前往ECS产品主页进行购买。目前已经提供了4类操作系统供大家使用,均支持lazyloading。


 

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

 

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

image.png


原文链接:创造一个属于自己的鲲鹏开发者环境

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。