Linux,Unix,BSD/Jetson

[Jetson] modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.10.104-tegra

채윤아빠 2023. 10. 17. 22:06
728x90
반응형

문제점 및 증상

DeepStream python 예제를 "nvcr.io/nvidia/deepstream-l4t:6.3-samples" 컨테이너를 이용하여 실행하려던 중 다음과 같은 오류가 발생하였고, 이를 해결하는 과정일 정리해 둡니다.

"nvcr.io/nvidia/deepstream-l4t:6.3-samples" 컨테이너는 다음과 같이 실행하였습니다.

docker run -it --rm --net=host --runtime nvidia --gpus all --name=ds \
 -v /tmp/.X11-unix/:/tmp/.X11-unix \
 -v ~/work:/workspace -w /workspace \
 nvcr.io/nvidia/deepstream-l4t:6.3-samples

위와 같이 실행된 컨테이너에서 DeepStream python 예제를 실행하면 다음과 같은 오류가 발생합니다.

root@nvidia-desktop:/workspace/deepstream_python_apps/apps/deepstream-test1# python3 deepstream_test_1.py /opt/nvidia/deeepstream/deepstream/samples/streams/sample_720p.mp4
Creating Pipeline 

Creating Source 

Creating H264Parser 

Creating Decoder 

modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.10.104-tegra
Creating nv3dsink 

Playing file /opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4 
Adding elements to Pipeline 

Linking elements in the Pipeline 

Starting pipeline 

Error: gst-core-error-quark: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure. (4): gstbasesink.c(5367): gst_base_sink_change_state (): /GstPipeline:pipeline0/GstNv3dSink:nv3d-sink:
Failed to start

해결 방법

컨테이너 내부에서 "/lib/modules/5.10.104-tegra" 폴더를 확인해 봤는데, 아예 "/lib/modules" 폴더가 존재하지 않았습니다.

그래서 다음과 같이 컨테이너를 실행하는 스크립트를 변경하여 실행하였습니다.

docker run -it --rm --net=host --runtime nvidia --gpus all --name=ds \
 -v /lib/modules:/lib/modules \
 -v /tmp/.X11-unix/:/tmp/.X11-unix \
 -v ~/work:/workspace -w /workspace \
 nvcr.io/nvidia/deepstream-l4t:6.3-samples

위와 같이 컨테이너를 실행하였더니, "modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.10.104-tegra" 관련 오류는 사라졌습니다.