Sorry if my description is long and boring but I want to give you most important details to solve my problem. Recently I bought a Jetson Nano Developer Kit with 4Gb of RAM, finally!, and in order to get, which I consider, the best configuration for object detection I am following this guide made by Adrian Rosebrock from Pyimagesearch:
https://www.pyimagesearch.com/2020/03/25/how-to-configure-your-nvidia-jetson-nano-for-computer-vision-and-deep-learning/ Date:March, 2020. A summary of this guide is the following:
I said, well let's continue with this tutorial anyway:
Then I ran an experiment, I have created this "p2cv4" env with Python 2, installed numpy and tested it: [With Python 2]: https://i.stack.imgur.com/zCWif.png
I can exit() whenever I want and execute other lines that use python So I concluded that is a python version issue. When I want to execute any python code, terminal ends the program with core dumping, apt-get or pip DO NOT show any errors. And I want to use python 3 because someday in the future a package or library will require python 3.
For python 3 last version for the Jetson Nano is 3.6.9, and idk which version was currently active in March, 2020, like the one Adrian used at that time
In other posts I read that this SIGILL appears when a package or library version like Numpy of TF is not friendly anymore with a specific old or low power CPU, like in this posts: Illegal hardware instruction when trying to import tensorflow, https://github.com/numpy/numpy/issues/9532
So I want to downgrade to a older python version like 3.6.5 or 3.5 but I can't find clear steps to do so in Ubuntu. I thinks this will fix this error and let me continue with configurations on the Jetson Nano.
The pyimageseach guide uses Python 3.6 but it do not specifies if is last 3.6.9 or another. If is not python causing this error let me know. HELP please!
The 'illegal instruction' could be due to an recent change in the getauxval(AT_HWCAP), an attempt to read cpuid information from /sys/devices in the event that getauxval did not succeed. (OpenBLAS PRs 2952 and 3004)
export OPENBLAS_CORETYPE=ARMV8 (or whatever the actual hardware is) before launching python should hopefully get around this. For example:
OPENBLAS_CORETYPE=ARMV8 python
If you would like to make this export permanent, you should open your .bashrc file by typing on the terminal:
nano ~/.bashrc
Afterwards, just add "export OPENBLAS_CORETYPE=ARMV8" to the bottom of your .bashrc file, save/exit and reboot your system:
export OPENBLAS_CORETYPE=ARMV8
for more details look at:
https://github.com/numpy/numpy/issues/18131 https://www.reddit.com/r/JetsonNano/comments/ktcyoh/illegal_instructioncore_dumped_error_on_jetson/