全志A33移植openharmony3.1标准系统之添加产品编译

本文详细记录了如何在全志A33开发板上移植OpenHarmony 3.1标准系统的过程,包括添加产品配置文件、修改编译选项、解决编译报错以及处理内核和USB相关问题。通过一步步操作,最终成功编译并烧录系统,但在启动时遇到文件缺失的问题,需要进一步排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想玩openharmony很久了,苦于没有合适的板子能让我玩,已经适配好的开发板可真是太贵了啊,所以还是得自己动手啊,毕竟还能深入了解openharmony系统,之前有在A33上把主线uboot和主线内核跑起来,而且drm也是可以正常显示了,现在就基于此将openharmony移植到开发板上。
首先在productdefine/common/products/下添加我们板卡的配置文件a33.json,我这里直接复制其他产品的即可。
在这里插入图片描述
我这里拷贝的是hi3516dv300的配置文件,修改主要的信息如上图。这里之后需要添加对应的device文件,在productdefine/common/device中添加上图中product_device字段对应的文件名即可,我这里是a33,所以我需要添加的文件为a33.json,我这里直接是复制的3516的,cp hi3516dv300.json a33.json即可。新增文件如下图所示。
在这里插入图片描述
然后修改我们的文件如下图,这里我们不需要ramdisk,关闭它。
在这里插入图片描述
编译直接执行./build.sh --product-name=a33 --ccache即可,编译报错如下,
在这里插入图片描述
添加对应文件即可,直接复制hi3516的即可,目前还不知道是干什么用的,先为了能成功编译,vendor/allwinner/a33/hals/audio/product.gni,文件内容如下

enable_audio_alsa_mode = false
enable_hdf_proxy_stub = true
enable_audio_hal_notsupport_pathselect = false
enable_hdf_audio_full_test_suite = true

不太清楚具体的含义,先这样仿照使用,继续编译,报错如下,这样其实很好能帮助解决问题
在这里插入图片描述
这里直接复制其他目录的文件使用cp soc/hisilicon/common/hal/media/camera/hi3516dv300/linux_standard/camera/* allwinner/a33/camera/ -rf ,先不管里面是什么,一切为了能编译通过。报错如下
在这里插入图片描述
直接cp hihope/hardware/display allwinner/hardware/ -rf 即可,接着编译报错如下
在这里插入图片描述
这里我们修改成如下,先不考虑使用gpu的情况,当然如果有你可以查看这个文件添加对应的文件路径即可。注意这里一定要细心

diff --git a/foundation/graphic/standard/graphic_config.gni b/foundation/graphic/standard/graphic_config.gni
index 77ba1eeb14..faa1d43fe5 100755
--- a/foundation/graphic/standard/graphic_config.gni
+++ b/foundation/graphic/standard/graphic_config.gni
@@ -25,6 +25,10 @@ if ("${product_name}" == "watchos" || "${product_name}" == "Hi3516DV300" ||
   gpu_defines = [ "ACE_ENABLE_GL" ]
   ace_enable_gpu = true
   libgl = [ "//device/hihope/hardware/gpu:mali-bifrost-g52-g2p0-ohos" ]
+} else if ("${product_name}" == "a33") {
   
+  gpu_defines = [ "ACE_DISABLE_GL" ] //这里一定要使用"ACE_DISABLE_GL"而不是 "ACE_ENABLE_GL" 
+  ace_enable_gpu = false
+  libgl = [ ]
 } else {
   
   gpu_defines = [ "ACE_ENABLE_GL" ]
   ace_enable_gpu = true

我这里一开始用的gpu_defines = [ “ACE_ENABLE_GL” ] ,然后报错如下
在这里插入图片描述
通过查看foundation/graphic/standard/rosen/modules/render_service_base/src/platform/ohos/里面Build.gn看出这个问题,所以移植还是要细心。
接着编译,报错如下则是
在这里插入图片描述
这是缺少hdf的内容,我们根据提示进行添加,直接进入vendor目录执行cp hisilicon/Hi3516DV300/hdf_config/* allwinner/a33/hdf_config/ -rf拷贝海思的。然后会出现如下编译内核的错误在这里插入图片描述
首先可以看到是没有patch文件,我们在kernel/linux/patches/linux-5.10下执行mkdir a33_patch创建目录,进入目录执行touch hdf.patch创建文件, touch a33.patch创建文件,然后执行cp linux-5.10/arch/arm/configs/sunxi_defconfig config/linux-5.10/arch/arm/configs/a33_standard_defconfig作为我们的配置文件,然后修改如下点

diff --git a/kernel/linux/build/build_kernel.sh b/kernel/linux/build/build_kernel.sh
index 1594f27b30..2bbca9c70b 100755
--- a/kernel/linux/build/build_kernel.sh
+++ b/kernel/linux/build/build_kernel.sh
@@ -24,11 +24,16 @@ pushd ${1}
 ./kernel_module_build.sh ${2} ${4} ${5} ${6} ${7} ${8}
 mkdir -p ${3}
 rm -rf ${3}/../../../kernel.timestamp
-cp 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值