emir
emir

Reputation: 70

Nvidia Jetson Tx2 Opencv Compiling in Docker

Hi I have several times compiled opencv in my host machine or several arm based system before. As all you now on arm based system compiling opencv takes longer time so I used Quemu to virtualized x86 processor to arm64 and I pulled nvidia jetpack from nvidia dochub page. I am using "nvcr.io/nvidia/l4t-base" so I have aarch64 based docker env.

When I follow my basic cmake configuration in this docker env.

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D WITH_CUDA=ON \
      -D CUDA_ARCH_BIN=6.2 \
      -D CUDA_ARCH_PTX="" \
      -D ENABLE_FAST_MATH=ON \
      -D CUDA_FAST_MATH=ON \
      -D WITH_CUBLAS=ON \
      -D WITH_LIBV4L=ON \
      -D WITH_GSTREAMER=ON \
      -D WITH_GSTREAMER_0_10=OFF \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D OPENCV_EXTRA_MODULES_PATH=/../opencv3/opencv_contrib-3.4.9/modules \
      -D CPACK_BINARY_DEB=ON \
      ../

I got attached following error log. But basically it says "fatal error: sys/videoio.h: No such file or directory" so I previously got videdev.h error but I solved installing v4l package.

Interesting point is when I give only cmake .. it works and install opencv but default conf. havent cuda and extra lib option. When I inspect after "cmake .." command there is still same fatal error in log file even though I saw configuration done.

I cant figure this error out. Even though it says with default cmake command same error but configuration goes done. When I apply cuda config it says same error but configuration cannnot be done. I am totaly sure cmake have any wrong parameter because of I have used on my jetson tx2 it works like perfect.

Do you have any idea ? Btw nvidia docker has 10.2 cuda support I checked with nvcc -V command Maybe in docker env it is impposible to compile opencv with cuda support or Should I start cuda supported docker container different way ?

Error log : https://paste.ubuntu.com/p/w9hjBxqJ6D/

Output log : https://paste.ubuntu.com/p/rqsvq356dR/

Here is another output

    linked by target "opencv_annotation" in directory /opencv3/opencv-3.4.9/apps/annotation
    linked by target "opencv_visualisation" in directory /opencv3/opencv-3.4.9/apps/visualisation
    linked by target "opencv_interactive-calibration" in directory /opencv3/opencv-3.4.9/apps/interactive-calibration
    linked by target "opencv_version" in directory /opencv3/opencv-3.4.9/apps/version
