Isaac SDK Building Dependencies GCC/G++ Error

Computer:
Ubuntu 18.04 (bionic), 64-bit
Processor: ARMv8 Processor rev 3 (v8l) × 4 ARMv8 Processor rev 0 (v8l) × 2
Graphics: NVIDIA Tegra X2 (nvgpu)/integrated
GNOME: 3.28.2
Wired to Jetson TX2

After downloading the Isaac SDK, I used

~/Downloads$ mkdir ~/isaac
~/Downloads$ tar -xJvf isaac_sdk-2019.1-17919.tar.xz -C ~/isaac/

(instead of using the Archive Manager, which the Isaac SDK Setup states “may fail to extract [.bazelrc], leading to building errors.”) I build the dependencies with

~/isaac$ engine/build/scripts/install_dependencies.sh

which leads to

...
[INFO] Installing packages - gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
E: Package 'gcc-aarch64-linux-gnu' has no installation candidate
E: Package 'g++-aarch64-linux-gnu' has no installation candidate
[ERROR] Failed to install packages - gcc-aarch64-linux-gnu g++-aarch64-linux-gnu

Searching has provided little results; trying

sudo apt-get update
sudo apt-get install gcc-aarch64-linux-gnu

only leads to

Package gcc-aarch64-linux-gnu is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'gcc-aarch64-linux-gnu' has no installation candidate

, and trying to download gcc-aarch64-linux-gnu from https://www.ubuntuupdates.org/package/core/bionic/main/base/gcc-aarch64-linux-gnu has not done anything yet either.

Any help is much appreciated!

You could try build it from source. Here are the instructions for Ubuntu-18.04. You can skip the conda installation part, since I used that in preparation for working with TensorFlow-1.13.1. The formatting will look better if you copy paste the following contents to a markdown file.

NVIDIA Isaac Sim - Install Ubuntu-18.04

Create a Conda environment

File ~/.condarc

envs_dirs:
  - /tool/python/conda/env

channels:
  - defaults
  - anaconda

auto_activate_base: false

Create a python3.6 environment:

conda update --all
conda update -n base -c defaults conda
conda config --set auto_activate_base true
conda create -n ue36 python=3.6
conda activate ue36

Install required packages:

conda install -c anaconda opencv

Install the Vulkan SDK

Download the latest Vulkan SDK at the following link: https://vulkan.lunarg.com/sdk/home#linux

In the directory containing the archive, run the following commands to install Vulkan:

mkdir -p ~/vulkan
mv vulkansdk-linux-x86_64-1.1.106.0.tar.gz ~/vulkan
cd ~/vulkan
tar -xvf vulkansdk-linux-x86_64-1.1.106.0.tar.gz
echo "source ~/vulkan/1.1.106.0/setup-env.sh" >> ~/.bashrc

In a new terminal window, verify the Vulkan installation with the following commands:

export | grep VK_LAYER_PATH

It should print out a string similar to this:

declare -x VK_LAYER_PATH="/home/USERNAME/vulkan/1.1.101.0/x86_64/etc/explicit_layer.d"

Check vulkaninfo:

vulkaninfo

==========
VULKANINFO
==========

Vulkan Instance Version: 1.1.106

Install the following dependencies, if not already present:

  • Install the CUDA Toolkit 10.1
  • cuDNN 7.6.0
  • TensorRT 5.1.5.0

Install TensorFlow-1.13.1

Installing Isaac SDK

Download the Isaac SDK

wget https://developer.nvidia.com/isaac/download/releases/nightly/isaac-sdk-nigtly-20190528-tar-xz
tar -xvJf isaac-sdk-nigtly-20190528-tar-xz -C ~/isaac/

File .bazelrc:

build --keep_going --color=yes -c opt --crosstool_top=@toolchain//crosstool:toolchain

build --define=target_platform=x86_64 --strip=always
build --action_env=target_platform="x86_64"
build:x86_64 --define=target_platform=x86_64 --strip=always
build:x86_64 --action_env=target_platform="x86_64"

build:jetpack42 --cpu=arm64-v8a --strip=always
build:jetpack42 --define=target_platform=jetpack42
build:jetpack42 --action_env=target_platform="jetpack42"

test --test_output=errors --keep_going --color=yes -c opt
test --test_tag_filters=-lint

build --python_top=//engine/build:python3
test --python_top=//engine/build:python3
run --python_top=//engine/build:python3

test:lint --build_tests_only
test:lint --test_tag_filters=lint
test:lint --python_top=//engine/build:python27

Installing Isaac Sim

Get Isaac Sim from GitHub

Use the following procedures to obtain Isaac Sim core package from GitHub.

Make sure you have access to the Epic Unreal Engine. Follow this link to create an Epic Games account:

