跳转至

鸿蒙版本支持

鸿蒙版本支持

本项目兼容OpenHarmony操作系统,适配到本项目的OHOS已做过小型化裁剪,支持运行无屏xts,部分案例支持直接运行在OHOS,案例功能与OHOS裁剪后的基础服务可同时运行。

适用场景

该文档适用于需要编译构建OHOS的镜像的场景。

1.拉取OHOS代码

首次使用 repo 时,请在空目录中初始化并同步源码:

repo init -u https://gitcode.com/HiSpark/hi_aiot_solution_manifest.git -b main
repo sync
repo start master --all

2.编译OHOS镜像

samples/base 案例为例,OHOS 编译命令:

Hi3516CV610:

bash scripts/build_ohos.sh --chip hi3516cv610 --target cv610_ev_board samples base --shell busybox --ccache --no-prebuilt-sdk --build-xts=true

Hi3516CV608:

bash scripts/build_ohos.sh --chip hi3516cv608 --target cv610_ev_board samples base --shell busybox --ccache --no-prebuilt-sdk --build-xts=true

参数说明:

字段 说明
--chip hi3516cv610\|hi3516cv608 选择芯片,默认 hi3516cv610。决定适配目录、默认产品名和镜像文件名。
--target cv610_ev_board samples base 指定目标硬件单板cv610_ev_board 案例类型samples 案例名称base。
--shell busybox 指定目标系统的 shell 环境为 busybox(默认)可切换toybox,用于xts测试验证toybox。
--product-name=<产品名> 定义了最终编译出的产品/系统镜像的名称。标准产品名也可用于推断芯片;若同时指定 --chip,两者必须一致。
--ccache 启用 ccache 编译缓存,加速增量编译。
--build-xts=true 启用 XTS测试套件的编译。
--no-prebuilt-sdk 透传给 OHOS,不使用预编译 SDK。

编译产物:

芯片 默认输出目录 根文件系统镜像
Hi3516CV610 ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/ rootfs_hi3516cv610.ubifs
Hi3516CV608 ohos/out/hispark_hi3516cv608/ipcamera_hispark_hi3516cv608_linux/ rootfs_hi3516cv608.ubifs

两个目录均包含以下文件,<chip> 替换为 hi3516cv610 或 hi3516cv608:

nand_burn_table.xml
uImage
boot_image.bin
rootfs_<chip>.ubifs
nand_env.bin

注意事项

切换不同案例编译时需要清理产物和sdk

清理:

rm -rf ohos/out
rm -rf sdk/Hi3516CV610/ 
repo sync HiSpark/Hi3516CV610 HiSpark/busybox HiSpark/linux HiSpark/u-boot

3.烧录固件

在 CV610 烧录工具中选择“按分区烧写”,勾选“默认采用 XML 所在路径”,加载项目的 nand_burn_table.xml,并填写 boot、env、kernel 和 rootfs 四个分区。

烧录工具介绍见BurnTool快速介绍

烧录完成后,通过串口访问开发板确认开发板能够正常启动。

附录

xts测试

  • XTS送检机构需要带有豁免项的测试报告,因此需要开启XTS测试套件的豁免项,请修改hi_aiot_solution\ohos\test\xts\acts\security_lite\BUILD.gn文件第22行的代码,删除"//test/xts/acts/security_lite/huks/liteos_a_adapter:Hukslitetest"前面的“#”号。此外,若要修改产品信息相关字段,请参考后文《XTS申请测评注意事项》章节。

  • XTS 测试套编译时,在上一章节的 CV610/CV608 命令后添加 --build-xts=true。该参数原样传递给 OHOS,脚本会在编译结束时检查测试程序是否生成。原有的 --gn-args build_xts=true 方式仍可透传给 OHOS。

编译结束后,在所选芯片的输出目录下生成 suites/acts/ 测试套件。CV610 路径为 ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/suites/acts/,CV608 路径为 ohos/out/hispark_hi3516cv608/ipcamera_hispark_hi3516cv608_linux/suites/acts/。版本烧写方法和上一章相同。

后续路径以 CV610 为例,CV608 将路径中的 hispark_hi3516cv610、ipcamera_hispark_hi3516cv610_linux 分别替换为 hispark_hi3516cv608、ipcamera_hispark_hi3516cv608_linux;vendor/hisilicon/hispark_hi3516cv610_linux 对应替换为 vendor/hisilicon/hispark_hi3516cv608_linux。

  • XTS环境搭建与测试请参考OpenHarmony社区兼容性测评服务指导:

