> 技术文档 > openharmony5.0.0编译及VMware安装与Ubuntu系统配置说明_openharmmony 5 ubuntu 24.04

openharmony5.0.0编译及VMware安装与Ubuntu系统配置说明_openharmmony 5 ubuntu 24.04

本章主要介绍VMware虚拟机的安装,以VMware workstation 15 Pro v15.1.0为例展示操作系统的安装配置以及OpenHarmony5.0.0操作系统的获取及编译过程。

VMware软件的下载与购买

登陆VMware官网https://www.vmware.com/cn.html下载Workstation Pro并获取产品密匙。VMware是付费软件,需要自行购买,或者可以选择使用试用。

在这里插入图片描述

等待下载完成后双击启动文件启动安装程序。

VMware软件的安装

双击启动程序进入安装向导,点击下一步。

在这里插入图片描述

勾选“我接受许可协议中的条款”,点击“下一步”。

在这里插入图片描述

修改安装位置,装到自己电脑安装软件的分区,点击“下一步”。

在这里插入图片描述

取消勾选,点击下一步

在这里插入图片描述

​ 勾选添加快捷方式,点击“下一步”。

在这里插入图片描述

点击“安装”。

在这里插入图片描述

等待安装完成。

在这里插入图片描述

点击完成后可进行试用。若用户需要长期使用,需要到官方购买,填写许可证(或者想其他办法)。

在这里插入图片描述

创建ubuntu虚拟机

打开VMware软件,点击[文件]/[新建虚拟机]。进入以下界面:

在这里插入图片描述

选择自定义,点击下一步。

在这里插入图片描述

选择对应VMware版本的兼容性,版本可在帮助->关于VMware Workstation中查看,点击下一步。

在这里插入图片描述

选择稍后安装操作系统,点击下一步。

在这里插入图片描述

保持默认,下一步。

在这里插入图片描述

修改自己的虚拟机名称及安装位置,点击下一步。

在这里插入图片描述

按照实际情况设置处理器数量。

在这里插入图片描述

同样按照实际情况设置内存大小,建议使用16G

在这里插入图片描述

设置网络类型,默认为NAT模式然后下一步。后面的步骤保持默认值,直到指定磁盘容量步骤。

在这里插入图片描述

IO控制器类型这里默认选择LSI就可以。

在这里插入图片描述

这里同样是默认选择SCSI。

在这里插入图片描述

这里选择创建新的虚拟磁盘。

在这里插入图片描述

设置磁盘大小为200G,并选择磁盘的存在形式,然后点击下一步。

在这里插入图片描述

指定磁盘文件,这里默认即可。

在这里插入图片描述

默认点击完成即可。

在这里插入图片描述

至此,虚拟机创建完成。

下一小节中我们介绍Ubuntu系统在虚拟机中的安装,其在真机中的安装方法与虚拟机类似。这里我们介绍在虚拟机中安装Ubuntu系统的方法。

系统安装

上一节,我们已经创建了一个虚拟机,但并没有安装操作系统,所以虚拟机还是无法启动,接下来我们就是要在刚刚新建的这个虚拟机中安装Ubuntu操作系统。

步骤1:首先去Ubuntu官网获取Ubuntu20.04 64位镜像,下载地址为:

https://old-releases.ubuntu.com/releases/20.04.3/

安装的Ubuntu版本是20.04的,之前在20.04上编译验证过的,但是后期我安装的22版本也可以的,大家看各自情况吧。不同的Ubuntu系统版本在进行这些操作可能会有略微的差别。

下载“ubuntu-20.04.3-desktop-amd64.iso”这个版本。

在这里插入图片描述

由于是国外的源,下载过程不稳定,而且很慢,可以直接找百度网盘的资源下载。下载镜像后就可以进行系统安装操作。

右击刚创建完成的Ubuntu64位 在弹出菜单中选择设置:

在这里插入图片描述

弹出“虚拟机设置”菜单。

在这里插入图片描述