https://www.unrealengine.com/register

To link your GitHub account, follow the instructions at this website:

https://www.unrealengine.com/en-US/ue4-on-github

Download IsaacSim_1.2 branch or clone and checkout IsaacSim_1.2 branch at the following website:

https://github.com/NvPhysX/UnrealEngine

Your GitHub account must have access to the Epic Unreal Engine to access this link.

The Isaac Sim project on GitHub only contains the core of Isaac Sim. Follow the instructions below to access the full content of Isaac Sim that works with Isaac SDK.

export ISAAC_SIM_VERSION=1.2
export ISAAC_SIM_ROOT_PATH=/project/software/library/isaac-sim-$ISAAC_SIM_VERSION
cd /project/software/library

# clone nvidia's unrealengine fork
git clone git@github.com:NvPhysX/UnrealEngine.git unrealengine-nvidia

# checkout issac-sim-1.2 branch
cd unrealengine-nvidia
git checkout -b IsaacSim_1.2
git clone -b IsaacSim_$ISAAC_SIM_VERSION . ../isaac-sim-$ISAAC_SIM_VERSION
#git clone -b IsaacSim_$ISAAC_SIM_VERSION git@github.com:NvPhysX/UnrealEngine.git isaac-sim-$ISAAC_SIM_VERSION

Build Isaac Sim with SDK Components

Follow the instructions below to access the full content of Isaac Sim that works with Isaac SDK:

In Isaac Sim, remove Engine/Build/IsaacSimProject_1.2_Core.gitdeps.xml.

Download Isaac Sim Content XML and extract it to the Engine/Build directory of Isaac Sim:

wget https://developer.nvidia.com/isaac/download/releases/2019.1/IsaacSimProject_1.2.gitdeps.tar.gz

tar -xvzf IsaacSimProject_1.2.gitdeps.tar.gz -C <ISAAC_SIM_ROOT_PATH>/Engine/Build

Download dependencies and content with the following command:

conda activate ue36
./Setup.sh

It may be required to run this script with sudo, the first time. When prompted, enter Y when asked if you agree to a license. Enter Y again when asked if you would like to overwrite some files.

Generate Makefiles with the following command:

./GenerateProjectFiles.sh

Generate path.json files with the following command:

./GenerateTestRobotPaths.sh

Edit ./Engine/Saved/UnrealBuildTool/BuildConfiguration.xml configuration to boost UE4 build times:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">

  <BuildConfiguration>
    <bUseUBTMakefiles>true</bUseUBTMakefiles>
    <bUseUnityBuild>true</bUseUnityBuild>
    <MinFilesUsingPrecompiledHeader>6</MinFilesUsingPrecompiledHeader>
  </BuildConfiguration>

  <LocalExecutor>
    <ProcessorCountMultiplier>2</ProcessorCountMultiplier>
  </LocalExecutor>

  <ParallelExecutor>
    <ProcessorCountMultiplier>2</ProcessorCountMultiplier>
  </ParallelExecutor>

</Configuration>

Build Isaac Sim editor with the following command:

make && make IsaacSimProjectEditor

Hey Brian, did you ever manage to resolve this gcc and g++ issue? I’m facing the same issue right now

Where are you running the engine/build/scripts/install_dependencies.sh script?
This looks like an error that would come up if you run it on Jetson.

The process to install the dependencies on the Desktop and on Jetson is different. Please see the instructions in https://docs.nvidia.com/isaac/archive/2020.1/doc/setup.html#installing-dependencies-on-the-desktop

Any update here?

Hi
i had the same problems running the Script engine/build/scripts/install_dependencies.sh on my xavier.

it seems, this script is only for Desktop Machines, if you want to install it on Jetson Nano, TX2 or Xavier you need to take this script

engine/build/scripts/install_dependencies_jetson.sh -u <jetson_username> -h <jetson_ip>

its on the same page some lines below. For me it worked fine

1 Like

I am also experiencing this problem but the link you posted appears broken

I am trying your solution now, is the <jetson_ip> the external IPv4 address?

My bad, wrong link. Updated it now.
Let me know if you face any issues

1 Like

jetson_ip should be the IP you use to connect/access Jetson from your Desktop.

Usually if they are connected through USB it is 192.168.55.1
If Jetson is connected through Ethernet or WiFi then it depends on your setup. Both Desktop/Server and Jetson should be on the same subnet.

As an update I was able to run the script after finding my ip address using the ifconfig command. The script failed building the wheel for cffi and argon2-cffi packages until I installed dependencies using this command

sudo apt install libffi-dev

Those dependencies may need added to the build script. I am using a Jetson NX Xavier on wifi.

Thanks for the feedback. We will look into that