OpenHarmony开发者论坛

标题: 冷钦街老师倾力打造的OpenHarmony南向设备开发平台试运行啦 [打印本页]

作者: 冷钦街    时间: 2023-11-28 00:42
标题: 冷钦街老师倾力打造的OpenHarmony南向设备开发平台试运行啦
[md]# 简介

本平台集成了OpenHarmony代码获取、代码修改、代码提交、代码编译、编译镜像下载几大功能。用户只需要准备开发板以及烧录镜像的工具就可以进行OpenHarmony南向设备开发工作。特别适合学生使用,也方便对OpenHarmony感兴趣的研究人员使用。

下面是详细功能介绍和界面截图。

# 访问冷老师主页

lengqinjie.xyz

![1703939917493.png](https://forums-obs.openharmony.c ... 4i7ja17aiblczkl.png "1703939917493.png")

# 访问开发平台

点击上述主页的**OpenHarmony南向设备开发平台**即可进入开发平台

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

# 登录开发平台

点击登录按钮进入开发平台,对于新用户或磁盘已归还(释放)的用户,会提示申请磁盘

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

* 不预装数据:申请一个空磁盘
* 预装数据:申请一个含数据的磁盘

如果点击**不预装数据,**正常情况下跳转到磁盘申请成功界面

# 申请磁盘成功

![1701095973572.png](https://forums-obs.openharmony.c ... xd0k70k2dirid5j.png "1701095973572.png")
磁盘申请成功后,会显示自动归还时间,当然你可以点击**归还磁盘**主动归还,当前设置的自动归还时间为1周,但如果在到期以前,如果点击**续期**,那么磁盘会继续保留,然后继续保存1周,如果每次到期前都点了续期,那么理论上**永不过期**。

## 预装数据

如果预装数据,则会跳转到选择预装什么数据的界面

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

选择好以后,点击**提交**,也会进入申请磁盘成功的页面

在磁盘申请成功以后,就可以开机了。

# 开机

![1701096197843.png](https://forums-obs.openharmony.c ... v8vhwg11lxzx3vw.png "1701096197843.png")
当拥有了磁盘后,就可以申请一台服务器来使用你的磁盘了,自己设置密码,并点击开机,注意这里描述的2分钟,也就是在点击开机2分钟后,近2分钟时间才能正常访问你的新机器。比如我这里设置了密码123456然后点击开机,进入下一个界面

# 开机成功界面

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

开机成功后,需要等待90~120秒,才能通过VS Code访问机器,

如果关机(点击**关机**或者2小时后**超时关机**),/root/code中的内容不会消失,会保留在申请的磁盘中。

这里有2个续期:前一个为磁盘续期,后一个为服务器续期。

# 打开root目录

![1701096871942.png](https://forums-obs.openharmony.c ... 0ju9yjvhk0r03jo.png "1701096871942.png")
在新打开的VS Code页面,点击上图打开文件夹/root

# 安装VS Code中文界面插件

![17010969660301.png](https://forums-obs.openharmony.c ... iaeume3euuca111.png "1701096966030(1).png")
有些同学喜欢中文界面,那么安装一个中文插件后,按右下角提示信息重启VS Code,然后就是中文菜单了。

# 打开VS Code中的终端

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

# 准备代码

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

此后的流程基本可以参考README来做了。首先准备好代码。
![1701097839380.png](https://forums-obs.openharmony.c ... jvrjsva2ij2arx6.png "1701097839380.png")

注意观察代码的组织方式,OpenHarmony分为若干大版本,每个大版本支持若干产品,所以这里按这种方式组织子目录的。

# 编译代码

不同的版本和产品代码准备的时间有差异,但总的来说还是比较快,代码准备好后,进入code目录中对应的子目录。
![1701098086788.png](https://forums-obs.openharmony.c ... nd815onmsa58dso.png "1701098086788.png")

然后进行编译,产品编译的命令如下表,本表已验证

| 版本 | 产品                          | 命令                                                                    |
| ---- | ----------------------------- | ----------------------------------------------------------------------- |
| 4.0  | wifiiot_hispark_pegasus       | ./build.py -p wifiiot_hispark_pegasus --fast-rebuild                    |
| 4.0  | qemu_mini_system_demo         | ./build.py -p qemu_mini_system_demo --fast-rebuild                      |
| 4.0  | ipcamera_hispark_taurus_linux | ./compile.sh ./build.py -p ipcamera_hispark_taurus_linux --fast-rebuild |
| 4.0  | rk3568                        | ./compile.sh ./build.py -p rk3568 --fast-rebuild                        |

编译选项说明

| 选项                                   | 作用                                                                                                                                         | 举例                                                                    |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| -p<br />--product <br />--product-name | 必选,指定需要编译的产品。                                                                                                                   | ./build.py -p<br />qemu_mini_system_demo                                |
| --fast-rebuild                         | 可选,快速重编译。前提:在首次编译后,<br />如果没有修改过BUILD.gn文件,<br />则可以跳过前面处理BUILD.gn文件的一些逻辑<br />直接进入代码编译 | ./build.py -p<br />qemu_mini_system_demo<br />--fast-rebuild            |
| compile.sh                             | 在另外一台性能更高的机器上执行编译命令<br />这台机器和本机共享/root/code目录<br />完整的编译命令作为compile.sh的参数                         | ./compile.sh ./build.py -p ipcamera_hispark_taurus_linux --fast-rebuild |

# 镜像文件下载

本例中的QEMU可以直接在环境中运行,假定我们编译的是某个开发板的程序,那么需要下载编译成功后的镜像文件,对于较小的文件,可以直接使用VS Code的右键下载菜单进行,如下图。
![image.png](https://forums-obs.openharmony.c ... t8mu06tutstsmj0.png "image.png")
然后在Windows下载目录或者浏览器的下载目录可以找到文件。

然后对于较大文件,上述下载方式可能较慢,本平台提供了另外一种方式
如下图
![1701098848421.png](https://forums-obs.openharmony.c ... okdkd6k03ddlodb.png "1701098848421.png")

即运行upload.sh脚本,并指定要下载的文件,然后会生成一个下载链接,复制这个链接到浏览器中下载即可。这里upload.sh的意思是上传到某个地方,然后再让你下载(有点像百度网盘,只是不需要分享码)。
![image.png](https://forums-obs.openharmony.c ... pahrgrsn4eknwgd.png "image.png")

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

这里只是找了小文件模拟,实际上大文件的效果是相当不错的,欢迎体验。

# QEMU仿真运行

## 关闭内核自动化测试

对于轻量系统,默认开启自动化测试,自动化测试既影响编译速度,也影响运行效果,一般我们自己开发时先把它关闭。关闭方法。

首先运行 ./build.py -p qemu_mini_system_demo,(正常启动一小会儿以后,ctrl + c结束)  然后去进行编译选项设置,最后再./build.py -p qemu_mini_system_demo 完整编译,如下面的各步骤图所示

![1701174360049.png](https://forums-obs.openharmony.c ... 5z19inon17eej9h.png "1701174360049.png")

CTRL+C 有意中断编译进程

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

进入内核源码目录,并进行编译配置变更

![1701174492209.png](https://forums-obs.openharmony.c ... 01f55ktf5pee1fk.png "1701174492209.png")

通过键盘  **上下** 方向键调整到Test选项,然后按 **Enter**键

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

当前内核自动化测试处于开启状态,点击 **空格** 将其关闭

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

然后连续按 **2次  ESC** 键, 再按 **Y** 保存和退出

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

最后回到代码主目录并再次编译

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

编译完成后,就可以正常的和qemu轻量系统进行交互了。

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

## 退出QEMU仿真环境

QEMU仿真环境推出的快捷键为  **ctrl+a+x** ,  即按住ctrl+a, 释放后再按x。但ctrl+a在vscode中属于**全选,**所以这里产生了快捷键冲突了,无法正常退出QEMU仿真环境。解决办法是修改vscode中的快捷键

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

点击左下角**设置**图标,然后选择**键盘快捷方式,**

根据提示将CTRL + A替换成其它。后面就能正常识别并退出QEMU仿真环境了。

# 代码修订和提交

本环境充分利用VS Code的能力,使得代码修改和提交更容易。假定需要修订device/qemu目录下的代码并提交OpenHarmony主干。下面是操作步骤

## fork代码到自己的gitee仓库

![1701100851722.png](https://forums-obs.openharmony.c ... 90qe9qq0gt9vecz.png "1701100851722.png")

## 从自己的gitee仓库下载代码到本平台

![1701101017305.png](https://forums-obs.openharmony.c ... 3tf3v3nte5ml8av.png "1701101017305.png")
点击复制获取下载地址
![image.png](https://forums-obs.openharmony.c ... 33frr6ursgf3s31.png "image.png")

会配置ssh的同学也可以选择SSH地址,不过推荐HTTPS地址(门槛低)。将这个地址记录下来,稍后使用。

### 修改下载配置

本平台对下载进行了优化,你仅需要告诉平台需要在哪里下载什么东西,下载命令由平台封装好。

比如,我要下载device-qemu仓库的代码,这个代码应该存储在device/qemu代码目录,且当前是release_3_1下qemu_mini_system_demo产品的代码。

那么,我需要做的是在对应目录新增一个配置文件,如下
![1701101338530.png](https://forums-obs.openharmony.c ... qhbvwqb18axgrrl.png "1701101338530.png")

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

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

新增配置文件,这里device-qemu的含义是:代码需要下载到device/qemu目录,然后填入我们之前记录的需要下载的地址

### 下载代码

重新在 /root目录运行代码准备即可下载代码

![1701101802448.png](https://forums-obs.openharmony.c ... 3hg4uiyvztygzeg.png "1701101802448.png")

## 修改代码

修改代码。提交代码,请参考vs code使用手册,以及OpenHarmony官方网站提交要求。

# 其它说明

本平台一定存在许多许多bug, 请大家试用并反馈。
[/md]
作者: 马迪    时间: 2023-11-29 11:08
[md]👍 👍 👍
[/md]
作者: smallpotato    时间: 2023-11-30 19:14
♥(。→v←。)♥
作者: 呆懵的蜗牛    时间: 2024-4-1 16:45
太棒了




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