202408830测试RK3588的rockit/VI的编译

news2024/9/28 3:19:01

202408830测试RK3588的rockit/VI的编译
2024/8/30 14:58


前言
环境介绍:
1.编译环境
Ubuntu 20.04.6 LTS

rootroot@rootroot-desktop:~$ 
rootroot@rootroot-desktop:~$ cat /etc/issue
Ubuntu 20.04.6 LTS \n \l

rootroot@rootroot-desktop:~$ 


2.SDK版本:rk3568_linux_5.10
内核版本:linux-5.10.198

Y:\repo_rk3588_20240508\kernel\.config
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 5.10.198 Kernel Configuration
#


3.单板:
友善之臂的NanoPi T6
香橙派Orange Pi5 Plus


一、编译rockit组件包
使用5.10版本编译buildroot,需要将虚拟机内存调整到8GB以上,因为默认编译采用多线程,导致内存不足出现个别包无法编译导致固件无法编译完成。
rockit组件包在5.10版本在编译buildroot系统的时候是自动编译的,并且会安装到编译的系统里面。固件烧录后在单板直接测试即可。此处跳过系统,单领出来编译。
系统编译完成后存放默认路径

【RK3568的位置,RK3588默认不编译rockit?】
/home/zfeng/rk3568_linux_5.10/buildroot/output/rockchip_rk3568/build/rockit/


进入原来SDK组件存放路径:
rootroot@rootroot-desktop:~$ cd ~/repo_rk3588_20240508/external/rockit/
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ ll
total 28
drwxrwxr-x  5 rootroot rootroot 4096 8月  29 17:29 ./
drwxrwxr-x 27 rootroot rootroot 4096 8月  29 17:29 ../
-rw-rw-r--  1 rootroot rootroot  541 8月  29 17:29 CMakeLists.txt
lrwxrwxrwx  1 rootroot rootroot   40 8月  29 17:29 .git -> ../../.repo/projects/external/rockit.git
drwxrwxr-x  4 rootroot rootroot 4096 8月  29 17:29 lib/
drwxrwxr-x  5 rootroot rootroot 4096 8月  29 17:29 mpi/
-rwxrwxr-x  1 rootroot rootroot 1762 8月  29 17:29 README.md*
drwxrwxr-x  4 rootroot rootroot 4096 8月  29 17:29 tgi/
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ touch toolchainfile.cmake
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ cat toolchainfile.cmake 

rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ 


rockit采用cmake,我们需要指定交叉编译器路径
编译rockit不能使用SDK默认编译kernel的交叉编译,需要采用编译buildroot的,而编译buildroot的编译器SDK并没有存放,需要编译过buildroot之后才可以用。
buildroot编译器路径为
/home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/host/bin/aarch64-buildroot-linux-gnu-gcc

在rockit里面新建toolchainfile.cmake,添加下面内容,指定cmake交叉编译器

# Example toolchain.cmake content
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

# 指定交叉编译器路径
string(REPLACE "/share/buildroot" "" RELOCATED_HOST_DIR /home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/host/share/buildroot)

set(CMAKE_C_COMPILER "${RELOCATED_HOST_DIR}/bin/aarch64-buildroot-linux-gnu-gcc")
set(CMAKE_CXX_COMPILER "${RELOCATED_HOST_DIR}/bin/aarch64-buildroot-linux-gnu-g++")

# 设置目标系统根目录
set(CMAKE_FIND_ROOT_PATH
/home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/target/)

# 配置 CMake 查找程序和库文件的方式
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)


新建build文件夹

rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ mkdir build
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ ll
total 40
drwxrwxr-x  6 rootroot rootroot 4096 8月  30 14:54  ./
drwxrwxr-x 27 rootroot rootroot 4096 8月  30 14:50  ../
drwxrwxr-x  2 rootroot rootroot 4096 8月  30 14:54  build/
-rw-rw-r--  1 rootroot rootroot  541 8月  29 17:29  CMakeLists.txt
lrwxrwxrwx  1 rootroot rootroot   40 8月  29 17:29  .git -> ../../.repo/projects/external/rockit.git
drwxrwxr-x  4 rootroot rootroot 4096 8月  29 17:29  lib/
drwxrwxr-x  5 rootroot rootroot 4096 8月  29 17:29  mpi/
-rwxrwxr-x  1 rootroot rootroot 1762 8月  29 17:29  README.md*
drwxrwxr-x  4 rootroot rootroot 4096 8月  29 17:29  tgi/
-rw-rw-r--  1 rootroot rootroot  992 8月  30 14:54  toolchainfile.cmake
-rwx------  1 rootroot rootroot  736 8月  30 14:51 'toolchainfile - 副本.cmake'*
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit$ cd build/


进入build文件夹,执行cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchainfile.cmake

rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchainfile.cmake
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Check for working C compiler: /home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/host/bin/aarch64-buildroot-linux-gnu-gcc
-- Check for working C compiler: /home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/host/bin/aarch64-buildroot-linux-gnu-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/host/bin/aarch64-buildroot-linux-gnu-g++
-- Check for working CXX compiler: /home/rootroot/repo_rk3588_20240508/buildroot/output/rockchip_rk3588/host/bin/aarch64-buildroot-linux-gnu-g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Build rockit mpi
-- Build WITH linker libs for Linux
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rootroot/repo_rk3588_20240508/external/rockit/build
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ ll
total 48
drwxrwxr-x 4 rootroot rootroot  4096 8月  30 14:55 ./
drwxrwxr-x 6 rootroot rootroot  4096 8月  30 14:54 ../
-rw-rw-r-- 1 rootroot rootroot 15022 8月  30 14:55 CMakeCache.txt
drwxrwxr-x 4 rootroot rootroot  4096 8月  30 14:55 CMakeFiles/
-rw-rw-r-- 1 rootroot rootroot  1745 8月  30 14:55 cmake_install.cmake
-rw-rw-r-- 1 rootroot rootroot 10905 8月  30 14:55 Makefile
drwxrwxr-x 5 rootroot rootroot  4096 8月  30 14:55 mpi/
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ 


等命令执行完再执行make即可:

rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ make
Scanning dependencies of target rt_test_comm
[  3%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_argparse.cpp.o
[  6%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_utils.cpp.o
[ 10%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_bmp.cpp.o
[ 13%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_imgproc.cpp.o
[ 17%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_sys.cpp.o
[ 20%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_vdec.cpp.o
[ 24%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_vo.cpp.o
[ 27%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_comm_ao.cpp.o
[ 31%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/tmedia/test_comm_tmd.cpp.o
[ 34%] Building CXX object mpi/example/common/CMakeFiles/rt_test_comm.dir/test_mod_vpss.cpp.o
[ 37%] Linking CXX static library librt_test_comm.a
[ 37%] Built target rt_test_comm
Scanning dependencies of target rk_mpi_adec_test
[ 41%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_adec_test.dir/test_mpi_adec.cpp.o
[ 44%] Linking CXX executable rk_mpi_adec_test
[ 44%] Built target rk_mpi_adec_test
Scanning dependencies of target rk_mpi_mb_test
[ 48%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_mb_test.dir/test_mpi_mb.cpp.o
[ 51%] Linking CXX executable rk_mpi_mb_test
[ 51%] Built target rk_mpi_mb_test
Scanning dependencies of target rk_mpi_vdec_test
[ 55%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_vdec_test.dir/test_mpi_vdec.cpp.o
[ 58%] Linking CXX executable rk_mpi_vdec_test
[ 58%] Built target rk_mpi_vdec_test
Scanning dependencies of target rk_mpi_ai_test
[ 62%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_ai_test.dir/test_mpi_ai.cpp.o
[ 65%] Linking CXX executable rk_mpi_ai_test
[ 65%] Built target rk_mpi_ai_test
Scanning dependencies of target rk_mpi_aenc_test
[ 68%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_aenc_test.dir/test_mpi_aenc.cpp.o
[ 72%] Linking CXX executable rk_mpi_aenc_test
[ 72%] Built target rk_mpi_aenc_test
Scanning dependencies of target rk_mpi_sys_test
[ 75%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_sys_test.dir/test_mpi_sys.cpp.o
[ 79%] Linking CXX executable rk_mpi_sys_test
[ 79%] Built target rk_mpi_sys_test
Scanning dependencies of target rk_mpi_vo_test
[ 82%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_vo_test.dir/test_mpi_vo.cpp.o
[ 86%] Linking CXX executable rk_mpi_vo_test
[ 86%] Built target rk_mpi_vo_test
Scanning dependencies of target rk_mpi_mmz_test
[ 89%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_mmz_test.dir/test_mpi_mmz.cpp.o
[ 93%] Linking CXX executable rk_mpi_mmz_test
[ 93%] Built target rk_mpi_mmz_test
Scanning dependencies of target rk_mpi_avio_test
[ 96%] Building CXX object mpi/example/mod/CMakeFiles/rk_mpi_avio_test.dir/sys/test_sys_avio.cpp.o
[100%] Linking CXX executable rk_mpi_avio_test
[100%] Built target rk_mpi_avio_test
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build$ 


最后将编译完成的可执行文件放到开发板即可,可执行文件路径为

rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build/mpi/example$ cd mod/
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build/mpi/example/mod$ ll
total 428
drwxrwxr-x  3 rootroot rootroot  4096 8月  30 14:55 ./
drwxrwxr-x  5 rootroot rootroot  4096 8月  30 14:55 ../
drwxrwxr-x 11 rootroot rootroot  4096 8月  30 14:55 CMakeFiles/
-rw-rw-r--  1 rootroot rootroot 11712 8月  30 14:55 cmake_install.cmake
-rw-rw-r--  1 rootroot rootroot 23121 8月  30 14:55 Makefile
-rwxrwxr-x  1 rootroot rootroot 32800 8月  30 14:55 rk_mpi_adec_test*
-rwxrwxr-x  1 rootroot rootroot 28624 8月  30 14:55 rk_mpi_aenc_test*
-rwxrwxr-x  1 rootroot rootroot 59976 8月  30 14:55 rk_mpi_ai_test*
-rwxrwxr-x  1 rootroot rootroot 23720 8月  30 14:55 rk_mpi_avio_test*
-rwxrwxr-x  1 rootroot rootroot 52768 8月  30 14:55 rk_mpi_mb_test*
-rwxrwxr-x  1 rootroot rootroot 24080 8月  30 14:55 rk_mpi_mmz_test*
-rwxrwxr-x  1 rootroot rootroot 28592 8月  30 14:55 rk_mpi_sys_test*
-rwxrwxr-x  1 rootroot rootroot 38176 8月  30 14:55 rk_mpi_vdec_test*
-rwxrwxr-x  1 rootroot rootroot 88184 8月  30 14:55 rk_mpi_vo_test*
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build/mpi/example/mod$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build/mpi/example/mod$ pwd
/home/rootroot/repo_rk3588_20240508/external/rockit/build/mpi/example/mod
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build/mpi/example/mod$ 
rootroot@rootroot-desktop:~/repo_rk3588_20240508/external/rockit/build/mpi/example/mod$ 


二、测试:由于RK3588的rockit/VI默认不打开/关闭rk_mpi_vi_test。本文就不安排测试了!


参考资料:
https://blog.csdn.net/zfenggo/article/details/138923252
rk3568 rockit编译测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8,sql查询条件查询语句

查询员工表结构,并分析 DESC 表名;DESC t_employee; 查询出生日期在 1990-01-01 和 1995-01-01 之间的员工信息。between 区间比较这句话的意思就是查看所有员工的生日在1990-01-01和1995-01-01之间的SELECT * FROM 表名 WHERE 生日 between 1990-01-01 AND 1995-0…

共绘国际智图:Elvy与图为科技携手探索边缘计算新境界

近日,巴西知名企业Elvy到访深圳图为科技,共议“合作开发边缘计算机及联合开拓海外市场”事宜。 在全球化日益加深的今天,技术的跨界合作正成为推动行业进步的重要力量。8月23日,一场旨在深化国际合作、共推边缘计算技术发展的会议…

云 VS 边缘计算,关系与区别是什么?

云计算和边缘计算的区别是什么? 云是一种 IT 环境,可以抽象、汇集和共享整个网络中的 IT 资源。边缘是网络边缘的计算位置,以及这些物理位置上的硬件和软件。是在云中运行工作负载,而边缘计算是在边缘设备上运行工作负载。 边缘…

马丁格尔交易策略Anzo Capital指出问题核心,那就是保证金

使用马丁格尔交易策略进行外汇交易时,Anzo Capital 强调了保证金管理的重要性。通过精准计算和策略规划,Anzo Capital 帮助交易者在波动的市场中保持资金安全,并最大化投资回报。 Anzo Capital 提醒交易者,了解波动回弹至关重要&…

渗透测试中最常见的安全漏洞有哪些

目录 常见的安全漏洞 拓展 渗透测试中如何检测SQL注入漏洞? 如何防范跨站脚本攻击(XSS)? 文件上传漏洞通常是如何被利用的? 思维导图 常见的安全漏洞 在渗透测试中,以下是一些最常见的安全漏洞: SQL注入&#x…

计算机毕设推荐-基于python的超市数据处理可视化分析

💖🔥作者主页:毕设木哥 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 实战项目 文章目录 实战项目 一、基于python的超市数据处理可…

AI编码公司Magic获得近5亿美元巨额投资

Magic,一家专注于生成式人工智能AI编码的初创公司,最近在AI领域取得了显著的成就。该公司通过创建模型来生成代码并自动执行软件开发任务,成功吸引了包括前谷歌CEO埃里克施密特在内的一系列知名投资者的关注,并完成了一轮3.2亿美元…

【MySQL 12】事务管理 (带思维导图)

文章目录 🌈 一、事务的基本概念⭐ 1. 事务是什么⭐ 2. 事务的特性 🌈 二、事务的版本支持🌈 三、事务的提交方式⭐ 1. 查看事务的提交方式⭐ 2. 设置事务的提交方式 🌈 四、事务的特性证明⭐ 1. 事务的常规操作⭐ 2. 证明事务的原…

mapbox-gl 常用Expressions表达式

文章目录 一、前言1.1 概念1.2 Mapbox gl提供的表达式计算器 二、所有支持的运算符2.1 颜色运算符2.1.1 rgb2.1.2 rgba2.1.3 hsl2.1.4 hsla2.1.5 to-rgba 2.2 Math 数学计算运算符2.2.1 , -, *, /, %, ^2.2.2 abs, ceil, floor, round2.2.3 sin, cos, tan, asin, acos, atan2.2…

Hbuilder创建的项目(uniApp + Vue3)中引入UnoCSS原子css引擎

这里是UnoCSS的官网介绍 UnoCS通过简化和优化CSS的编写过程来提高Web开发的效率和可维护性。好处是: 提升开发效率提升开发效率提高一致性增强灵活性易于维护方便的集成与配置 同时还支持预设变量和规则。这些可参看官网进行配置。Unocss通过其原子化方法、高度的…

STL-常用算法

概述&#xff1a; 算法主要由头文件<algorithm><functional><numeric>组成<algorithm>是所有STL头文件最大的一个&#xff0c;范围涉及到比较&#xff0c;交换&#xff0c;遍历操作&#xff0c;复制&#xff0c;修改等<numeric>体积很小&#x…

华硕天选Air:开学季的性价比之巅

正值开学季&#xff0c;华硕天选Air全能本以8999元的首发价回归&#xff0c;为学生和需求高性能笔记本的用户带来了超值的选择。 这款笔记本以其轻薄设计和强悍性能&#xff0c;成为市场上的热点。 轻薄设计&#xff0c;潮流先锋 华硕天选Air 2024采用了全新模具设计&#xf…

如何选择生信云服务器

少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学&#xff08;生信&#xff09;分析的需求日益增加&#xff0c;选择一款合适的生信云服务器变得尤为重要。一个优秀的生信云服务器不仅能够提供强大的计算能力和灵活的存储空间&…

【数据结构】排序算法篇一

【数据结构】排序算法篇一 1. 插入排序&#xff08;1&#xff09;基本思想&#xff1a;&#xff08;2&#xff09;动态图解&#xff1a;&#xff08;3&#xff09;具体步骤&#xff1a;&#xff08;4&#xff09;代码实现&#xff1a;&#xff08;5&#xff09;特性总结&#x…

数据治理下的主数据管理与KPaaS的应用

在2024中国国际大数据产业博览会&#xff08;简称“数博会”&#xff09;上&#xff0c;数据治理作为大数据领域的热点主题之一&#xff0c;引起了广泛关注。这一议题之所以成为焦点&#xff0c;是因为在数字化时代&#xff0c;数据已经上升为企业最具价值的战略资源之一。随着…

【区块链 + 智慧文旅】城商行旅游金融联盟:旅游金融联盟平台 | FISCO BCOS应用案例

深圳优讯基于FISCO BCOS搭建面向联盟成员间使用的开 放式客户服务平台&#xff0c;平台于2018年6月底上线。 成员机构之间共享产品、流量、征信和金融资源&#xff0c;整合旅游产业链资源&#xff0c;实现跨地域的旅游金融协作。

【STM32单片机_(HAL库)】3-3【中断EXTI】使用SysTick模拟多线程

1.硬件 STM32单片机最小系统 LED灯模块 硬件接线 STM32LED1LED2PB8负极PB9负极5V5V5V 2.软件 led、tasks驱动文件添加GPIO常用函数main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "tasks.h"int mai…

.NET HandyControl 深度解析:一个现代化的UI控件库

文章目录 前言一、选择HandyControl的原因二、如何使用HandyControl1.安装HandyControl2.使用代码例子 总结 前言 在.NET开发领域&#xff0c;UI&#xff08;用户界面&#xff09;设计的美观性和易用性对于应用程序的成功至关重要。为了帮助开发者快速构建现代化、美观且用户友…

日常避坑指南:重试装饰器的正确使用方式

在日常开发中,重试机制是提高代码健壮性的重要手段之一,尤其是在处理网络请求时,遇到超时或临时性错误的情况并不少见。通过重试,我们可以在一定程度上降低这些临时问题带来的影响。然而,如果使用不当,重试机制本身也可能引发新的问题,甚至让问题更加难以排查。 问题背…

Framework | Android语音识别框架与语音交互概览

Framework | Android语音识别框架与语音交互概览 随着智能设备的普及,语音识别与语音交互技术在现代生活中扮演着越来越重要的角色。无论是在驾驶场景中解放用户的双手,还是在智能家居中通过语音控制设备,语音技术的应用场景已经深入到各个领域。本文将深入探讨Android平台…