点击CD/DVD(SATA),选择使用ISO映像文件,浏览选择前面下载的Ubuntu镜像,然后确定。

在这里插入图片描述

设置好镜像后,保证网络可用,然后开启虚拟机,进行Ubuntu镜像的安装。

在这里插入图片描述

开启虚拟机后,等待出现安装界面如下 :

在这里插入图片描述

如图左侧选择语言后,点击“Install Ubuntu”后弹出选择语言界面。Ubuntu默认语言是英文的,当然,也可以选择中文,默认选择的语言在后期也是可以重新设置的,选择完成后continue。

在这里插入图片描述

接下来,默认选择continue继续安装,安装过程会很慢,然后点击“continue”:

在这里插入图片描述

接下来,默认选择continue继续安装,安装过程会很慢,然后continue。

在这里插入图片描述

在这里插入图片描述

接下来选择时区,这里点击上海时区或输入Shanghai即可(不同时区根据实际情况选择即可),点击继续。

最后设置用户名和密码,选择自动登录或账号密码登录,点击continue就会自动安装。

在这里插入图片描述

网络不好可以Skip跳过,不影响安装。

在这里插入图片描述

安装完成后显示如下图,点击“Restart Now”重启(或者点击“重新启动客户机”):

在这里插入图片描述

在这里插入图片描述

重启完成登录后系统界面如下图:

在这里插入图片描述

以上,ubuntu系统安装完成。

Ubuntu的基本配置

安装好Ubuntu20.04操作系统后,要进行一些配置。

VMware Tools安装:

接下来安装VMware Tools,如果不安装该工具,在Windows主机和虚拟机之间无法使用复制粘贴、文件拖拽。首先点击VMware 导航栏上的“虚拟机”,然后在下拉框中点击“安装VMware Tools”。

在这里插入图片描述

完成后进入Ubuntu,桌面会出现VMware Tools的光盘,点击进入其中。

在这里插入图片描述

双击VMwareTools图标,进入后看到一个压缩文件VMwareTools-10.3.10-12406962.tar.gz(不同的虚拟机版本可能会不同)

在这里插入图片描述

复制文件到主目录下面(即home 个人用户名的目录下):

在这里插入图片描述

在这里插入图片描述

按键盘【Ctrl+Alt+T】调出终端命令界面,使用tar命令对VMwareTools安装包解压(使用sudo命令会提示输入密码,根据提示直接输入密码回车即可,Linux系统密码输入无回显,确保输入的密码正确后按回车确认即可):

zcc@ubuntu:~$ sudo tar -xvf VMwareTools-10.3.10-12406962.tar.gz [sudo] password for zcc:

执行完解压命令后,使用ls查看,会出现一个vmware-tools-distrib的文件目录, 进入到该目录

zcc@ubuntu:~$ ls Desktop examples.desktop nfs snap tftp VMwareTools-10.3.10-12406962.tar.gz vmware-tools-distrib work zcc@ubuntu:~$ cd vmware-tools-distrib/ //使用 cd 命令进入该目录 zcc@ubuntu:~/vmware-tools-distrib$ ls //查看该目录下的文件 bin caf doc etc FILES INSTALL installer lib vgauth vmware-install.pl 

在当前目录下,输入sudo ./vmware-install.pl,进行安装,回车后输入密码,然后就开始安装,遇到[yes]/[no]就输入yes,其他一律回车默认安装就可以。

zcc@ubuntu:~/vmware-tools-distrib$ sudo ./vmware-install.pl [sudo] password for zcc: //输入zcc账户的密码,无回显,无法看到输入内容

安装过程信息较长,此处省略

open-vm-tools packages are available from the OS vendor and VMware recommends using open-vm-tools packages. See http://kb.vmware.com/kb/2073803 for more information.Do you still want to proceed with this installation? [no] yes//输入yes... ...

VMware tools工具完成后,可以实现Windows和Ubuntu之间的文件复制粘贴,虚拟机自适应全显等功能。如果虚拟机不能够全屏显示,可以通过点击查看,选择自动调整大小,点击自动适应客户机,即可实现虚拟的全屏问题,VMware tools安装成功。

