在nvidia jetson nano docker容器中运行硬件加速的应用程序

问题描述

按照https://github.com/NVIDIA/nvidia-docker/wiki/NVIDIA-Container-Runtime-on-Jetson上的说明,我正在为在jetson nano中的docker容器中运行GUI应用进行一些测试,我正在使用以下代码进行测试:

docker run --runtime nvidia --network host -it -e disPLAY=$disPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/l4t-base:r32.4.3


apt-get update && apt-get install -y mesa-utils

export disPLAY=:0.0 && glxgears

一切正常,在此示例中,我以主机模式(-网络主机)运行容器,但是在删除--network host并运行后,我有一个应用程序要运行与主机隔离的容器容器,执行相同的步骤,我得到以下错误

root@056440576e00:/# glxgears 
Segmentation fault (core dumped)

strace日志:

socket(AF_UNIX,SOCK_DGRAM,0)          = 7
connect(7,{sa_family=AF_UNIX,sun_path=@"nvidia20ac498a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"},66) = -1 ECONNREFUSED (Connection refused)
close(7)                                = 0
--- SIGSEGV {si_signo=SIGSEGV,si_code=SEGV_MAPERR,si_addr=0x28c48} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault
root@056440576e00:/# 

gdb日志:

(gdb) r
Starting program: /usr/bin/glxgears 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV,Segmentation fault.
0x0000007fb78736a4 in ?? () from /usr/lib/aarch64-linux-gnu/libGLX_nvidia.so.0
(gdb) 

为什么我只能在隔离模式下运行细分错误。也许除了/tmp/.X11-unix/:/tmp/.X11-unix

之外,我还必须挂载其他东西

作为旁注,主机正在运行yocto(带有dunfell-l4t-r32.4.3分支的Meta-tegra)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)