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.sstatic.net/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!
I had this very same problem following the same guide. BTW, in this scenario, numpy worked just fine in python when NOT in a virtualenv. GDB pointed to a problem in libopenblas.
My solution was to start from scratch with a fresh image of jetson-nano-4gb-jp441-sd-card-image.zip and repeat that guide without using virtualenv. More than likely you are the sole developer on that Nano and can live without virtualenv.
I have followed these guides with success: https://qengineering.eu/install-opencv-4.5-on-jetson-nano.html
Skip the virtualenv portions https://www.pyimagesearch.com/2019/05/06/getting-started-with-the-nvidia-jetson-nano/
I found this to also be required at this point: "..install the official Jetson Nano TensorFlow by.."
ln -s /usr/include/locale.h /usr/include/xlocale.h
Once I made that symbolic link I was able to proceed with the rest of the guide (minus virtualenv) and I managed to not break numpy.
This is not ideal, but I hope it helps.