#跟着小白一起学鸿蒙# [一]运行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版本。
-
查看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的位置
[^注2]: 因为前期库和工具搭建不全,导致报错,bug提示:python 须设置为整数版本。解决方法:
sudo ln -s /usr/bin/python3 /usr/bin/python
3. 修改shell环境
将Ubuntu Shell环境修改为bash。
-
执行如下命令,确认输出结果为bash。如果输出结果不是bash,请根据步骤2,将Ubuntu shell修改为bash。
ls -l /bin/sh
-
打开终端工具,执行如下命令,输入密码,然后选择No,将Ubuntu shell由dash修改为bash。
sudo dpkg-reconfigure dash
4. 配置Windows远程访问Ubuntu环境
4.1 安装SSH服务并获取远程访问的IP地址
-
在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。
-
执行如下命令,启动SSH服务。
sudo systemctl start ssh
-
执行如下命令,获取当前用户的IP地址,用于Windows系统远程访问Ubuntu环境。
ifconfig
4.2 安装Remote SSH
4.3 远程连接Ubuntu环境
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
[^注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 这个文件夹 -
执行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
-
在源码目录执行"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
-
编译3568镜像,生成的镜像文件在
./build.sh --product-name rk3568
-
编译开源鸿蒙sdk,生成工具文件在 out/sdk/ohos-sdk文件夹里,有两个子文件夹(windows | linux),可以把windows文件夹拷贝到windows主机,然后可以在toolchains里看到hdc_std.exe
./build.sh --product-name ohos-sdk
烧录
项目分区配置文件
-
烧录前准备
按照图片提示连接电源线,usb线,网线。如下图左边蓝色为usb线,直接连接电脑;下方中间位置黑色线为网络线,通过usb转网口连接电脑(这样电脑上会有两个网络适配器;下方右下角为电源线;
-
下载烧录工具
烧录工具下载链接:https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/烧写工具及指南
-
拷贝分区配置文件
在moba上完成分区配置文件,镜像文件目录是
/out/rk3568/packages/phone/images/
(开源鸿蒙的工具文件目录oh32/out/sdk/ohos-sdk/windows
)的拷贝下载。 -
打开烧写工具
双击 windows\\RKDevTool.exe 打开烧写工具, 如图所示, 默认是 Maskrom 模式[^注6]:
[^注6]:如果下载的固件是5月9号主干(master)分支上午11点之后的版本。则需要导入镜像包中的config.cfg配置才能选择烧写该文件(在烧录3.2版本时同理)。 导入新配置后,misc,sys-prod,chip-prod三个分区不存在镜像(预留位置),烧写时不能勾选。
-
master之前的版本或者3.1 Release版本
旧版本我们只需要按下面配置就行
双击后面的白色按钮,勾选需要烧写的固件
-
确认开发板是否进入烧写模式
① 如果界面显示"发现一个 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开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
以上是关于#跟着小白一起学鸿蒙# [一]运行OpenHarmony的主要内容,如果未能解决你的问题,请参考以下文章
#跟着小白一起学鸿蒙# [番外]一起学做FlappyBird
#冲刺创作新星# #跟着小白一起学鸿蒙# [十二]简单Http客户端
#盲盒+码# #跟着小白一起学鸿蒙# [番外]一起学做Tetris(下)
#冲刺创作新星# #跟着小白一起学鸿蒙# [十三]简析蓝牙协议栈