openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库

这篇具有很好参考价值的文章主要介绍了openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


需求

如题,需要在openHarmony4.0Release-riscv64荔枝派版本的third_party目录下增加glmark2。


一、库代码获取

由于其他同事已经在别的环境上完成代码适配,可以直接拿过来用。
https://gitee.com/wawanala/glmark2-es2
在third_party目录下直接git clone下载后解压即可。

二、增加配置

参考https://www.51cto.com/article/745922.html

1.build\subsystem_config.json

文件增加以下内容

“glmark2”:{
“path”: “third_party/glmark2”,
“name”: “glmark2”
},

2.productdefine\common\inherit\qemu_standard.json

{
“subsystem”: “thirdparty”,
“components”: [
{
“component”: “musl”,
“features”: []
},
{
“component”: “glmark2”,
“features”: []
}

]
},

thirdparty子系统增加glmark2组件。
本来是打算在vendor\sipeed\lpi4a\config.json文件中增加以上内容,但该文件的最开始以

“inherit”: [ “productdefine/common/inherit/qemu_standard.json”, “productdefine/common/inherit/chipset_common.json” ],

方法配置了包含关系,为了通用性,因此加在了productdefine\common\inherit\qemu_standard.json文件中。

3.build\compile_standard_whitelist.json

“bundle_subsystem_error”:
[
“third_party/glmark2/bundle.json”,
“third_party/glmark2/src/eudev/bundle.json”,
]

白名单中增加配置,以免编译过程中报subsystem_name或part_name不匹配的问题。

三、编译以及修改

版本根目录下运行

./build.sh --product-name lpi4a --ccache --gn-args sparse_image=true --no-prebuilt-sdk

进行编译,为了确认BUILD.gn被成功调用,刚开始可以在文件中增加一些错误等待编译报错。

1.获取并修改依赖库位置

openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
编译过程中报错,首先修改BUILD.gn对应的库文件目录

#source = “//device/soc/iscas/rvbook/hardware/gpu/lib64/libudev.z.so”
source = “//device/soc/sipeed/lpi4a/hardware/gpu/lib64/libudev.z.so”

并在对应目录中增加该库文件:libudev.z.so
文件获取位置:https://isrc.iscas.ac.cn/gitlab/riscv/polyosmobile/ohos_qemu/device_soc_iscas/-/tree/20240303-gpu/rvbook/hardware/gpu?ref_type=heads

2.修改编译报错

编译中代码报错:
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
修改头文件device\soc\sipeed\lpi4a\hardware\gpu\include\gbm.h内容:
https://isrc.iscas.ac.cn/gitlab/riscv/polyosmobile/ohos_qemu/device_soc_iscas/-/blob/20240303-gpu/rvbook/hardware/gpu/include/gbm.h?ref_type=heads

之后等待编译完成即可。

openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos

四、riscv设备上运行结果

openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos

五、arm架构设备上运行

用了dayu200开发板跑openharmon的rk3568版本,版本编出来以后刚开始效果如下
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
报错提示缺libgbm.so,本来打算直接在构建arm的版本,尝试了以下放弃了,挺费工夫的。在openharmony的device\soc下find一下,惊喜发现allwinner\t507\hardware\gpu\lib-mesa目录里有这系列的库文件。直接拿来用。
修改\third_party\glmark2\BUILD.gn

configs = [ “:glmark2_config” ]
deps = [
“:glad”,
“:png”,
“:zlib”,
“:matrix”,
“:libgbm”,
“:libgbm.so.1”,
“:libgbm.so.1.0.0”,
“:libevdev_test”,
“:jpeg-turbo”,
“//third_party/libdrm:libdrm”,
#“//third_party/libjpeg-turbo:turbojpeg_static”,
#“src/eudev:libudev”,
]

并增加打包