在这里插入图片描述

Ø 基本设置

在下图位置进行大部分的系统设置。Ubuntu上很多设置的需求都可以在这里完成。

在这里插入图片描述

Ubuntu的网络设置

NAT模式

在使用网络前,先确保我们的虚拟机能连接互联网,打开虚拟机设置,网络适配器中的网络桥接模式改为“NAT模式”:

在这里插入图片描述

在虚拟机中,VMware虚拟网卡设置为NAT模式时,Ubuntu环境中网络设置为动态IP即可。在这种模式下虚拟NAT设备和主机网卡相连通。这是我们虚拟机上外网最常用的方式。

在这里插入图片描述

在这里插入图片描述

网络设置为动态ip。

在这里插入图片描述

桥接的连接方式

如果在使用TFTP,SFTP等服务器时则需要设置虚拟机的网络联系方式为桥接方式。VMware虚拟网卡设置为桥接模式时,主机网卡和虚拟机网卡通过虚拟网桥进行通信,需要将Ubuntu的IP与主机IP设置在同一个网段。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

设置静态ip,此时Ubuntu的IP与主机IP需设置在同一个网段。

在这里插入图片描述

注意:网络设置部分涉及到的IP以及DNS请按照用户自身的实际环境来设置,手册为举例说明。

U盘的加载

打开虚拟机设置,USB控制器,在兼容性里面选择USB3.0,然后确定。如下图,因为目前大多数电脑都支持USB3.0的接口,如果不设置,当我们插入USB3.0接口,是不能连接到虚拟机的。如下图:

在这里插入图片描述

虚拟机启动后,插入U盘,虚拟机右下角会多出一个类似“U盘”的图标,右击–>连接即可,然后就可以在文件系统看到多一个目录,说明U盘加载成功,如图:

在这里插入图片描述

虚拟机基本库安装

在进行开发之前,还需要一些其他的必要库,我们使用以下命令逐一安装,安装前需保证网络可正常使用,能上外网:

zcc@ubuntu:~$ sudo apt-get update //更新下载源信息zcc@ubuntu:~$ sudo apt-get install build-essential //提供编译程序必须软件包的列表信息zcc@ubuntu:~$ sudo apt-get install libncurses*  //用于生成基于文本的用户界面zcc@ubuntu:~$ sudo apt-get install lzop  //基于Lzo库的压缩解压工具zcc@ubuntu:~$ sudo apt-get install net-tools  //网络配置工具
编译RK3568 Openharmony源码必要库安装
zcc@ubuntu:~$ sudo apt-get update  //更新apt-get下载源zcc@ubuntu:~$ sudo apt-get install openssh-server vim git fakeroot  //必备工具包的安装zcc@ubuntu:~$ sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler python-pip libncurses5-devzcc@ubuntu:~$ sudo apt-get install libgmp-dev libmpc-dev libicu-dev bsdmainutils

以上库文件是自行搭建RK3568编译环境时,需要下载的库文件。

搭建RK3568 Openharmony开发环境的方法如下,如果在开发环境搭建的过程中遇到问题,可参考源码中鸿蒙官方提供的docs目录中zh-cn/device-dev/subsystems/subsys-build-all.md文件的搭建环境部分。

使用以下命令安装环境。

zcc@ubuntu:~$ sudo apt-get update -y zcc@ubuntu:~$ sudo apt-get install -y # 如果是ubuntu20.04系统请直接安装python3.9,如果是ubuntu18.04请改为安装python3.8,如果是ubuntu22.04系统可以安装python3.10zcc@ubuntu:~$ sudo apt-get install -y python3.10zcc@ubuntu:~$ sudo apt-get install -y apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs gnupg gnutls-bin gperf libffi-dev libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libxml2-dev libdwarf-dev zcc@ubuntu:~$ sudo apt-get install -y grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales zcc@ubuntu:~$ sudo apt-get install -y libxinerama-dev libxcursor-dev libxrandr-dev libxi-devzcc@ubuntu:~$ sudo apt-get install llvm
增大交换分区

