https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md#section6389714142011

1. 拉取代码组件

  1. repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
  2. repo sync -c
  3. repo forall -c 'git lfs pull'
  4. repo start ygy --all
  1. repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify; repo sync -c -j16; repo forall -c 'git lfs pull'; repo start ygy --all

1.1 cherry-pick

image.png
复制,然后后面加上cherry-pick指令

  1. git fetch git@gitee.com:openharmony/graphic_standard.git pull/581/head:pr_581
  2. git cherry-pick FETCH_HEAD

2. 编译

  1. bash build/prebuilts_download.sh
  2. ./build.sh --product-name rk3568 --ccache
  1. bash build/prebuilts_download.sh; ./build.sh --product-name rk3568 --ccache
  1. repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify; repo sync -c; repo forall -c 'git lfs pull'; repo start ygy --all; bash build/prebuilts_download.sh; ./build.sh --product-name rk3568 --ccache

3. 烧录

3.1 rk3568板子环境配置

官网位置
https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97
可参见官方指导pdf,相应文件已下载至此,自取
https://welink.huaweicloud.com/km/#/medium/cms/blogs/715382809103941632

3.1.1 补充细节

  • 板子只需要连接蓝色USB线

    3.2 单个库的烧录

    ```powershell hdc wait-for-device shell mount -o remount,rw /

hdc file send \wsl$\Ubuntu-20.04\home\L2\out\rk3568\graphic\graphic_standard\librender_service_client.z.so /system/lib

hdc shell chmod 777 /system/lib/librender_service_client.z.so

hdc shell hilog -w start

pause hdc shell reboot

  1. <a name="sDUKF"></a>
  2. ## 3.3 log查看
  3. ```powershell
  4. hdc shell
  5. hilog | grep render

4. 合入修改

4.1 fork项目

在主线仓点击Forked
image.png

4.1.1 下载单仓

此小节按需执行

在fork仓复制
image.png

  1. git clone 此链接

4.2 签署DCO声明

gitee账号主邮箱、gitee账号提交邮箱、本地signedoff邮箱,均需要为@huawei.com
后续提交到gitee上后会自动进行dco校验,届时有签署链接
image.png

4.3 创建分支

repo start [本地分支名] —all

  1. repo start ygy --all

4.4 创建commit

git commit 时需要加上-s,以通过DCO校验

  1. git add .
  2. git commit -sm ""

4.5 提交修改方法1

挂载远端个人fork仓
git remote add [远端分支名] [https://gitee.com/[](https://gitee.com/[)个人域名]/[仓库名]

  1. git remote add ygy https://gitee.com/muppets/graphic_standard

检查远端仓库

  1. git remote -v

提交修改
git push [远端分支名] HEAD:master

  1. git push ygy HEAD:master

4.6 提交修改方法2

直接git clone个人fork单仓,在单仓上修改
之后git push即可

4.7 提交PR

PR:Pull Request
image.png
选择分支 提交PR
image.png

4.8 多PR关联同时合入

4.8.1 创建issue

在任意仓库下创建issue
https://gitee.com/openharmony/ace_ace_engine/issues/I4QOYZ?from=project-issue
复制任务链接
image.png

4.8.2 关联issue

标题随便写
说明里面把刚刚复制的链接粘贴进去
https://gitee.com/openharmony/ace_ace_engine/pulls/550
https://gitee.com/openharmony/third_party_flutter/pulls/39
image.png

4.9 构建

在任一PR界面评论

  1. start build

4.10 合入

构建完成各项检查项pass后找审查人加分
然后

  1. submit

5. 解门禁问题

5.1 PR评论命令支持

https://gitee.com/openharmony/community/blob/master/zh/infrastructure/build_command.md
image.png

5.2 格式化检查format_check

image.png

使用gn工具提供的格式化功能,格式化.gn文件

  1. gn format [文件名].gn
  2. gn format BUILD.gn
  3. 亦可使用项目内提供的gn进行格式化
  4. /home/L2/prebuilts/build-tools/linux-x86/bin/gn format BUILD.gn

6. FAQ

6.1 repo sync 失败其一 :

|— contains uncommitted changes

有时预编译过后repo sync可能存在此类bug:
image.png
解决方法:

  1. cd developtools/ace-ets2bundle/
  2. git checkout .
  3. cd ../..
  4. repo sync -c

到对应仓中重置该仓到主线上,再重新同步

6.2 Vmmem占用内存过高

电脑很卡,打开任务管理器发现是Vmmem
image.png
Vmmem实际上是wsl2,所以可以给它限制一下内存:
进入用户文件夹

  1. %UserProfile%

新建文件 .wslconfig

  1. [wsl2]
  2. memory=16GB # 限制最大使用内存
  3. swap=2G # 限制最大使用虚拟内存
  4. processors=8 # 限制最大使用cpu个数
  5. localhostForwarding=true

打开cmd,关闭wsl

  1. wsl --shutdown

重新打开ubuntu子系统即可

6.3 编译报错其一

|— 不给报错信息直接挂掉

image.png
wsl2内存利用比较蠢,可能是内存不够了导致编译挂掉
解决方法:

6.3.1 检查wsl2内存限制

嗯,删掉 6.2 Vmmem占用内存过高 中的配置文件并重启ubuntu子系统可能就可以了

6.3.2 减少并行数

6.3.3 多编译几次

每次都可能会推进一点,多编几次就好了……