ohos_prebuilt_shared_library(“libgbm”) {
relative_install_dir = “chipsetsdk”
#source = “//device/soc/iscas/rvbook/hardware/gpu/lib64/libgbm.so”
source = “//device/soc/sipeed/lpi4a/hardware/gpu/lib64/libgbm.so”
install_images = [ chipset_base_dir ]
subsystem_name = “glmark2”
}
ohos_prebuilt_shared_library(“libgbm.so.1”) {
relative_install_dir = “chipsetsdk”
source = “//device/soc/rockchip/rk3568/hardware/gpu/lib64/libgbm.so.1”
install_images = [ chipset_base_dir ]
subsystem_name = “glmark2”
install_enable = true
}
ohos_prebuilt_shared_library(“libgbm.so.1.0.0”) {
relative_install_dir = “chipsetsdk”
source = “//device/soc/rockchip/rk3568/hardware/gpu/lib64/libgbm.so.1.0.0”
install_images = [ chipset_base_dir ]
subsystem_name = “glmark2”
install_enable = true
}

编译完成后上设备运行效果如下:
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
下图显示使用的时候应该还是有些问题的,应该是需要增加mesa3d的arm库打包并在glmark2那里进行链接。
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
附dayu200使用方法。
https://gitee.com/hihope_iot/docs/tree/master/HiHope_DAYU200/%E7%83%A7%E5%86%99%E5%B7%A5%E5%85%B7%E5%8F%8A%E6%8C%87%E5%8D%97

吐槽一下在linux环境的烧录方法貌似没写明白,导致我每次都得把镜像文件拷贝到windows下进行操作,很费时间。
还有,我试了下这个commit在4.0版本不能直接用。
https://gitee.com/zleoyu/device_soc_rockchip/commit/4467466a50adca43f26a77912cab710901f909e4

六、记录

openharmony的sig组貌似也搞出了glmark2,有时间可以再搞下来尝试一把,先记录下。
https://segmentfault.com/a/1190000044169250
https://gitee.com/honglianglin/glmark2_2/tree/master

七、尝试编译移植适配了OHOS的glmark2

git clone https://gitee.com/honglianglin/glmark2_2.git

1.x86架构

在x86架构下的ubuntu环境中直接配置、编译、安装。

meson setup build -Dflavors=drm-gl,drm-glesv2,wayland-gl,wayland-glesv2,x11-gl,x11-glesv2
ninja -C build
ninja -C build install

缺库的时候直接apt install安装即可。
安装完后直接运行,效果如下:
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos

2.arm64架构

期间遇到了挺多问题的,慢慢道来。
step1
构建arm64虚拟机

#创建一个虚拟fs文件系统
$sudo qemu-debootstrap --arch arm64 bullseye /mnt/data/arm64 http://deb.debian.org/debian/
#进入到文件系统
$sudo chroot /mnt/data/arm64/
#退出文件系统
$exit

也可以使用qemu或者docker。
在debain虚拟机中安装gnu、x11、libjpeg等库,除了gnu以外的其他库也可以在meson配置报错的时候安装。工具链用clang应该也可以。

step2:
编写交叉编译配置文件
参考中的链接直接拿来用的:arm64.txt

在ubuntu宿主机中进行meson配置、编译、安装。注意,我缺库的时候安装是在debain的虚拟机中进行的。但安装的很慢,配置了源,开了代理都不行,不知道啥原因。最开始是尝试全部在debain虚拟机中进行的,但安装工具链的时候报错了。。。也没查出原因。

meson setup build -Dflavors=drm-gl,drm-glesv2,wayland-gl,wayland-glesv2,x11-gl,x11-glesv2 --cross-file arm64.txt
ninja -C build
ninja -C build install

报错解决:
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
gnu的头文件没找到,修改配置路径即可。
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
按照错误提示,从debain虚拟机中将对应库文件放到宿主机对应目录。
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
编译安装成功,确认是arm64架构。
运行:
宿主机中效果:
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
虽然会有报错,但glmark2在宿主机上是可以直接运行的。
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
虚拟机中效果:
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
原因不知道,可能是虚拟机缺少模拟的GPU设备?解决中。后续还需要移植到rk3568上,目前还不知道方案,后续更新。。。。