https://www.openharmony.cn/certification/document/guid

请参考链接中“兼容性测试执行环境搭建”章节,配置Windows环境,安装必要的软件。Hi3516CV610 和 Hi3516CV608 的本方案均为小型系统,请参考“小型系统应用兼容性测试指导”章节完成环境搭建和配置。或者按如下的步骤:

①配置Windows环境。进入python官网,安装python3.7及以上版本(建议安装最新版本)。然后进入cmd,依次执行如下命令:

```
python --version    显示出python对应版本
pip install setuptools    安装setuptools
pip install pyserial    安装pyserial
pip install rsa    安装rsa
pip install python-dateutil    安装dateutil
```

②PC运行环境准备,需依次点击: 控制面板——系统和安全——Windows Defender防火墙——高级设置——入站规则——新建规则【勾选端口next——TCP——特定本地端口,添加111, 1058, 2049 next(haneWIN NFS 服务器里面的端口映射)——允许连接next——勾选域、专用、共用 next】——为该规则定义一个名字haneWinTcp——完成。

**图 1** haneWinTcp规则

haneWinTcp规则

③XTS测试需要的资源文件,请下载社区OpenHarmony 6.1 LTS 小型系统ACTS资源文件,复制到hi_aiot_solution/ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/suites/acts/resource目录下。然后将acts文件夹复制到本地创建的共享路径(例如D:\xtswork\nfs)。

下载地址:https://www.openharmony.cn/certification/document/xts

图 2 小型系统资源文件

小型系统资源文件

img OH5.0及以前社区下载的resource\tools\query.bin是32位的,无法在64位的设备上使用。客户需要使用自行编译生成的query.bin文件(hi_aiot_solution/ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/suites/acts/resource/tools/query.bin)。 OH5.1社区下载resource没有tools目录。

④在PC上配置NFS服务器,请先下载安装hanewin_nfs_server_V1.1.69,找到NFS的安装目录下的exports文件,原exports文件是只读,需要更改其权限,对其添加D:\xtswork\nfs -public -name:nfs -alldirs -maproot:0;添加成功后如下图所示。若没有出现建议重启NFS服务器或电脑。

图 3 haneWIN NFS服务器

haneWIN NFS服务器

解释命令:
D:\xtswork\nfs  路径:这是希望共享的目录路径,即acts测试套件存放的位置;
-public:表示共享是公开的,任何客户端都可以访问,无需身份验证;
-name:nfs 指定共享名称为nfs。客户端在挂载时会使用这个名字来引用共享目录;
-alldirs:表示允许客户端挂载共享目录中的任何子目录,而不仅仅是根目录。
‌-maproot:0‌:允许客户端的 root 用户以服务器 root 身份写入和操作文件

⑤配置运行环境,cv610设备与PC相连后,进入串口,完成被测设备IP配置:

ifconfig eth0 192.168.1.16

PC进入控制面板——网络和Internet——网络连接,配置PC端IP(需和被测设备同网段,例如192.168.1.26),可通过PC上ping被测设备IP确认是否配置成功。之后修改D:\xtswork\nfs\acts\config\user_config.xml的配置,如下图所示。

图 4 user_config.xml配置

user_config.xml配置

解释配置:
com:单板设备在PC端映射端口的串口号;
ip:NFS服务器地址,即上一步配置的PC ip地址;
port:NFS服务的默认通信端口;
dir:NFS服务器用于存放挂载文件的路径;
remote:安全pc与本地单板组网,取false。

完成配置后,进入串口输入如下的mount命令,使被测设备可以访问NFS服务端的nfs共享文件:

mkdir /dev/nfs
mount -o nolock,addr=192.168.1.26 -t nfs 192.168.1.26:/nfs /dev/nfs
NFS服务器配置了-name:nfs,因此这里可以直接指定192.168.1.26:/nfs

XTS测试套补充说明