请确认当前系统 swap 分区大小,若 swap 分区不足会造成编译源码失败,推荐 16G。开发环境内存建议调整到 16G。

1、 查看 swap 分区情况:

zcc@ubuntu22:~$ cat /proc/swaps

飞凌提供的虚拟机默认已经配置好 swap 分区,如果您使用其它虚拟机,可通过创建 swap 文件的方式来增加 swap 分区大小:

zcc@ubuntu22:~$ sudo swapoff /swapfilezcc@ubuntu22:~$ sudo fallocate -l 12G /swapfilezcc@ubuntu22:~$ sudo chmod 600 /swapfilezcc@ubuntu22:~$ sudo mkswap /swapfilezcc@ubuntu22:~$ sudo swapon /swapfilezcc@ubuntu22:~$ sudo vim /etc/fstab

在 /etc/fstab 文件最后添加如下内容:

zcc@ubuntu:~$ /swapfile none swap sw 0 0

2、建议调整开发环境内存至 16G,内存低可能导致编译不通过。

在这里插入图片描述

官方源码获取

$ repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v5.0.0-Release --no-repo-verify #初始化$ repo sync -c #仓库同步$ repo forall -c \'git lfs pull\' #代码批量同步

应用示例:

  • 初始化

在这里插入图片描述

  • 仓库同步

在这里插入图片描述

  • 代码批量同步

在这里插入图片描述

代码编译

包含两种方式一种基于IDE的,一种为命令行模式的,IDE模式的参考官方文档没有成功,具体问题参考下文,不影响使用就不管了,以下为命令行模式的。

OpenHarmony支持hb和build.sh两种编译方式

build.sh编译

将Ubuntu Shell环境修改为bash。

  1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据b,将Ubuntu shell修改为bash。

    ls -l /bin/sh

    openharmony5.0.0编译及VMware安装与Ubuntu系统配置说明_openharmmony 5 ubuntu 24.04

    b.打开终端工具,执行如下命令,输入密码,然后选择No,将Ubuntu shell由dash修改为bash。

    sudo dpkg-reconfigure dash

    openharmony5.0.0编译及VMware安装与Ubuntu系统配置说明_openharmmony 5 ubuntu 24.04

  • 首先进行一些库的下载
bash build/prebuilts_download.sh

检查下载结果,下载完成后,log中有如下显示:在这里插入图片描述

Release版本 :

./build.sh --product-name rk3568 --ccache

rk3568为产品名称,需根据大家环境配置例如Hi3516DV300等

检查编译结果。编译完成后,log中显示如下:

在这里插入图片描述

编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。

Debug版本 :

./build.sh --product-name {product_name} --gn-args is_debug=true

注意: Debug全版本因镜像大小限制,全量编译可能无法烧录,建议单模块编译Debug二进制。使用如下命令单独编译模块:

 ./build.sh --product-name {product_name} --gn-args is_debug=true --build-target {target_name}
hb编译
  • 设置编译路径。

    hb set
  • 选择当前路径。

    .
  • 在hihope下选择rk3568并回车。

    💙说明:

    同样的开发板在适配不同的场景时,要采用的编译形态不同(即此处要选择的product不同),请参考编译形态整体说明。

    图1 RK3568编译设置图例

  • 默认情况下,编译的是32位系统,若不需要调整,则跳过此步骤。
    如需编译为64位系统,请执行如下命令:

    hb build --target-cpu arm64
  • 执行编译。

    💙说明:

    • 单独编译一个部件(例如hello),可使用“hb build -T 目标名称”进行编译。
    • 增量编译整个产品,可使用“hb build”进行编译。
    • 完整编译整个产品,可使用“hb build -f”进行编译。

    此处以完整编译整个产品为例进行说明。

    hb build -f
  • 编译结束后,出现“rk3568 build success”字样,则证明构建成功。