step3:
打包进vendor.img烧录到rk3568进行测试(也可以通过hdc)。
先将vendor.img从windows拷贝到ubuntu,执行以下操作将glmark2打包进vendor.img。

root@znvhwd:/home/ptg# mount vendor.img mmm
root@znvhwd:/home/ptg# cd mmm/bin/
root@znvhwd:/home/ptg# cp /usr/local/bin/* ./
root@znvhwd:/home/ptg/mmm/bin# ls
clash elf2dmp glmark2-drm glmark2-es2-drm glmark2-wayland hdf_devmgr markdown-it repo
tsserver cmark glmark2 glmark2-es2 glmark2-es2-wayland hdf_devhostispserver pygmentize tsc
root@znvhwd:/home/ptg/mmm/bin# umount /home/ptg/mmm
umount: /home/ptg/mmm: target is busy.
root@znvhwd:/home/ptg/mmm/bin# cd …
root@znvhwd:/home/ptg/mmm# cd …
root@znvhwd:/home/ptg# umount /home/ptg/mmm

将vendor.img重新拷贝到windows,重新烧录整个rk3568版本(测试发现单独烧录vendor.img不可用,版本起来后vendor目录为空)。
openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库,openharmony,搜索引擎,risc-v,harmonyos
仍然是缺少mesa库导致运行错误,缺少权限,并且仍然有canvas报错。

Error: Failed to create GBM device
Error: main: Could not initialize canvas

打算再开个小坑写下怎么把ohos里的mesa3d构建出来的,搞定后我会贴一下链接。
https://blog.csdn.net/qqq1112345/article/details/137261573

参考

https://blog.csdn.net/vviccc/article/details/126104486

总结

本文为个人笔记,文中的部分超链接其他人可能没有权限打开。
本文仅限于记录增加已经适配好的第三方库文件,不涉及库的编译体系、代码、依赖关系的修改等高科技内容。文章来源地址https://www.toymoban.com/news/detail-848933.html

