본문 바로가기
NVIDIA Jeston/Jetson BSP

[Jetson] libv4l2_nvargus.so 메모리 참조 오류

by makepluscode 2022. 1. 13.
반응형

nVidia Jetson libv4l2_nvargus 메모리 참조 오류

USB 카메라 어플리케이션 실행 중, 세그먼트 폴트!

메모리 참조 오류 현상

Jetson 에서 USB  카메라를 연결하고 cheese 실행 시, 잘못된 메모리 참조가 발생하여 어플리케이션이 자동 종료 된다.

nvidia@ax720:~$ cheese -d 0

(cheese:8950): Gtk-WARNING **: 16:56:38.210: Theme parsing error: cheese.css:7:35: The style property GtkScrollbar:min-slider-length is deprecated and shouldn't be used anymore. It will be removed in a future version

Opening in BLOCKING MODE
Segmentation fault (core dumped)

이 현상은 Jeton 종류와 상관 없이, l4t 32.5.1 에서 발생되는 문제로, 실제 segment fault 발생하는 stack 을 확인 해보면, 다음과 같다.

(gdb) bt
#0  0x0000007fa0e64090 in  () at /usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so
#1  0x0000007fa0e64f9c in  () at /usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so
#2  0x0000007fa0e638f8 in  () at /usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so
#3  0x0000007fa0e636b8 in  () at /usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so
#4  0x0000007fad137b20 in  () at /usr/lib/aarch64-linux-gnu/libv4l2.so.0
#5  0x0000007fad1336c0 in v4l2_fd_open () at /usr/lib/aarch64-linux-gnu/libv4l2.so.0
#6  0x0000007fad2a963c in  () at /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstvideo4linux2.so
#7  0x0000005556298620 in  ()

nVidia 에서 배포되는 v4l (video for linux) 라이브러리의 문제이고, libv4l2_nvargus 내부에서 잘못된 메모리 참조가 일어난다.

문제 해결방법

(nVidia 개발자 포럼에서 논의가 된 이슈이며) libv4l2_nvargus.so 를 다음과 같이 업데이트 하면 문제가 해결된다.

$ wget https://forums.developer.nvidia.com/uploads/short-url/4L6p6Cir0SN8YTDMy1z8vrgU6oF.zip
$ unzip 4L6p6Cir0SN8YTDMy1z8vrgU6oF.zip
$ sudo cp Topic168303_Apr21_libv4l2_nvargus.so /usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvargus.so

참고자료

https://forums.developer.nvidia.com/t/libv4l2-nvargus-so-source-code/168303/23

 

Libv4l2_nvargus.so source code

Hi Nico. I met the same issue like you, I tried to open rtsp streaming using gstreamer command and control aelock using v4l2 api (or argusv4l2 api), and I don’t want this to block the streaming, which means the NONBLOCK flag need to work. Do you have any

forums.developer.nvidia.com

반응형