openharmony标准系统移植之添加产品编译

本文详细介绍了在OpenHarmony中添加新产品编译的完整过程,包括源码解压、环境配置、修改配置文件、解决编译错误等步骤,通过实例展示了如何针对特定硬件平台Hi3516DV300进行移植工作。
摘要由CSDN通过智能技术生成

首先我这里下载的是源码文件包的形式,如下图,我们使用 命令 tar xvf code-v3.1-Release.tar.gz进行解压文件。解压完成后如下图,多了code-v3.1-Release文件夹,
在这里插入图片描述
然后需要构建我们自己的git配置,首先删除.repo/文件夹,然后修改drivers/adapter/.gitignore,这里把linux全屏蔽了,不然后期修改了文件,无法找到对应的改动。
首先安装下ruby工具,执行如下命令即可 sudo apt-get install ruby,不装可能会报错

FAILED: gen/isa/isa.yaml
[OHOS ERROR] /usr/bin/env ../../ark/runtime_core/isa/combine.rb -d ../../ark/runtime_core/isa/isa.yaml,../../ark/js_runtime/ecmascript/ecma_isa.yaml -o gen/isa/isa.yaml
[OHOS ERROR] /usr/bin/env: ‘ruby’: No such file or directory

具体报错信息如下。

[OHOS INFO] [277/33818] ACTION //ark/runtime_core/isa:isa_combine(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [278/33818] STAMP obj/base/miscservices/screenlock/etc/init/screenlockservice.cfg__notice.stamp
[OHOS INFO] [279/33818] STAMP obj/applications/standard/hap/calc_demo_hap.stamp
[OHOS INFO] [280/33818] ACTION //base/account/os_account/interfaces/kits/napi/osaccount:osaccount__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [281/33818] ACTION //applications/standard/hap:ecg_demo_hap__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [282/33818] ACTION //applications/standard/hap:filepicker_hap__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [283/33818] ACTION //applications/standard/hap:flashlight_demo_hap__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [284/33818] ACTION //applications/standard/hap:airquality_demo_hap__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [285/33818] ACTION //base/telephony/state_registry/sa_profile:state_registry_sa_profile(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [286/33818] ACTION //applications/standard/hap:dynamic.wav__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [287/33818] ACTION //ark/js_runtime:libark_jsruntime__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [288/33818] ACTION //base/miscservices/screenlock/services:screenlock_server__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [289/33818] ACTION //ark/js_runtime/ecmascript/js_vm:ark_js_vm__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [290/33818] ACTION //base/miscservices/screenlock/interfaces/kits/napi:screenlock__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [291/33818] ACTION //developtools/profiler/device/plugins/sample_plugin:sampleplugin__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [292/33818] ACTION //ark/runtime_core/dprof:libdprof__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [293/33818] ACTION //base/powermgr/thermal_manager/application/init:thermal_protector.cfg__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS INFO] [294/33818] ACTION //ark/js_runtime/ecmascript/tooling:libark_ecma_debugger__notice(//build/toolchain/ohos:ohos_clang_arm)
[OHOS ERROR] [277/33818] ACTION //ark/runtime_core/isa:isa_combine(//build/toolchain/ohos:ohos_clang_arm)
[OHOS ERROR] FAILED: gen/isa/isa.yaml
[OHOS ERROR] /usr/bin/env ../../ark/runtime_core/isa/combine.rb -d ../../ark/runtime_core/isa/isa.yaml,../../ark/js_runtime/ecmascript/ecma_isa.yaml -o gen/isa/isa.yaml
[OHOS ERROR] /usr/bin/env: ‘ruby’: No such file or directory
[OHOS ERROR] Please check build log in /home/d1/openHarmony/source/code-v3.1-Release/OpenHarmony/out/hi3516dv300/build.log
=====build  error=====

然后先编译下官方已经有的产品,确保环境没有问题。 可以使用sudo apt-get install ccache命令安装 ccache,这样编译会快一点。执行如下命令即可 ./build.sh --product-name Hi3516DV300,等待编译完成,我这边等待了有几十来分钟才编译好吧,编译结果如下,说明我们的环境已经没有问题了,可以开始进行我们的移植 工作了。

在这里插入图片描述
首先在源码目录productdefine/common/products下,增加我们产品定义的json文件,我这里直接复制使用Hi3516DV300.json作为我们的模板修改下使用。使用命令cp Hi3516DV300.json zxyNandst.json即可得到我们的产品定义,打开文件,修改如下

{
   
  "product_name": "Hi3516DV300", //这里修改为我们对应的文件名, zxyNandst
  "product_company": "hisilicon", //修改为对应的产品,xingyunnand
  "product_device": "hi3516dv300", // 使用 xingyunelec
  "version": "2.0",
  "type": "standard",
  "product_build_path": "device/board/hisilicon/hispark_taurus/linux", //这里使用device/xingyunelec/xingyunnand/sdk_linux

所以修改后我们的这部分内容如下

{
   
  "product_name": "zxyNandst",
  "product_company": "xingyunelec",
  "product_device": "xingyunnand",
  "version": "2.0",
  "type": "standard",
  "product_build_path": "device/xingyunelec/xingyunnand/sdk_linux",
  "parts":{
   

然后把图片中这行删除,这个是与海思相关的文件,我们不需要,所以删除即可。
在这里插入图片描述
然后我们使用如下命令尝试编译下 ./build.sh --product-name zxyNandst –ccache,很明显报错

++++++++++++++++++++++++++++++++++++++++
2022-04-24 10:01:06
--product-name zxyNandst –ccache
[OHOS ERROR] /home/d1/openHarmony/source/code-v3.1-Release/OpenHarmony/productdefine/common/device/xingyunnand.json not found
=====build  error=====

我们还没有定义我们soc的相关信息,所以我们需要添加上去,同样的使用cp hi3516dv300.json xingyunnand.json得到我们的soc相关配置信息文件

{
   
    "device_name": "hi3516dv300", //同文件名,xingyunnand.json
    "device_company": "hisilicon", //device目录下的xingyunelec
    "target_os": "ohos",
    "target_cpu": "arm",
    "kernel_version": "",
    "device_build_path": "device/board/hisilicon/hispark_taurus/linux", //修改成自己对应即可
    "enable_ramdisk": true
}

修改成我们对应的相关配置信息,

{
   
    "device_name": "xingyunnand",
    "device_company": "xingyunelec",
    "target_os": "ohos",
    "target_cpu": "arm",
    "kernel_version": "",
    "device_build_path": "device/xingyunelec/xingyunnand/sdk_linux",
    "enable_ramdisk": true
}

然后使用 ./build.sh --product-name zxyNandst –ccache 再次编译试试,还是报错了,报错信息如下。

ERROR at //drivers/peripheral/audio/audio.gni:11:5: Unable to load "/home/d1/openHarmony/source/code-v3.1-Release/OpenHarmony/vendor/xingyunelec/zxyNandst/hals/audio/product.gni".
[OHOS INFO]     import("//vendor/${product_company}/${product_name}/hals/audio/product.gni")
[OHOS INFO
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值