RK3588 HDMI-RX 驅動、RGA 加速與 OpenCV GStreamer 支持完整指南

一、環境檢測與前置依賴

確認內核與 HDMI-RX 節點:

uname -a
# 輸出:6.1.0-1025-rockchip ...dmesg | grep -i hdmirx
# 應能看到 hdmirx-controller 節點:
# fdee0000.hdmirx-controller driver probe ok!

如果僅出現:

rockchip-dmc dmc: hdmirx_rate = 2112000000

說明設備樹已識別 hdmirx,但沒有加載 Overlay (rk3588-hdmirx.dtbo)

更新系統依賴:

sudo apt update
sudo apt install -y \gstreamer1.0-plugins-base gstreamer1.0-plugins-good \gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-tools v4l-utils

二、啟用 HDMI-RX Overlay

  1. 獲取或編譯 Overlay 文件
    從 Joshua-Riek Rockchip Ubuntu 倉庫 下載 rk3588-hdmirx.dtbo,拷貝到固件路徑:

sudo cp rk3588-hdmirx.dtbo \/lib/firmware/6.1.0-1025-rockchip/device-tree/rockchip/overlay/
  1. 編輯 u-boot 配置

sudo vim /etc/default/u-boot

取消注釋并加入:

U_BOOT_FDT_OVERLAYS="device-tree/rockchip/overlay/rk3588-hdmirx.dtbo"
  1. 更新并重啟

sudo u-boot-update
sudo reboot
  1. 驗證驅動加載

dmesg | grep -i hdmirx
v4l2-ctl --list-devices
ls /dev/video*
# 應看到 /dev/video0 (hdmirx)

三、安裝 RGA 硬件加速支持

  1. 安裝 librga 并生成 pkg-config

git clone https://github.com/airockchip/librga.git
cd librgasudo mkdir -p /usr/local/lib/pkgconfig
sudo tee /usr/local/lib/pkgconfig/librga.pc > /dev/null <<'EOF'
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/includeName: librga
Description: Rockchip Raster Graphic Acceleration library
Version: 2.2
Libs: -L${libdir} -lrga
Cflags: -I${includedir}
EOF
  1. 復制頭文件和庫文件

