記錄RK3588的docker中啟動rviz2報錯

安裝好rk3588 的docker,pull了ros的完整鏡像后,想要啟動rviz但是報錯,下面是我的踩坑記錄

0.原始的啟動鏡像的腳本:

sudo docker run -it  --rm --privileged --net=host -e DISPLAY=$DISPLAY  --name=my_image_name \-e DISPLAY=$DISPLAY \-v /tmp/.X11-unix/:/tmp/.X11-unix \-v /dev/shm:/dev/shm \-v /home/$USER/ros:/ros_pro \$ARM_IMAGE

1.掛載路徑 /usr/lib/aarch64-linux-gnu、/dev/dri 和 XDG_RUNTIME_DIR等,掛載的原因是因為要使用宿主機的gpu進行渲染。(下面的是錯誤的)

sudo docker run -it  --rm --privileged --net=host -e DISPLAY=$DISPLAY  --name=my_image_name \-e DISPLAY=$DISPLAY \-v /tmp/.X11-unix/:/tmp/.X11-unix \-v /dev/shm:/dev/shm \-v /home/$USER/ros:/ros_pro \--device=/dev/dri:/dev/dri \-e XDG_RUNTIME_DIR=/run/user/$(id -u) \-v /run/user/$(id -u):/run/user/$(id -u) \-v /usr/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu \$ARM_IMAGE

其中/usr/lib/aarch64-linux-gnu的掛載是錯誤的,后面會遇到相關的問題

2.docker環境內運行rviz2顯示缺少如下文件

缺少libtinyxml.so.2.6.2
缺少libtinyxml2.so.6
缺少libassimp.so.5
缺少libspdlog.so.1

在宿主機上安裝如下軟件包

sudo apt-get install libtinyxml2.6.2v5 libtinyxml2-6 libassimp5  libspdlog

3.在docker中啟動還是報錯如下

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root
arm_release_ver:g13p0-0leac0,rk_so_ver: 10
Segmentation fault (core dumped)

4.在宿主機上面的錯誤,顯示驅動沒有安裝好

運行指令glxinfo | grep "OpenGL" 報錯如下

Error: couldn't find RGB GLX visual or fbconfig

解決方案

sudo apt-get install --reinstall libgl1-mesa-dri libgl1-mesa-glx libglx-mesa0 mesa-utils

然后重啟!重啟!重啟!

5.重啟后,在宿主機上重新運行glxinfo | grep "OpenGL"還是報錯:

libGL error:failed to create dri screen
libGL error : failed to load driver:rockchip
libGL error:failed to create dri screen
libGL error : failed to load driver:rockchip
但是后面是有一些正確的信息

6.在啟動docker的命令中如果掛在了 /usr/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu 是無法啟動rviz的

容器里原本的 /usr/lib/aarch64-linux-gnu 是和它自己安裝的系統、ROS、RViz 依賴配套的。
你一掛載,就把它換成了宿主機的版本(Mesa、GL、Qt、OGRE 等版本全換了)。
容器的 ROS2/RViz 可能和宿主機的動態庫版本不兼容 → 程序直接崩潰

所以選擇掛載gpu有關的即可
-v /usr/lib/aarch64-linux-gnu/dri:/usr/lib/aarch64-linux-gnu/dri

正確的啟動容器指令如下

sudo docker run -it  --rm --privileged --net=host -e DISPLAY=$DISPLAY  --name=my_image_name \-e DISPLAY=$DISPLAY \-v /tmp/.X11-unix/:/tmp/.X11-unix \-v /dev/shm:/dev/shm \-v /home/$USER/ros:/ros_pro \--device=/dev/dri:/dev/dri \-e XDG_RUNTIME_DIR=/run/user/$(id -u) \-v /run/user/$(id -u):/run/user/$(id -u) \-v /usr/lib/aarch64-linux-gnu/dri:/usr/lib/aarch64-linux-gnu/dri \$ARM_IMAGE

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

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

相關文章

ThingJS 新手學習技巧

一、ThingJS 基礎認知 1.1 ThingJS 是什么 ThingJS 是一款基于 WebGL 技術的 3D 可視化開發平臺,它為開發者提供了簡單易用的 API 和豐富的 3D 場景組件,讓開發者能夠快速構建出高質量的 3D 可視化應用。無論是智慧園區、智慧樓宇、智慧交通還是工業監…

【軟考架構】需求工程中,系統分析與設計的結構化方法

結構化方法誕生于20世紀70年代,是為了應對當時日益復雜的軟件系統開發挑戰(如“軟件危機”)而提出的。它強調系統性、規范性、分解和抽象,目標是提高軟件開發的效率、質量和可維護性,降低復雜性。 核心思想&#xff1a…

FPGA常用資源之IO概述

目錄 一、前言 二、I/O資源 2.1 I/O端口資源 2.1.1 IOB 2.1.2 ILOGIC/OLOGIC 2.2 ZHOLD 2.3 IDDR/ODDR 2.4 IDELAY 2.5 ISERDES/OSERDES 2.6 IO Logic Resource連接 2.7 Device示意圖 三、工程示例 3.1 工程代碼 3.2 Device結果 一、前言 FPGA芯片從內部結構看主…

密集遮擋場景識別率↑31%!陌訊輕量化部署方案在智慧零售的實戰解析

一、零售業痛點:當技術遇上客流洪流據《2024智慧零售技術白皮書》統計,高峰期超市顧客密度超3人/㎡時,??目標漏檢率高達48%??。核心挑戰包括:??動態遮擋??:購物車/貨架造成的持續性目標截斷??計算瓶頸??&a…