带屏幕和应用的产品,需要测试ActsAbilityMgrTest和ActsBundleMgrTest。若客户产品需过鸿蒙XTS认证A标,需要测试此两项。

  1. 修改hi_aiot_solution/ohos/test/xts/acts/build_lite/BUILD.gn文件第106行和第107行的代码(删除前面的“#”号)。
  2. 重新编译工程后,在hi_aiot_solution/ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/suites/acts/testcases/ability目录下生成测试套ActsAbilityMgrTest.bin,在hi_aiot_solution/ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/suites/acts/testcases/appexecfwk目录下生成测试套ActsBundleMgrTest.bin。

XTS测试命令说明

关闭串口会话(注意不要断开串口),双击执行acts路径下的run.bat,界面启动后,输入用例执行指令。

  • 全量执行命令

    run acts
    
  • 单模块执行命令

    run -l ActsSamgrTest 
    
  • 多模块执行命令

    run -l ActsSamgrTest;ActsPMSTest;ActsBootstrapTest;ActsParameterTest
    

XTS申请测评注意事项

  1. 请参考《OpenHarmony设备兼容性规范x.x自检表_小型系统 .xlsx》 sheet1表格的规范要求修改配置如下文件,自行设置产品信息。如下为cv610的修改路径,cv608路径为hi_aiot_solution\ohos_adapt\patch\vendor\hisilicon\hispark_hi3516cv608_linux\hals\utils\sys_param\vendor.para 其他同下

    hi_aiot_solution\ohos_adapt\patch\vendor\hisilicon\hispark_hi3516cv610_linux\hals\utils\sys_param\vendor.para hi_aiot_solution\ohos\base\startup\init\services\etc\param\ohos.para hi_aiot_solution\ohos\base\startup\init\services\etc_lite\param\ohos_const\ohos.para

关键字段对应关系说明如下:

平台字段 API接口 备注 举例 修改位置 summary_report.html对应字段
企业简称(英⽂) GetManufacture() HUAWEI vendor.para,const.product.manufacturer manuFacture
操作系统版本号 GetOsFullName() OpenHarmony-3.1.1.1 ohos_const\ohos.para,const.ohos.fullname OsFullName
设备名称(传播名) GetMarketName() Mate 30 vendor.para,const.product.name marketName
设备型号 GetProductModel() TAS-AL00 vendor.para,const.product.model productModel
品牌英⽂名称 GetBrand() HUAWEI vendor.para,const.product.brand brand
软件版本号 GetDisplayVersion() 不是OH系统版本号,不能包含OpenHarmony 1.0.0.6 vendor.para,const.software.model softwareModel
安全补丁标签 GetSecurityPatchTag() 2021/1/1 ohos_const\ohos.para,const.ohos.version.security_patch Security Patch
版本id GetVersionId() 由多个字段拼接而成:$(设备类型) + '/' + $(企业简称) + '/' + $(品牌英文名称) + '/' + $(产品系列英文名称) + '/' + $( 操作系统版本号 ) + '/' + $(设备型号) + '/' + $(软件版本号) + '/' + $(系统软件API Version ) + '/' + $(差异版本号) + '/' + $(构建类型) linkiot/MANU/BRAND/SERIES(AA)/OpenHarmony-3.1.1.1/MODEL(AA)/SM/3/1.0.0.6/release ①ohos.para,
const.product.devicetype;
②vendor.para,
const.product.manufacturer;
③vendor.para,
const.product.brand;
④vendor.para,
const.build.product;
⑤ohos_const\ohos.para,
const.ohos.fullname;
⑥vendor.para,
const.product.model;
⑦vendor.para,
const.software.model;
⑧ohos_const\ohos.para,
const.ohos.apiversion;
⑨ohos.para,
const.product.incremental.version;
⑩ohos.para,
const.product.build.type
VersionID

OpenHarmony设备兼容性规范自检表下载地址:https://www.openharmony.cn/certification/document/pcs/

图 1 小型系统 PCS5.x 自检表

小型系统-PCS5-x-自检表

  1. 填写申请测评电子流的时候需要上传PCID.sc文件,请从out目录下获取(hi_aiot_solution/ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/PCID.sc)。

  2. 送测时需要执行全量XTS,acts\reports目录下生成的测试报告摘要(summary_report.html)里面必须包含产品信息。

    图 2 XTS测试报告描述信息

    XTS测试报告描述信息

  3. 请按照如下目录准备测评材料。注意提交测评的外观图片要和送测的实物保持一致;且芯片丝印要带有芯片对外传播名称。

 ├── PCID
 └── PCS自检表
 └── XTS报告
 └── xxx外观图
 └── 固件烧录和使用说明
 └── 物料投递信息