#跟着小白一起学鸿蒙# [一]运行OpenHarmony

Posted 开源基础软件社区官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#跟着小白一起学鸿蒙# [一]运行OpenHarmony相关的知识,希望对你有一定的参考价值。

作者:王石,胡瑞涛

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. 安装必要的库和工具

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

[^注1]: 因为代码过长,在安装时可能会出现不知道哪部分没安装好的问题 。解决方案:拆分!每段记得加 sudo apt-get install

2.2 设置python版本

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

  1. 查看python 3.8的位置:

    which python3.8
  2. 将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的位置

    [^注2]: 因为前期库和工具搭建不全,导致报错,bug提示:python 须设置为整数版本。解决方法:sudo ln -s /usr/bin/python3 /usr/bin/python

3. 修改shell环境

将Ubuntu Shell环境修改为bash。

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

    ls -l /bin/sh

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

    sudo dpkg-reconfigure dash

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

4.1 安装SSH服务并获取远程访问的IP地址
  1. 在Ubuntu系统中,打开终端工具,执行如下命令[^注3]安装SSH服务。

    sudo apt-get install openssh-server

    [^注3]:如果执行该命令失败,提示openssh-server和openssh-client依赖版本不同,请根据CLI界面提示信息,安装openssh-client相应版本后(例如:sudo apt-get install openssh-client=1:8.2p1-4),再重新执行该命令安装openssh-server。

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

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

    ifconfig
4.2 安装Remote SSH
4.3 远程连接Ubuntu环境

5. 获取源码

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

    更新软件源:

    sudo apt-get update

    通过以下命令安装:

    
    sudo apt-get install git git-lfs
  2. 配置用户信息。

    git config --global user.name "yourname"
    git config --global user.email "your-email-address"
    git config --global credential.helper store
  3. 执行如下命令安装码云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
  4. 将repo添加到环境变量。

    vim ~/.bashrc               # 编辑环境变量
    export PATH=~/bin:$PATH     # 在环境变量的最后添加一行repo路径信息
    source ~/.bashrc            # 应用环境变量
  5. 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

    [^注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. 执行prebuilts

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

    bash build/prebuilts_download.sh

6. 安装编译工具

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

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

    pip3 install --user build/lite
  2. 设置环境变量

    vim ~/.bashrc

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

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

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

    source ~/.bashrc

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

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
  1. 编译3568镜像,生成的镜像文件在

    ./build.sh --product-name rk3568  

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

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


烧录

项目分区配置文件

  1. 烧录前准备

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

  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]:

    [^注6]:如果下载的固件是5月9号主干(master)分支上午11点之后的版本。则需要导入镜像包中的config.cfg配置才能选择烧写该文件(在烧录3.2版本时同理)。 导入新配置后,misc,sys-prod,chip-prod三个分区不存在镜像(预留位置),烧写时不能勾选。

  4. master之前的版本或者3.1 Release版本

    旧版本我们只需要按下面配置就行

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

  5. 确认开发板是否进入烧写模式

    ① 如果界面显示"发现一个 LOADER 设备", 说明开发板进入 Loader 模式等待烧写固件。

    ② 如果界面显示"发现一个 MASKROM 设备", 说明开发板进入 Maskrom 模式等待烧写固 件。

    ③ 如果界面显示"没有发现设备", 说明开发板没有进入烧写模式, 请按以下操作步骤让开发板进入烧写模式

    a. 按住VOL-/RECOVERY 按键和 RESET 按钮不松开, 烧录工具此时显示“没有发现设备” ;

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

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

说明:

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

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

Log 目录下的文件


设备连接和IP配置

1. 连接

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

2.共享网络

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

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

[^注7]:hdc_std list targets可查看设备表;ps aux | grep hdc可查看运行中的hdc,若有其他hdc占用了,可以使用kill -9 pid 或hdc_std start -r重启。

5. 设置开发板ip地址

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

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

#ping 192.168.137.1

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

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

8. 启动hdc服务

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

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

9. 绑定开发板调试串口

hdc_std -s 127.0.0.1:8710 tconn 192.168.137.105:10178


编译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


运行测试集群

1. 确保正常连接

hdc_std -s 127.0.0.1:8710 tconn 192.168.137.105:10178

2. 启动xdevice

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

python -m xdevice

3.进行测试

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

run -l  ActsZlibTest

4. 结果:


一些可能出现的bug


总结

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

更多原创内容请关注:深开鸿技术团队

入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。

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

51CTO 开源基础软件社区

https://ost.51cto.com/#bkwz

以上是关于#跟着小白一起学鸿蒙# [一]运行OpenHarmony的主要内容,如果未能解决你的问题,请参考以下文章

#跟着小白一起学鸿蒙# [番外]一起学做FlappyBird

#冲刺创作新星# #跟着小白一起学鸿蒙# [十二]简单Http客户端

#盲盒+码# #跟着小白一起学鸿蒙# [番外]一起学做Tetris(下)

#冲刺创作新星# #跟着小白一起学鸿蒙# [十三]简析蓝牙协议栈

#盲盒+码##跟着小白一起学鸿蒙# [番外三]一起学做Tetris(上)

#冲刺创作新星# #跟着小白一起学鸿蒙# [七] 写个NAPI子系统