OpenHarmony开发者论坛

标题: 编译烧写OpenHarmony系统 [打印本页]

作者: xhzai    时间: 2024-8-21 19:32
标题: 编译烧写OpenHarmony系统
[md]## 首先签署协议和规范

[参考文档](https://gitee.com/openharmony/do ... 8%B4%A1%E7%8C%AE.md)

## 其次准备开发板和Ubuntu环境

(笔者这里使用的是RK3568和云服务器,可向官方申请)

* [相干资料下载](https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200)
* [合作计划](https://developer.harmonyos.com/deveco-developer-suite/)
* [支持的开发板](https://gitee.com/openharmony/do ... rd-on-the-master.md)

![img_11.png](https://forums-obs.openharmony.c ... r7uvyhvv6kh66vp.png "img_11.png")

## 安装Ubuntu系统工具

apt-get命令安装编译所需的必要的库和工具:
(若不是开发openharmony系统代码非必须)

```
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 libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
```

## 云服务器代码下载和构建

(若不是开发openharmony系统非必须)

### 注册码云SSH公钥:详细可以请参考码云帮助中心。

(注意修改为自己的邮箱)

* 生成: ``ssh-keygen -t ed25519 -C "mang.tsang@huawei.com"``
* 配置: [参考链接](https://gitee.com/profile/sshkeys)
* 测试: ``ssh -T git@gitee.com``

### 配置Ubuntu git客户端用户信息。

``git config --global user.name "MangTsang"``<br>
``git config --global user.email "mang.tsang@huawei.com"``<br>
``git config --global credential.helper store``

### 安装码云repo工具。

```
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo
sudo mv ./repo /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
```

### 代码下载

* 因为openharmony各个子系统采用Gitee独立建仓管理,所以需要使用repo来

```
cd ~/workspace/openharmony
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify --depth=1 // 创建git仓库,无响应则尝试https的git路径
repo sync -c -j 32  //仓库同步,这里可以先cd进入.repo下
repo forall -c 'git lfs pull'  //拉取大文件
build/prebuilts_download.sh // 在根目录执行预构建,下载工具
```

* 至此拿到openharmony的源代码!!!

### 代码构建

根目录下执行构建命令(第一次执行全量构建获得镜像,后续修改部件代码后只需执行部件构建并链接新的动态库)
***全量构建***
``./build.sh --product-name rk3568 --build-target make_all``等待几十分钟
***部件构建***
``./build.sh --product-name rk3568 --build-target accessibility``

![image.png](https://forums-obs.openharmony.c ... h93111n3u83q3lj.png "image.png")

## 烧写镜像

### 镜像获取

* 方法一:从上面的源码编译,在根目录/out/rk3568/packages/phone/images 里拷贝镜像到本地(scp命令)
* 方法二:从每日编译的 Daily 版本中下载对应[镜像](http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist)
  rk3568选择dayu200
  ![img_2.png](https://forums-obs.openharmony.c ... xc5m70mrcgpxw5t.png "img_2.png")
* 方法三:下载 RK3568 官方提供的固件,[下载地址](https://gitee.com/hihope_iot/images)

### 烧写工具下载

[下载链接](https://gitee.com/hihope_iot/doc ... 87%E5%8D%97/windows)
![img.png](https://forums-obs.openharmony.c ... krb0eku09j9vzl9.png "img.png")

### 烧录步骤

1. 安装USB驱动:
   双击下载工具根目录的windows\DriverAssitant\DriverInstall.exe 打开安装程序,点击“驱动安装”按钮:
2. 双击 windows\RKDevTool.exe 打开烧写工具, 如图所示, 默认是 Maskrom 模式:
   ![img_3.png](https://forums-obs.openharmony.c ... a2p6ap55nljuezp.png "img_3.png")
3. 右键导入镜像文件夹中的config配置文件
   ![img_4.png](https://forums-obs.openharmony.c ... 3npfuuwt73kgouk.png "img_4.png")

![img_5.png](https://forums-obs.openharmony.c ... gmz6rffwg9ccffi.png "img_5.png")
4. 根据config文件配置的路径将镜像文件移动到对应的地址
5. 烧写镜像

1. 按住开发板 RECOVERY 按键 和 RESET 按钮不松开, 烧录工具此时显示“没有发现设备”
   ![img_6.png](https://forums-obs.openharmony.c ... w9wqx8taxwlazay.png "img_6.png")
2. 松开 RESET 键, 烧录工具显示“发现一个 LOADER 设备” , 说明此时已经进入烧写模式
   ![img_7.png](https://forums-obs.openharmony.c ... 1404frtgbs5z1nn.png "img_7.png")
3. 执行烧写,等待完成后OpenHarmony系统启动 // 若反复重启则检查下载代码命令是否遗漏重新烧录<br>
   [更多参考](https://gitee.com/hihope_iot/doc ... 6%96%87%E6%A1%A3.md)
   点击头像继续后续模块开发部分!
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5