sudo cp -r include/* /usr/local/include/
sudo cp libs/Linux/gcc-aarch64/* /usr/local/lib/
sudo ldconfig
  1. 配置環境變量

echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc
source ~/.bashrc
  1. 測試

pkg-config --modversion librga
# 輸出 2.2(或實際版本)

四、構建 gstreamer-rgaconvert 插件

git clone https://github.com/higithubhi/gstreamer-rgaconvert.git
cd gstreamer-rgaconvert
meson setup build --wipe
ninja -C build
sudo ninja -C build install

安裝完成后,將插件放到 GStreamer 搜索路徑:

sudo cp build/libgstrgaconvert.so /usr/lib/aarch64-linux-gnu/gstreamer-1.0/

測試插件:

gst-inspect-1.0 rgaconvert

五、重建支持 GStreamer 的 OpenCV 5.x

  1. 準備源碼

git clone https://github.com/opencv/opencv.git
cd opencv && git checkout 5.x && cd ..
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib && git checkout 5.x && cd ..
  1. 構建 OpenCV

mkdir build_opencv && cd build_opencvcmake ../opencv \-D CMAKE_BUILD_TYPE=Release \-D CMAKE_INSTALL_PREFIX=~/opencv-gst-install \-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \-D WITH_GSTREAMER=ON \-D WITH_GTK=ON \-D WITH_FFMPEG=ON \-D WITH_V4L=ON \-D BUILD_opencv_highgui=ON \-D OPENCV_ENABLE_NONFREE=ON \-D BUILD_EXAMPLES=OFF \-D PYTHON3_EXECUTABLE=$(which python) \-D PYTHON3_INCLUDE_DIR=$(python -c "from sysconfig import get_paths; print(get_paths()['include'])") \-D PYTHON3_LIBRARY=$(python -c "import sysconfig, sys; print(sysconfig.get_config_var('LIBDIR') + '/libpython' + sys.version[:3] + '.so')") \-D PYTHON3_PACKAGES_PATH=$(python -c "import site; print(site.getsitepackages()[0])")

如果 CMake 輸出:

-- GStreamer: YES
-- Found librga: /usr/local/lib/librga.so

表示 RGA 與 GStreamer 支持已啟用。


六、測試 HDMI 輸入 + RGA 加速

  1. 直接用 GStreamer 測試

DEVICE=/dev/video0
gst-launch-1.0 v4l2src device=$DEVICE io-mode=4 ! \rgaconvert ! \video/x-raw,width=1280,height=720,format=NV12 ! \autovideosink
  1. OpenCV + GStreamer

import cv2pipeline = ("v4l2src device=/dev/video0 io-mode=4 ! ""video/x-raw,format=NV12,width=1920,height=1080 ! ""rgaconvert ! ""video/x-raw,width=1280,height=720,format=NV12 ! ""appsink"
)cap = cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER)while cap.isOpened():ret, frame = cap.read()if not ret:breakcv2.imshow("HDMI-IN with RGA", frame)if cv2.waitKey(1) & 0xFF == 27:  # ESC 退出breakcap.release()
cv2.destroyAllWindows()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90493.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90493.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90493.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AS32A601芯片QSPI 調試技術解析與與實戰經驗分享

一、概述&#xff08;一&#xff09;QSPI 簡介QSPI&#xff08;Quad Serial Peripheral Interface&#xff09;是一種高速串行通信接口&#xff0c;在標準 SPI&#xff08;Serial Peripheral Interface&#xff09;的基礎上擴展至 4 條數據線&#xff08;Quad Mode&#xff09;…

TDengine 轉化函數 TO_TIMESTAMP 用戶手冊

TDengine TO_TIMESTAMP 函數用戶使用手冊 函數概述 TO_TIMESTAMP 是 TDengine 中的標量函數&#xff0c;用于將字符串按照指定格式轉換為時間戳。該函數在數據導入、時間格式轉換、以及處理各種時間字符串格式時非常有用。 語法 TO_TIMESTAMP(ts_str_literal, format_str_liter…

關于我司即將對商業間諜行為進行法律訴訟的通知

最后警告我司所屬社交媒體中所有友商間諜&#xff1a;請于2025年7月26日上午十點前&#xff0c;自行刪除我方好友&#xff0c;并停止通過欺詐行為&#xff08;包括但不限于冒充客戶等&#xff09;盜取我司商業秘密的行為。十點后&#xff0c;我司將開始進行逐一排查&#xff0c…

【打怪升級 - 03】YOLO11/YOLO12/YOLOv10/YOLOv8 完全指南:從理論到代碼實戰,新手入門必看教程

引言&#xff1a;為什么選擇 YOLO&#xff1f; 在目標檢測領域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;系列模型一直以其高效性和準確性備受關注。作為新版本&#xff0c;YOLO系列的新版本總能在前輩的基礎上進行了多項改進&#xff0c;包括更高的檢測精度…

JMeter每次壓測前清除全部以確保異常率準確(以黑馬點評為例、詳細圖解)

目錄 一、前言 二、未清除全部會出現的情況(以樂觀鎖解決超賣問題為例) 三、清除全部就能得到準確的結果 一、前言 在學習黑馬點評之前我并沒有接觸過JMeter這個壓測軟件&#xff0c;然后在黑馬點評視頻中老師也是直接拿起JMeter就開始使用&#xff0c;所以我一直在不斷搜索…

關于新學C++編程Visual Studio 2022開始,使用Cmake工具構建Opencv和SDK在VS里編譯項目開發簡介筆記

1. C 項目build文件夾 2. VS解決方案管理器Solution——.sln文件 3. CMake 自動化構建工具 4. SDK軟件開發工具包作為初學者&#xff0c;從工程項目開始接觸完整一套流程工具和編譯&#xff0c;有助于快速上手。 一、C 項目build文件夾在 VS2022 中打開 C 項目后&#xff0c;在…

測試ppyoloe的小樣本few-shot能力,10張圖片精度達到69.8%

近期公司有個項目&#xff0c;需要解決長尾樣本的問題&#xff0c;所以測試了一下paddlepaddle小樣本的能力。 環境&#xff1a;&#xff1a;T4 、ubuntu 、cuda-11.6 、py3.9、 paddlepaddle-gpu2.6.0、pip install opencv-python4.5.5.64 -i https://pypi.tuna.tsinghua.…

結構化布線系統詳解

1. 結構化布線系統概述 結構化布線系統(Structured Cabling System, SCS)是一種標準化、模塊化的建筑物或建筑群內信息傳輸基礎設施&#xff0c;它為語音、數據、圖像等多媒體業務提供了統一的物理傳輸介質。與傳統的點對點布線方式不同&#xff0c;結構化布線采用層次化、標準…

【Java學習】匿名內部類的向外訪問機制

目錄 一、方法局部變量的訪問 1.生命周期 1.1方法生命周期 1.2匿名實例生命周期 1.3生命超時性 2.變量捕獲 2.1按值捕獲 2.1.1值捕獲優勢 2.1.1.1生命及時訪問 2.1.1.2線程安全 2.1.2常量值捕獲優勢 2.2按引用捕獲 引用捕獲風險 (1)生命超時訪問 (2)線程不安全 …

LinkedList的模擬實現+LinkedList和ArrayList的區別

目錄 LinkedList的模擬實現 什么是雙向鏈表 增加數據 頭插法&#xff1a; 尾插法&#xff1a; 指定的下標插入&#xff1a; 刪除數據 刪除雙向鏈表中出現的第一個key 置空所有數據 LinkedList和ArrayList的區別 順序表對應的集合類是ArrayList&#xff1b;鏈表對應的集…

Vue + WebSocket 實時數據可視化實戰:多源融合與模擬數據雙模式設計

在現代交通大屏項目中&#xff0c;實時數據的采集和可視化尤為重要。本文結合 Vue3 和 ECharts&#xff0c;分享一個支持多 WebSocket 數據源實時合并、模擬數據調試、自動重連的完整設計方案&#xff0c;幫助你快速搭建健壯的數據可視化組件。一、項目背景與核心需求實時接收多…

C#索引器、接口、泛型

以下是對提供的 C# 代碼中涉及的核心知識點的梳理和總結&#xff0c;涵蓋索引器、接口、泛型三大核心內容&#xff0c;以及相關實踐要點&#xff1a;一、索引器&#xff08;Indexer&#xff09;索引器是一種允許類或結構體像數組一樣通過[]語法訪問成員的特殊成員&#xff0c;本…

界面組件DevExpress WPF中文教程:Grid - 如何過濾節點?

DevExpress WPF擁有120個控件和庫&#xff0c;將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序&#xff0c;這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…

Excel——INDEX和MATCH傻傻分不清?

核心邏輯?先用 MATCH 找到目標姓名在表格中的 ?行號&#xff0c;再用 INDEX 根據行號 ?提取對應信息。就像查字典&#xff1a;先用拼音找到字的頁碼&#xff08;MATCH 找行號&#xff09;再翻到該頁看具體解釋&#xff08;INDEX 取數據&#xff09;?分步拆解&#xff08;以…

制造業低代碼平臺實戰評測:簡道云、釘釘宜搭、華為云Astro、金蝶云·蒼穹、斑斑低代碼,誰更值得選?

上回聊了斑斑和簡道云&#xff0c;不少同行私信問我其他幾個低代碼平臺怎么樣&#xff0c;今天就給大家來個"五大門派"終極對決&#xff01; 一、先說痛點 制造業搞數字化最怕三件事&#xff1a; 1.錢花了沒效果&#xff08;大平臺用不起&#xff0c;小工具不夠用&…

Jenkins中HTML文件顯示樣式問題解決方案

Jenkins中HTML文件顯示樣式問題解決方案 問題描述 在Jenkins中歸檔的HTML文件顯示格式失效&#xff0c;樣式無法正常顯示&#xff0c;但在本地瀏覽器中打開卻能正常顯示。 問題原因 Jenkins為了安全考慮&#xff0c;默認設置了嚴格的內容安全策略(Content Security Policy, CSP…

四、配置文件

文章目錄1. 文件類型1.1 properties1.2 yaml1.2.1 簡介1.2.2 基本語法1.2.3 數據類型1.2.4 示例2. 配置提示1. 文件類型 1.1 properties 同以前的properties的用法 1.2 yaml 1.2.1 簡介 YAML 是 “YAML Ain’t Markup Language”&#xff08;YAML 不是一種標記語言&#x…

Python常用醫療AI庫以及案例解析(場景化進階版)

?? 框架應用拓撲圖用例 #mermaid-svg-lZ1J5KCaVWBV2kAu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lZ1J5KCaVWBV2kAu .error-icon{fill:#552222;}#mermaid-svg-lZ1J5KCaVWBV2kAu .error-text{fill:#552222;st…

Python高效操作Kafka實戰指南

Python操作Kafka的高效 以下是使用Python操作Kafka的高效消息發送實例,涵蓋基礎發送、批量處理、異步回調等場景。示例基于confluent-kafka庫(推薦)和kafka-python庫,代碼均經過實測。 流程圖 基礎消息發送(同步) from confluent_kafka import Producerproducer = Pro…

離線快速處理PDF格式轉化的方案

日常辦公中&#xff0c;PDF 幾乎成了我們離不開的文件格式。然而像 WPS 這樣的工具&#xff0c;不少實用功能都需要額外付費才能解鎖。它的打開方式很簡單&#xff0c;雙擊桌面圖標即可運行。它不會彈出主界面&#xff0c;而是默默駐留在系統托盤區&#xff0c;需要時雙擊圖標就…