https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-standard-running-hi3516-build.md#section6389714142011
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
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
复制,然后后面加上cherry-pick指令
git fetch git@gitee.com:openharmony/graphic_standard.git pull/581/head:pr_581
git cherry-pick FETCH_HEAD
2. 编译
bash build/prebuilts_download.sh
./build.sh --product-name rk3568 --ccache
bash build/prebuilts_download.sh; ./build.sh --product-name rk3568 --ccache
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 补充细节
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
<a name="sDUKF"></a>
## 3.3 log查看
```powershell
hdc shell
hilog | grep render
4. 合入修改
4.1 fork项目
4.1.1 下载单仓
此小节按需执行
在fork仓复制
git clone 此链接
4.2 签署DCO声明
gitee账号主邮箱、gitee账号提交邮箱、本地signedoff邮箱,均需要为@huawei.com
后续提交到gitee上后会自动进行dco校验,届时有签署链接
4.3 创建分支
repo start [本地分支名] —all
repo start ygy --all
4.4 创建commit
git commit 时需要加上-s,以通过DCO校验
git add .
git commit -sm ""
4.5 提交修改方法1
挂载远端个人fork仓
git remote add [远端分支名] [https://gitee.com/[](https://gitee.com/[)个人域名]/[仓库名]
git remote add ygy https://gitee.com/muppets/graphic_standard
检查远端仓库
git remote -v
提交修改
git push [远端分支名] HEAD:master
git push ygy HEAD:master
4.6 提交修改方法2
直接git clone个人fork单仓,在单仓上修改
之后git push即可
4.7 提交PR
4.8 多PR关联同时合入
4.8.1 创建issue
在任意仓库下创建issue
https://gitee.com/openharmony/ace_ace_engine/issues/I4QOYZ?from=project-issue
复制任务链接
4.8.2 关联issue
标题随便写
说明里面把刚刚复制的链接粘贴进去
https://gitee.com/openharmony/ace_ace_engine/pulls/550
https://gitee.com/openharmony/third_party_flutter/pulls/39
4.9 构建
在任一PR界面评论
start build
4.10 合入
构建完成各项检查项pass后找审查人加分
然后
submit
5. 解门禁问题
5.1 PR评论命令支持
https://gitee.com/openharmony/community/blob/master/zh/infrastructure/build_command.md
5.2 格式化检查format_check
使用gn工具提供的格式化功能,格式化.gn文件
gn format [文件名].gn
如
gn format BUILD.gn
亦可使用项目内提供的gn进行格式化
/home/L2/prebuilts/build-tools/linux-x86/bin/gn format BUILD.gn
6. FAQ
6.1 repo sync 失败其一 :
|— contains uncommitted changes
有时预编译过后repo sync可能存在此类bug:
解决方法:
cd developtools/ace-ets2bundle/
git checkout .
cd ../..
repo sync -c
6.2 Vmmem占用内存过高
电脑很卡,打开任务管理器发现是Vmmem
Vmmem实际上是wsl2,所以可以给它限制一下内存:
进入用户文件夹
%UserProfile%
新建文件 .wslconfig
[wsl2]
memory=16GB # 限制最大使用内存
swap=2G # 限制最大使用虚拟内存
processors=8 # 限制最大使用cpu个数
localhostForwarding=true
打开cmd,关闭wsl
wsl --shutdown
6.3 编译报错其一
|— 不给报错信息直接挂掉
wsl2内存利用比较蠢,可能是内存不够了导致编译挂掉
解决方法:
6.3.1 检查wsl2内存限制
嗯,删掉 6.2 Vmmem占用内存过高 中的配置文件并重启ubuntu子系统可能就可以了
6.3.2 减少并行数
6.3.3 多编译几次
每次都可能会推进一点,多编几次就好了……