CUDA_nppist_LIBRARY (ADVANCED)
    linked by target "opencv_cudev" in directory /opencv3/opencv-3.4.9/modules/cudev
    linked by target "opencv_cudev" in directory /opencv3/opencv-3.4.9/modules/cudev
    linked by target "opencv_test_cudev" in directory /opencv3/opencv-3.4.9/modules/cudev/test
    linked by target "opencv_test_core" in directory /opencv3/opencv-3.4.9/modules/core
    linked by target "opencv_perf_core" in directory /opencv3/opencv-3.4.9/modules/core
    linked by target "opencv_core" in directory /opencv3/opencv-3.4.9/modules/core
    linked by target "opencv_core" in directory /opencv3/opencv-3.4.9/modules/core
    linked by target "opencv_test_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
    linked by target "opencv_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
    linked by target "opencv_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
    linked by target "opencv_perf_cudaarithm" in directory /opencv3/opencv-3.4.9/modules/cudaarithm
    linked by target "opencv_flann" in directory /opencv3/opencv-3.4.9/modules/flann
    linked by target "opencv_flann" in directory /opencv3/opencv-3.4.9/modules/flann
    linked by target "opencv_test_flann" in directory /opencv3/opencv-3.4.9/modules/flann
    linked by target "opencv_perf_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
    linked by target "opencv_test_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
    linked by target "opencv_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
    linked by target "opencv_imgproc" in directory /opencv3/opencv-3.4.9/modules/imgproc
    linked by target "opencv_test_ml" in directory /opencv3/opencv-3.4.9/modules/ml
    linked by target "opencv_ml" in directory /opencv3/opencv-3.4.9/modules/ml
    linked by target "opencv_ml" in directory /opencv3/opencv-3.4.9/modules/ml
    linked by target "opencv_video" in directory /opencv3/opencv-3.4.9/modules/video
    linked by target "opencv_video" in directory /opencv3/opencv-3.4.9/modules/video
    linked by target "opencv_perf_video" in directory /opencv3/opencv-3.4.9/modules/video
    linked by target "opencv_test_video" in directory /opencv3/opencv-3.4.9/modules/video
    linked by target "opencv_test_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
    linked by target "opencv_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
    linked by target "opencv_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
    linked by target "opencv_perf_cudabgsegm" in directory /opencv3/opencv-3.4.9/modules/cudabgsegm
    linked by target "opencv_test_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
    linked by target "opencv_perf_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
    linked by target "opencv_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
    linked by target "opencv_cudafilters" in directory /opencv3/opencv-3.4.9/modules/cudafilters
    linked by target "opencv_test_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
    linked by target "opencv_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
    linked by target "opencv_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
    linked by target "opencv_perf_cudaimgproc" in directory /opencv3/opencv-3.4.9/modules/cudaimgproc
    linked by target "opencv_test_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
    linked by target "opencv_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
    linked by target "opencv_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
    linked by target "opencv_perf_cudawarping" in directory /opencv3/opencv-3.4.9/modules/cudawarping
    linked by target "opencv_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
    linked by target "opencv_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
    linked by target "opencv_perf_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
    linked by target "opencv_test_dnn" in directory /opencv3/opencv-3.4.9/modules/dnn
    linked by target "opencv_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
    linked by target "opencv_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
    linked by target "opencv_perf_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
    linked by target "opencv_test_features2d" in directory /opencv3/opencv-3.4.9/modules/features2d
    linked by target "opencv_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
    linked by target "opencv_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
    linked by target "opencv_perf_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
    linked by target "opencv_test_imgcodecs" in directory /opencv3/opencv-3.4.9/modules/imgcodecs
    linked by target "opencv_test_photo" in directory /opencv3/opencv-3.4.9/modules/photo
    linked by target "opencv_photo" in directory /opencv3/opencv-3.4.9/modules/photo
    linked by target "opencv_photo" in directory /opencv3/opencv-3.4.9/modules/photo
    linked by target "opencv_perf_photo" in directory /opencv3/opencv-3.4.9/modules/photo
    linked by target "opencv_test_shape" in directory /opencv3/opencv-3.4.9/modules/shape
    linked by target "opencv_shape" in directory /opencv3/opencv-3.4.9/modules/shape
    linked by target "opencv_shape" in directory /opencv3/opencv-3.4.9/modules/shape
    linked by target "opencv_test_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
    linked by target "opencv_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
    linked by target "opencv_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
    linked by target "opencv_perf_videoio" in directory /opencv3/opencv-3.4.9/modules/videoio
    linked by target "opencv_calib3d" in directory /opencv3/opencv-3.4.9/modules/calib3d
    linked by target "opencv_calib3d" in directory /opencv3/opencv-3.4.9/modules/calib3d
  
    linked by target "opencv_perf_stitching" in directory /opencv3/opencv-3.4.9/modules/stitching
    linked by target "opencv_test_superres" in directory /opencv3/opencv-3.4.9/modules/superres
    linked by target "opencv_superres" in directory /opencv3/opencv-3.4.9/modules/superres
    linked by target "opencv_superres" in directory /opencv3/opencv-3.4.9/modules/superres
    linked by target "opencv_perf_superres" in directory /opencv3/opencv-3.4.9/modules/superres
    linked by target "opencv_test_videostab" in directory /opencv3/opencv-3.4.9/modules/videostab
    linked by target "opencv_videostab" in directory /opencv3/opencv-3.4.9/modules/videostab
    linked by target "opencv_videostab" in directory /opencv3/opencv-3.4.9/modules/videostab
    linked by target "opencv_traincascade" in directory /opencv3/opencv-3.4.9/apps/traincascade
    linked by target "opencv_createsamples" in directory /opencv3/opencv-3.4.9/apps/createsamples
    linked by target "opencv_annotation" in directory /opencv3/opencv-3.4.9/apps/annotation
    linked by target "opencv_visualisation" in directory /opencv3/opencv-3.4.9/apps/visualisation
    linked by target "opencv_interactive-calibration" in directory /opencv3/opencv-3.4.9/apps/interactive-calibration
    linked by target "opencv_version" in directory /opencv3/opencv-3.4.9/apps/version

Lats Progress: When I removed

-DOPENCV_EXTRA_MODULES_PATH=$HOME/opencv_contrib-3.4.9/modules \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 \
-DCUDA_ARCH_BIN=6.2 \
-DCUDA_ARCH_PTX="" \ 

and Configuring done but I still need cuda and extra lib

Upvotes: 1

Views: 842

Answers (1)

emir
emir

Reputation: 70

Solved with starting docker image host Cuda components and giving cmake conf. the directory of the toolkit. The important point is that if container comes with different versions of Cuda you shouldn't use it.

Use host cuda and give host cuda component directory or copy them into docker

-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 \

Upvotes: 1

Related Questions