到了这里,关于openHarmony4.0Release-riscv64荔枝派版本新增glmark2三方库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenHarmony4.0系列(一)编译环境搭建+代码上库

    1. VMware + Ubuntu20.04 + 内存8G+ + 硬盘150G+ 2. Ubuntu20.04 Server + 内存64G + 硬盘24T 3. Ubuntu20.04 + 内存16G+ + 硬盘1T 4. Windows 10 通过子系统方式安装Ubuntu20.04 四种方案,推荐方案四。 VMware下载: Vmware Workstation pro 15.5.5 清华开源镜像站: ubuntu-20.04.6-desktop-amd64.iso 开源USB启动盘制作工具: Rufus-

    2024年01月22日
    浏览(58)
  • RK3568 OpenHarmony4.0适配HDMI液晶屏

            先看下最终适配效果视频: OpenHarmony_V40_HDMI液晶屏         本文基于如下开发环境进行开发调试: 处理器:RK3568 CPU:四核64位Cortex-A55,主频最高达2.0GHz GPU:ARM G52 2EE,支持OpenGL ES 1.1/2.0/3.2,OpenCL 2.0,Vulkan 1.1,支持内嵌高性能2D加速硬件 NPU:支持1T算力 多媒体

    2024年02月02日
    浏览(86)
  • 3 开源鸿蒙OpenHarmony4.1源码下载、编译,生成OHOS_Image可执行文件的最简易流程

    作者 将狼才鲸 日期 2024-03-01 准备一台Windows电脑 安装VMware或者VMware Player虚拟机 从华为镜像下载Ubuntu系统,用国内源下载速度更快 Ubuntu 镜像说明 https://repo.huaweicloud.com/ubuntu-releases/ 选择要下载的系统版本 https://repo.huaweicloud.com/ubuntu-releases/18.04.6/ubuntu-18.04.6-desktop-amd64.iso 我使用

    2024年04月11日
    浏览(60)
  • OpenHarmony 4.0 Release 编译异常处理

    编译环境:Ubuntu 20.04 OpenHarmony 软件版本:4.0 Release 设备平台:rk3568 参考官网步骤: OpenHarmony 4.0 Release 源码获取 参考官网构建步骤: v4.0 Release 编译构建 如果上述步骤一切顺利,编译通过,build log如下: 下拉代码执行报错 unable to resolve “fork_flow”\\\" 表明repo工具无法解析名为

    2024年02月05日
    浏览(51)
  • Docker 编译OpenHarmony 4.0 release

    编译环境:Ubuntu 20.04 OpenHarmony版本:4.0 release 平台设备:RK3568 OpenHarmony 3.2更新至OpenHarmony 4.0后,公司服务器无法编译通过,总是在最后几十个文件时报错,错误码4000: 经分析尝试: 1、相同的步骤和命令,wsl2 编译OpenHarmony 4.0 r正常。 2、服务器使用sudo编译正常,但由于sudo使

    2024年02月03日
    浏览(49)
  • OpenHarmony-4.0-Release 源码编译记录

    本文基于 Ubuntu 20.04.4 LTS 这个没啥好说的,都是搞机的,用之前编译 aosp 的 linux 环境就行,有小伙伴担心会把之前的环境搞崩, 也有用 docker 编译的,我这里就直接在 aosp 环境下搞了,还省事。 安装下面这三东西,是为了下载 Harmony 源码 sudo apt install curl sudo apt install python3

    2024年02月05日
    浏览(54)
  • OpenHarmony 3.2 Release特性更新简析

      1. ArkUI 组件能力增强 支持XComponent控件,可用于EGL/OpenGL ES和媒体数据写入,并在XComponent组件显示;通过XComponent组件,配合NDK能力,构建C++/ArkTS混合开发能力,支持游戏、媒体应用开发 支持AbilityComponent控件,支持嵌入其他应用作为控件(Component)显示。 增加基础的ArkTS卡片

    2023年04月21日
    浏览(37)
  • Ubuntu下运行QEMU模拟riscv64跑Debian

    1.安装QEMU 下载地址: https://www.qemu.org/download/ 建议选择稳定版本,下载后解压,然后make wget https://download.qemu.org/qemu-8.0.3.tar.xz tar xjvf qemu-8.0.3.tar.xz cd qemu-8.0.3 ./configure --enable-kvm --enable-virtfs make --enable-virtfs 用户虚拟机和宿主机之间共享文件 2.安装u-boot-qemu sudo apt install u-boot-qe

    2024年02月10日
    浏览(38)
  • OpenHarmony应用签名 - 系统应用签名(4.0-Release)

    开发环境:Windows 11 DevEco Studio 版本:DevEco Studio 4.0 Release(4.0.0.600) SDK 版本:4.0.10.15(Full SDK) 开发板型号:DAYU 200(RK3568) 系统版本:OpenHarmony-4.0-Release 示例工程:Applications_SystemUI OpenHarmony开源社区提供了标准系统上的部分系统应用,如桌面、SystemUI、设置等,为开发者提

    2024年04月11日
    浏览(41)
  • OpenHarmony SystemUI 3.2Release签名和编译

    IDE版本:DevEco Studio 3.1Release(3.1.0.500) SDK版本:3.2.14.5 Full-SDK 设备:RK3568 3.2release(3.2.15.2)   链接:https://gitee.com/openharmony/applications_systemui/tree/OpenHarmony-3.2-Release/ 选择OpenHarmony-3.2-Release分支,点击克隆/下载 -- 下载ZIP; 注意 :下载ZIP可以直接下载OpenHarmony-3.2-Release分支的,

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包