力扣(O(1) 時間插入、刪除和獲取隨機元素)

一、題目分析(一)功能需求 我們需要實現 RandomizedSet 類,包含以下功能: RandomizedSet():初始化數據結構。bool insert(int val):當元素 val 不存在時,插入該元素并返回 true;若已…

前端開發的面試自我介紹與準備

前端面試自我介紹不知道怎么說的,直接參考下面的模板,然后換成你的經歷 自我介紹控制在1分鐘左右,千萬不要說的太久,面試官會煩的,但是又不好意思打斷你 切記面試是人和人面對面的交流,要有,面試…

10、系統規劃與分析

一、系統規劃步驟系統規劃步驟對現有系統進行初步調查分析和確定系統目標分析子系統的組成和基本功能擬定系統的實施方案擬定系統的可行性研究指定系統建設方案系統規劃階段的產出物:可行性研究報告、系統設計任務書。習題1、擬定系統的實施方案是在系統規劃階段完成…

Nginx學習筆記(六)—— Nginx反向代理

📚Nginx學習筆記(六)—— Nginx反向代理 📌 一、反向代理核心概念 本質原理: #mermaid-svg-UkFRDp2Ut7MK5T2N {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…

三伍微電子GSR2406 IoT FEM 2.4G PA 射頻前端模組芯片

三伍微電子GSR2406 IoT FEM 2.4G PA 射頻前端模組芯片規格書Product Description The GSR2406 is a high-performance, fully integrated RF front-end module (FEM) designed for Zigbee technology, Thread, and Bluetooth (including low energy) applications. The GSR2406…

開發避坑指南(24):RocketMQ磁盤空間告急異常處理,CODE 14 “service not available“解決方案

異常信息 Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 14 DESC: service not available now, maybe disk full, CL: 0.94 CQ: 0.94 INDEX: 0.94, maybe your broker machine memory too small.異常背景 一個項目里面用到了rocketmq&#x…

開源WAF新標桿:雷池SafeLine用語義分析重構網站安全邊界

文章目錄前言【視頻教程】1.安裝Docker2.本地部署SafeLine3.使用SafeLine4.cpolar內網穿透工具安裝5.創建遠程連接公網地址6.固定Uptime Kuma公網地址前言 當個人或企業站點上線后面臨的首要威脅往往來自網絡攻擊——據統計,超過60%的Web應用漏洞利用嘗試在流量到達…

Mac M1探索AnythingLLM+SearXNG

SearXNG 能聚合來自多達 200 多個搜索服務,可私有化部署,并提供了靈活自定義選項。 AnythingLLMSearXNG,剛好能解決AnythingLLM因為網絡限制導致web search不可用的問題。 1 安裝docker 下載mac m1版本的docker并安裝。 https://docs.dock…

模式設計:策略模式及其應用場景

簡介 策略模式(Strategy Pattern)是一種行為型設計模式,它允許在運行時動態選擇算法或行為。核心思想是將算法封裝成獨立的類(策略),使它們可以相互替換,讓算法的變化獨立于使用它的客戶端。 核心思想 解耦:將算法的定義與使用分離。每個算法封裝起來,使它們可以互…

Squash Merge(壓縮合并)和Rebase Merge(變基合并)介紹

文章目錄**1. Squash Merge(壓縮合并)****定義****操作步驟****特點****優點****缺點****2. Rebase Merge(變基合并)****定義****操作步驟****特點****優點****缺點****3. 對比總結****4. 選擇建議****5. 示例場景****Squash Merg…

Linux編程 —— framebuffer

一、framebuffer概念framebuffer:幀緩沖,幀緩存技術Linux內核專門為圖形化顯示提供的一套應用程序接口。二、基本操作步驟1. 打開顯示設備(/dev/fb0) 2. 獲取顯示設備相關參數(分辨率,像素格式)---》ioctl 3. 建立顯存…

文件編輯html

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文件行內容編輯器</title><script src&…

具有熔斷能力和活性探測的服務負載均衡解決方案

一、整體架構設計 1.核心組件 負載均衡器&#xff1a;負責選擇可用的服務節點健康檢查器&#xff1a;定期檢測服務節點的可用性服務節點管理&#xff1a;維護所有可用節點的狀態信息 2.負載均衡策略 輪詢(Round Robin)隨機(Random)加權輪詢(Weighted Round Robin)最少連接(Leas…

技術演進中的開發沉思-62 DELPHI VCL系列:VCL下的設計模式

今天聊聊設計模式&#xff0c;當然這個章節目前僅限于DELPHI VCL,因為接下來梳理的Factory/Factory Method、Bootstrap 和 ForEach 這三種設計樣例&#xff0c;看似獨立&#xff0c;卻在實際開發中相互配合&#xff0c;共同構建起高效、靈活的程序架構。在 DELPHI VCL 開發的技…

Docker 101:面向初學者的綜合教程

掌握 Docker 已成為軟件開發中的一項關鍵技能。本教程探討了容器化的世界&#xff0c;包括其核心概念、優缺點&#xff0c;以及開始使用容器化的分步指南。 無論是 Docker 的新手&#xff0c;還是希望復習基礎知識的更有經驗的開發人員&#xff0c;本指南都能滿足需求。 什么…

RTOS YAFFS

在 YAFFS (Yet Another Flash File System) 的語境中&#xff0c;“Check Point” 并不是一個標準的、核心的官方術語。它更可能是對 YAFFS 關鍵機制 Summary 或 Checkpointing 功能的非正式表述或理解偏差。其核心含義是指 YAFFS 在特定時刻保存文件系統關鍵元數據的狀態&…