I’ve been having trouble installing Isaac all day on my Jetson NX and I finally figured it out.
Swap out install_dependencies_jetson for the script below:
#!/bin/bash
#####################################################################################
# Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
# NVIDIA CORPORATION and its licensors retain all intellectual property
# and proprietary rights in and to this software, related documentation
# and any modifications thereto. Any use, reproduction, disclosure or
# distribution of this software and related documentation without an express
# license agreement from NVIDIA CORPORATION is strictly prohibited.
#####################################################################################
set -o errexit -o pipefail -o noclobber -o nounset
UNAME=nvidia
### default arguments
# whether this is a local installation, i.e. it is executed directly on the device, or in a
# cross-platform docker container, default is to ssh to a remote host
LOCAL_INSTALL=false
# for remote install, host name or IP to connect to
HOST=""
# get command line arguments
while [ $# -gt 0 ]
do
case "$1" in
-h|--host)
HOST="$2"
shift 2
;;
-l|--local)
LOCAL_INSTALL=true
shift
;;
-u|--user)
UNAME="$2"
shift 2
;;
*)
printf "Error: Invalid arguments: %1 %2\n"
exit 1
esac
done
if [ -z "${HOST}" -a "${LOCAL_INSTALL}" = false ]
then
echo "Error: Jetson device IP must be specified with -h IP."
exit 1
fi
# This function will be ran on the target device
remote_function() {
local IS_LOCAL="$1"
# Install packages
sudo apt update && sudo apt install -y rsync curl libhidapi-libusb0 \
libturbojpeg python3-pip python3-numpy redis-server \
libffi-dev gfortran libopenblas-dev liblapack-dev # ADDED: fix python installation
# ADDED: build and install LLVM
llvm_version=$(llvm-config --version)
if [ "${llvm_version}" != "10.0.1" ]; then
echo "Building and installing LLVM. This may take awhile."
cd /tmp
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-10.0.1.src.tar.xz
tar -xvf llvm-10.0.1.src.tar.xz
cd llvm-10.0.1.src
mkdir llvm_build_dir
cd llvm_build_dir/
cmake ../ -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="ARM;X86;AArch64"
make -j6
sudo make install
fi
# ADDED: numba won't build, so move this file temporarily
sudo mv /usr/include/tbb/tbb.h /usr/include/tbb/tbb.bak
# pycapnp is required to run Python Codelets.
echo "Installing pycapnp. This may take about five minutes to complete. Please wait..."
python3 -m pip install --user pycapnp
# psutil is needed for navigation evaluation
python3 -m pip install psutil
# packages needed for jupyter notebooks
echo "Installing jupyterlab. This may take a while to complete. Please wait..."
sudo apt install -y libjpeg-dev libfreetype6-dev
python3 -m pip install --user cython
python3 -m pip install --user numpy jupyterlab matplotlib Pillow
# Dependencies for engine
python3 -m pip install --user numpy-quaternion
# Dependency for engine/pyalice/gui/composite_widget.py
python3 -m pip install --user ipywidgets
jupyter nbextension enable --py widgetsnbextension
if [ "${IS_LOCAL}" = false ]
then
# Give user permission to use i2c and tty devices
sudo usermod -a -G i2c,dialout $USER
# Blacklist nvs_bmi160 kernel mod
echo blacklist nvs_bmi160 | sudo tee /etc/modprobe.d/blacklist-nvs_bmi160.conf > /dev/null
# ADDED: numba won't build
sudo mv /usr/include/tbb/tbb.bak /usr/include/tbb/tbb.h
sudo nohup bash -c "sleep 5; shutdown -r now" &
fi
}
if [ "${LOCAL_INSTALL}" = true ]
then
remote_function "${LOCAL_INSTALL}"
else
# Installs dependencies on Jetson devices
ssh -t $UNAME@$HOST "$(declare -pf remote_function); remote_function false"
fi