Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.
6392 Discussions

Raspberry Pi 3b+ : Fatal Error due to NEON - NOT AVAILABLE when use OpenCV

Wios__Ed
Beginner
1,841 Views

Hi,

When trying to invoke OpenCV on a Raspberry Pi 3B+

$ source ~/ML/inference_engine_vpu_arm/bin/setupvars.sh
[setupvars.sh] OpenVINO environment initialized
$ source ~/ML/inference_engine_vpu_arm/opencv/setupvars.sh
$ python3 -c "import cv2"

It returned a fatal error: This OpenCV build doesn't support current CPU/HW configuration

...

NEON - NOT AVAILABLE

 

Details:

cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
cat /proc/cpuinfo 
processor	: 0
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 1
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 2
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

processor	: 3
model name	: ARMv7 Processor rev 4 (v7l)
BogoMIPS	: 38.40
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xd03
CPU revision	: 4

Hardware	: BCM2835
Revision	: a02082
Serial		: 00000000efaf040b

 

OpenCV build configuration is:

General configuration for OpenCV 4.0.1-openvino =====================================
  Version control:               81e7c7d

  Platform:
    Timestamp:                   2018-12-10T12:25:37Z
    Host:                        Linux 4.15.0-42-generic x86_64
    Target:                      Linux 1 arm
    CMake:                       3.7.2
    CMake generator:             Ninja
    CMake build tool:            /usr/bin/ninja
    Configuration:               Release

  CPU/HW features:
    Baseline:                    NEON
      required:                  NEON
      disabled:                  VFPV3

  C/C++:
    Built as dynamic libs?:      YES
    C++ Compiler:                /usr/bin/arm-linux-gnueabihf-g++  (ver 6.3.0)
    C++ flags (Release):         -mthumb  -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -mfp16-format=ieee -fvisibility=hidden -fvisibility-inlines-hidden -fstack-protector-strong -fPIC -O2 -DNDEBUG  -DNDEBUG -D_FORTIFY_SOURCE=2
    C++ flags (Debug):           -mthumb  -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wsuggest-override -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -mfp16-format=ieee -fvisibility=hidden -fvisibility-inlines-hidden -fstack-protector-strong -fPIC -g  -O0 -DDEBUG -D_DEBUG
    C Compiler:                  /usr/bin/arm-linux-gnueabihf-gcc
    C flags (Release):           -mthumb  -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -mfp16-format=ieee -fvisibility=hidden -fstack-protector-strong -fPIC -O2 -DNDEBUG  -DNDEBUG -D_FORTIFY_SOURCE=2
    C flags (Debug):             -mthumb  -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections  -mfpu=neon -mfp16-format=ieee -fvisibility=hidden -fstack-protector-strong -fPIC -g  -O0 -DDEBUG -D_DEBUG
    Linker flags (Release):      -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now    -z noexecstack -z relro -z now  
    Linker flags (Debug):        -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now    -z noexecstack -z relro -z now  
    ccache:                      YES
    Precompiled headers:         NO
    Extra dependencies:          dl m pthread rt
    3rdparty dependencies:

  OpenCV modules:
    To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc java_bindings_generator ml objdetect photo python2 python3 python_bindings_generator stitching ts video videoio
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 java js
    Applications:                tests perf_tests apps
    Documentation:               NO
    Non-free algorithms:         NO

  GUI: 
    GTK+:                        YES (ver 3.22.11)
      GThread :                  YES (ver 2.50.3)
      GtkGlExt:                  NO

  Media I/O: 
    ZLib:                        build (ver 1.2.11)
    JPEG:                        build-libjpeg-turbo (ver 1.5.3-62)
    PNG:                         build (ver 1.6.35)
    HDR:                         YES
    SUNRASTER:                   YES
    PXM:                         YES
    PFM:                         YES

  Video I/O:
    FFMPEG:                      YES
      avcodec:                   YES (ver 57.64.101)
      avformat:                  YES (ver 57.56.101)
      avutil:                    YES (ver 55.34.101)
      swscale:                   YES (ver 4.2.100)
      avresample:                NO
    GStreamer:                   
      base:                      YES (ver 1.10.4)
      video:                     YES (ver 1.10.4)
      app:                       YES (ver 1.10.4)
      riff:                      YES (ver 1.10.4)
      pbutils:                   YES (ver 1.10.4)
    v4l/v4l2:                    linux/videodev2.h

  Parallel framework:            pthreads

  Trace:                         YES (built-in)

  Other third-party libraries:
    Inference Engine:            YES (2018050000 / Unknown)
                libs:            /home/jenkins/workspace/OpenCV/OpenVINO/build/ie/deployment_tools/inference_engine/lib/raspbian_9/armv7l/libinference_engine.so
            includes:            /home/jenkins/workspace/OpenCV/OpenVINO/build/ie/deployment_tools/inference_engine/include
    Custom HAL:                  YES (carotene (ver 0.0.1))
    Protobuf:                    build (3.5.1)

  Python 2:
    Interpreter:                 /usr/bin/python2.7 (ver 2.7.13)
    Libraries:                   
    numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver undefined - cannot be probed because of the cross-compilation)
    install path:                /home/jenkins/workspace/OpenCV/OpenVINO/build/build_release/install/python/python2.7

  Python 3:
    Interpreter:                 /usr/bin/python3 (ver 3.5.3)
    Libraries:                   
    numpy:                       /usr/lib/python3.5/dist-packages/numpy/core/include (ver undefined - cannot be probed because of the cross-compilation)
    install path:                /home/jenkins/workspace/OpenCV/OpenVINO/build/build_release/install/python/python3.5

  Python (for build):            /usr/bin/python2.7

  Install to:                    /home/jenkins/workspace/OpenCV/OpenVINO/build/build_release/install
