跟着小白一起学鸿蒙之运行OpenHarmony

系统 OpenHarmony
本文主要介绍了开源鸿蒙的下载,编译,烧录和测试套件的程序运行。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

graph LR
A[搭建库和工具] -->B(配置远程访问环境)-->M(编译镜像和sdk)-->N(运行测试集群)
x[烧录] -->N(运行测试集群)
N --> C{是否出现bug}
C -->|未出现| D[结果1:passed: 51]
C -->|出现| E[结果2:error 调试bug]

搭建标准系统环境

1、基本环境

  • Windows系统为:Windows11 64位系统。
  • Ubuntu虚拟机:Ubuntu20.04版本,内存推荐16 GB及以上,处理器数量推荐最大,硬盘空间推荐300 GB及以上。
  • 硬件:RK3568(可以是DAYU200)
  • 工具软件:VsCode(代码编辑工具),MobaXterm(远程连接工具)
  • Windows系统和Ubuntu系统的用户名不能包含中文字符。

2、安装必要的库和工具

(1)使用apt-get命令安装后续操作所需的库和工具

sudo apt-get update && sudo apt-get install binutils binutils-dev git git- lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales​[1]

(2)设置python版本

将python 3.8设置为默认python版本。

查看python 3.8的位置:

which python3.8

将python和python3切换为python3.8​[2]​:

sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1    #{python3.8 路径}为上一步查看的python3.8的位置
sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1 #{python3.8 路径}为上一步查看的python3.8的位置

3、修改shell环境

将Ubuntu Shell环境修改为bash。

  1. 执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。
ls -l /bin/sh

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

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

sudo dpkg-reconfigure dash

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

4、配置Windows远程访问Ubuntu环境

(1)安装SSH服务并获取远程访问的IP地址

在Ubuntu系统中,打开终端工具,执行如下命令​[3]​安装SSH服务。

sudo apt-get install openssh-server

执行如下命令,启动SSH服务。

sudo systemctl start ssh

执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。

ifconfig

(2)安装Remote SSH

  1. 打开Windows系统下的Visual Studio Code,点击#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区,在插件市场的搜索输入框中输入“remote-ssh”。
  2. 点击Remote-SSH的Install按钮,安装Remote-SSH。安装成功后,在INSTALLED下可以看到已安装Remote-SSH。

(3)远程连接Ubuntu环境

  1. 打开Windows系统的Visual Studio Code,点击#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区,在REMOTE EXOPLORER页面点击+按钮。
  2. 在弹出的SSH连接命令输入框中输入“sshusername@ip_address”,其中ip_address为要连接的远程计算机的IP地址,username为登录远程计算机的帐号。
  3. 在弹出的输入框中,选择SSH configuration文件,选择默认的第一选项即可。
  4. 在SSH TARGETS中,找到远程计算机,点击#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区![zh-cn_image_0000001194080414],打开远程计算机。
  5. 在弹出的输入框中,选择Linux,选择Continue,输入远程计算机的密码,连接远程计算机 。​[4]

5、获取源码

准备工作

注册码云gitee帐号。注册码云SSH公钥。安装git客户端和git-lfs。(上述工具已在安装必要的库和工具小节安装。如已安装,请忽略)。

更新软件源:

sudo apt-get update

通过以下命令安装:

sudo apt-get install git git-lfs

配置用户信息。

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

执行如下命令安装码云repo工具。

下述命令中的安装路径以"~/bin"为例,请用户自行创建所需目录。

mkdir ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo
chmod a+x ~/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

将repo添加到环境变量。

vim ~/.bashrc               # 编辑环境变量
export PATH=~/bin:$PATH # 在环境变量的最后添加一行repo路径信息
source ~/.bashrc # 应用环境变量

openharmony3.2 beta2的下载命令​[5]​:

mkdir oh32
cd oh32
repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.2-Beta2 --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

执行prebuilts

在源码根目录下执行prebuilts脚本,安装编译器及二进制工具。

bash build/prebuilts_download.sh

6、安装编译工具

hb是OpenHarmony的编译工具,可通过以下步骤在Ubuntu下进行安装。

运行如下命令安装hb并更新至最新版本:

pip3 install --user build/lite

设置环境变量:

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。(vim/vi的命令与操作)。

export PATH=~/.local/bin:$PATH

执行如下命令更新环境变量。

source ~/.bashrc

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

在源码目录执行"hb -h",界面打印以下信息即表示安装成功:

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

  • 可采用以下命令卸载hb:

pip3 uninstall ohos-build

7、装完后运行

  • 查看可执行的版本 ~/oh32$ ls productdefine/common/products/。
  • 显示结果。