-----------------------------------------------------------------



******************************************************************
* FATAL ERROR:                                                   *
* This OpenCV build doesn't support current CPU/HW configuration *
*                                                                *
* Use OPENCV_DUMP_CONFIG=1 environment variable for details      *
******************************************************************

Required baseline features:
NEON - NOT AVAILABLE
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.0.1-openvino) /home/jenkins/workspace/OpenCV/OpenVINO/build/opencv/modules/core/src/system.cpp:538: error: (-215:Assertion failed) Missing support for required CPU baseline features. Check OpenCV build configuration and required CPU/HW setup. in function 'initialize'

Aborted

 

 

0 Kudos
1 Solution
Maksim_S_Intel
Employee
1,841 Views

Here is a problem, your auxv data says you don't have NEON:

Second long int value (4 bytes): 00 00 fc 7e => 0x7efc0000
NEON flag: 0x1000
0x7efc0000 & 0x1000 = false

On my machine I have:

00 30 a9 7e => 0x7ea93000
0x7ea93000 & 0x1000 = true

You can also verify it by running any application with LD_SHOW_AUXV environment variable set to true and checking AT_HWCAP string ("neon" word):

LD_SHOW_AUXV=1 uname | grep HWCAP

Not sure what causes this problem, I can suggest checking kernel boot parameters for something suspicious (cat /proc/cmdline) or trying clean installation of Raspbian.

View solution in original post

0 Kudos
4 Replies
Maksim_S_Intel
Employee
1,841 Views

This is strange, could you please post output of the following command:

hexdump -C /proc/self/auxv 

I've just checked this build on RPi 3b+ and it worked well. Can you run ./opencv/bin/opencv_version executable? Did you build Raspbian yourself?

0 Kudos
Wios__Ed
Beginner
1,841 Views

Maksim S. (Intel) wrote:

This is strange, could you please post output of the following command:

hexdump -C /proc/self/auxv 

I've just checked this build on RPi 3b+ and it worked well. Can you run ./opencv/bin/opencv_version executable? Did you build Raspbian yourself?

Hi,

It is a stock Raspbian 9 Stretch downloaded from raspberrypi.org

running ./opencv/bin/opencv_version gives
4.0.1-openvino

Here is the hex dump:

hexdump -C /proc/self/auxv
00000000  21 00 00 00 00 00 fc 7e  10 00 00 00 d6 b0 3f 00  |!......~......?.|
00000010  06 00 00 00 00 10 00 00  11 00 00 00 64 00 00 00  |............d...|
00000020  03 00 00 00 34 00 01 00  04 00 00 00 20 00 00 00  |....4....... ...|
00000030  05 00 00 00 09 00 00 00  07 00 00 00 00 20 f0 76  |............. .v|
00000040  08 00 00 00 00 00 00 00  09 00 00 00 b0 0e 01 00  |................|
00000050  0b 00 00 00 e9 03 00 00  0c 00 00 00 e9 03 00 00  |................|
00000060  0d 00 00 00 e9 03 00 00  0e 00 00 00 e9 03 00 00  |................|
00000070  17 00 00 00 00 00 00 00  19 00 00 00 c8 3e eb 7e  |.............>.~|
00000080  1a 00 00 00 10 00 00 00  1f 00 00 00 eb 4f eb 7e  |.............O.~|
00000090  0f 00 00 00 d8 3e eb 7e  00 00 00 00 00 00 00 00  |.....>.~........|
000000a0

//Ed

0 Kudos
Maksim_S_Intel
Employee
1,842 Views

Here is a problem, your auxv data says you don't have NEON:

Second long int value (4 bytes): 00 00 fc 7e => 0x7efc0000
NEON flag: 0x1000
0x7efc0000 & 0x1000 = false

On my machine I have:

00 30 a9 7e => 0x7ea93000
0x7ea93000 & 0x1000 = true

You can also verify it by running any application with LD_SHOW_AUXV environment variable set to true and checking AT_HWCAP string ("neon" word):

LD_SHOW_AUXV=1 uname | grep HWCAP

Not sure what causes this problem, I can suggest checking kernel boot parameters for something suspicious (cat /proc/cmdline) or trying clean installation of Raspbian.

0 Kudos
Wios__Ed
Beginner
1,841 Views

Hi Maksim,

 

I will check to see if it was due to some kernel parameters and what caused it... meanwhile, I started afresh with another SD card with the same Raspbian OS, so far I have encountered ZERO problem including OpenCV4. I will continue the installation of other tools for my project and I'll see who've got the gut to change the working of my kernel. So thank you for the help and I will report back here if I know what was the cause so that others that might ran into the same problem would have an explanation if not a solution.

 

//Ed

 

0 Kudos
Reply