hrt@ubuntu:~/oh32/productdefine/common/products$ ls
DAYU.json Hi3516DV300.json ohos-arm64.json ohos-sdk.json rk3568.json

编译3568镜像,生成的镜像文件在。

./build.sh --product-name rk3568

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

编译开源鸿蒙sdk,生成工具文件在 out/sdk/ohos-sdk文件夹里,有两个子文件夹(windows | linux),可以把windows文件夹拷贝到windows主机,然后可以在toolchains里看到hdc_std.exe

./build.sh --product-name ohos-sdk

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

烧录

项目分区配置文件

  1. 烧录前准备。
    按照图片提示连接电源线,usb线,网线。如下图左边蓝色为usb线,直接连接电脑;下方中间位置黑色线为网络线,通过usb转网口连接电脑(这样电脑上会有两个网络适配器;下方右下角为电源线。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

  1. 下载烧录工具。
    烧录工具下载链接:​​​https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/烧写工具及指南​​。
  2. 拷贝分区配置文件。
    在moba上完成分区配置文件,镜像文件目录是/out/rk3568/packages/phone/images/(开源鸿蒙的工具文件目录 oh32/out/sdk/ohos-sdk/windows)的拷贝下载。
  3. 打开烧写工具。
    双击 windows\RKDevTool.exe 打开烧写工具, 如图所示, 默认是 Maskrom 模式​​[6]​:

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

  1. master之前的版本或者3.1 Release版本。
    旧版本我们只需要按下面配置就行。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

双击后面的白色按钮,勾选需要烧写的固件。

  1. 确认开发板是否进入烧写模式。
    ① 如果界面显示"发现一个 LOADER 设备", 说明开发板进入 Loader 模式等待烧写固件。
    ② 如果界面显示"发现一个 MASKROM 设备", 说明开发板进入 Maskrom 模式等待烧写固 件。
    ③ 如果界面显示"没有发现设备", 说明开发板没有进入烧写模式, 请按以下操作步骤让开发板进入烧写模式。
    a. 按住VOL-/RECOVERY 按键和 RESET 按钮不松开, 烧录工具此时显示“没有发现设备” 。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

b. 松开 RESET 键,电脑显示“检测到新的usb设备”,连接到主机后;烧录工具显示“发现一个 LOADER 设备” , 说明此时已经进入烧写模式。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

c. 松开按键, 稍等几秒后点击执行进行烧录。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

说明:

如果烧写成功, 在工具界面右侧会显示下载完成。

如果烧写失败, 在工具界面右侧会用红色的字体显示烧写错误信息, 更多出错信息查看:

Log 目录下的文件。

设备连接和IP配置

1、连接

确保板子的正常连接,电脑显示’‘检测到新的usb设备’',将其连接至电脑主机。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

2、共享网络

开发板通过usb转网口连接电脑后,电脑的网络设置里会有两个网络适配器,以作者电脑为例:以太网2是电脑联网的适配器,以太网3是电脑连接开发板的适配器。为了开发板可以上网,需要设置以太网2共享连接(如下图),允许以太网3通过以太网2连接上网。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

3、查看电脑网络适配器ip

在cmd中进行查询。

C:\Users\kaihong>ipconfig
以太网2 192.168.62.26 (电脑联网的ip地址)
以太网3 192.168.137.1 (电脑和开发连接的ip地址)

4、通过hdc工具登录开发板的shell​[7]

//ohos-sdk编译后生成hdc_std.exe工具文件,需要拷贝到windows环境里
hdc_std.exe在toolchains目录下
F:\windows\toolchains>hdc_std.exe shell

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

5、设置开发板ip地址

//启动网卡eth0
#ifconfig eth0 up
//设置网卡IP地址
#ifconfig eth0 192.168.137.105

6、校验开发板是否和电脑连接

#ping 192.168.137.1

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

7、配置开发板网络调试端口(hdcd网络调试配置)

param set persist.hdc.mode all 
param set persist.hdc.port 10178
//设置完配置需要重新启动开发板
reboot

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

8、启动hdc服务

在Ubuntu的terminal新窗口起服务器(不能关)。

//hdc_std是编译openharmony sdk后生成的工具,
hdc_std -m -s 0.0.0.0:8710

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

9、绑定开发板调试串口

hdc_std -s 127.0.0.1:8710 tconn 192.168.137.105:10178

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

编译OpenHarmony的测试套件

//可以配置环境变量
vi ~/.bashrc
//在文件最后增加
export XTS_SUITENAME=acts 起acts测试集群
//配置环境变量
source ~/.bashrc
//编译测试套件
./build.sh --product-name rk3568 --gn-args build_xts=true --build-target "acts" --gn-args is_standard_system=true

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

运行测试集群

1、 确保正常连接

hdc_std -s 127.0.0.1:8710 tconn 192.168.137.105:10178

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

2、启动xdevice

在~/oh32/out/rk3568/suites/acts目录下。

python -m xdevice

3、进行测试

测试文件ActsZlibTest在~/oh32/out/rk3568/suites/acts/testcases目录下。

run -l  ActsZlibTest

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

4、结果

[2022-08-02 01:47:24,762] [ReporterHelper] [INFO] [generate data report: /home/hrt/oh32/out/rk3568/suites/acts/reports/2022-08-02-01-46-51/summary_report.xml]

[2022-08-02 01:47:24,980] [ResultReporter] [INFO] [Summary result: modules: 1, run modules: 1, total: 51, passed: 51, failed: 0, blocked: 0, ignored: 0, unavailable: 0]

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

一些可能出现的bug

xdevice不全。

  • 问题描述:
~/oh32/out/rk3568/suites/acts$ ./run.sh 
Can not find xdevice package!
  • 解决方案:安装xdevice相关包。
~$ cd oh32/test/xdevice
~/oh32/test/xdevice$ sudo python setup.py install
~/oh32/test/xdevice$ cd extension
~/oh32/test/xdevice/extension$ sudo python setup.py install

服务器进程已存在。

  • 问题描述:other instance already running。

#跟着小白一起学鸿蒙# [一]运行OpenHarmony-开源基础软件社区

  • 解决方法:kill -9 pid 关闭进程。

总结

本文主要介绍了开源鸿蒙的下载,编译,烧录和测试套件的程序运行,下期我们会学习编译和helloworld程序的开发。

  1. 因为代码过长,在安装时可能会出现不知道哪部分没安装好的问题 。解决方案:拆分!每段记得加 sudo apt-get install。 ↩︎
  2. 因为前期库和工具搭建不全,导致报错,bug提示:python 须设置为整数版本。解决方法:sudo ln -s /usr/bin/python3 /usr/bin/python ↩︎
  3. 如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。 ↩︎
  4. 连接成功后,等待在远程计算机.vscode-server文件夹下自动安装插件,安装完成后,根据界面提示在Windows系统下重新加载Visual Studio Code,可以通过moba的session中选择SSH,并输入remote host和specify username完成远程连接,可以在其moba界面下进行Ubuntu的目录查看,文件拷贝,开发编译等操作。 ↩︎
  5. repo bug:fatal cannot make .repo directory permission denied。解决方案 `ls 目录 cd /usr/bin/ ls /usr/bin sudo chmod +x repo cd ls mkdir oh32(一个新文件夹目录) cd 这个文件夹 ↩︎
  6. 如果下载的固件是5月9号主干(master)分支上午11点之后的版本。则需要导入镜像包中的config.cfg配置才能选择烧写该文件(在烧录3.2版本时同理)。 导入新配置后,misc,sys-prod,chip-prod三个分区不存在镜像(预留位置),烧写时不能勾选。 ↩︎
  7. hdc_std list targets可查看设备表;ps aux | grep hdc可查看运行中的hdc,若有其他hdc占用了,可以使用kill -9 pid 或hdc_std start -r重启。 ↩︎

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​​。

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2023-01-03 15:09:10

鸿蒙常用工具

2022-12-06 15:39:16

鸿蒙主干代码

2022-08-29 17:25:19

鸿蒙应用开发

2022-11-29 16:35:02

Tetris鸿蒙

2022-12-02 14:20:09

Tetris鸿蒙

2023-03-30 09:32:27

2022-11-14 17:01:34

游戏开发画布功能

2022-11-28 15:42:39

分布式软总线鸿蒙

2022-12-05 15:02:14

鸿蒙用户鉴权

2022-11-22 15:15:46

Wi-Fi鸿蒙

2022-10-10 14:47:04

蓝牙应用鸿蒙

2023-04-04 09:24:11

鸿蒙HiDumper

2023-03-30 09:19:54

SELinux安全子系统

2023-02-27 16:30:32

鸿蒙开源协议分析

2022-11-24 14:34:41

Hap程序鸿蒙

2023-03-15 16:19:03

BinderIPC工具

2022-10-20 16:40:16

JS应用控制LED鸿蒙

2022-10-09 15:05:50

NAPI框架鸿蒙

2022-09-30 14:08:26

Hap应用鸿蒙

2022-12-09 15:34:38

点赞
收藏

51CTO技术栈公众号