[Solved] Cross-compiling the driveworks samples is not working.

When we run the samples we compiled, such as ‘sample_object detector’, we get the error cannot execute binary file: Exec format error.

We followed the steps getting started steps in the pdf one by one. When we compile them on the host we are able to run them on the host PC, but when we copy them to the Drive Px we get the error.

We made sure we included the steps where we install the Vibrante PDK for Linux Host, and the cuda cross-compile libraries. And when we run the cmake on the host, we do include the parameters for cross-compiling -DCMAKE_TOOLCHAIN_FILE=/path/to/samples/cmake/Toolchain-V4L.cmake -DVIBRANTE_PDK:STRING=/path/to/vibrante-t186ref-linux . (using the correct path names)

We followed the setup steps verbatim, and it works up until we run the sample on the Drive Px, and get this error.

Hello MatthewLinder,

Could you please help to update the latest PDK/SDK version(4.1.8.0)?(https://developer.nvidia.com/nvidia-drive-downloads)
And please see file/usr/local/driveworks-0.3/doc/nvdwx_html/dwx_samples_building.html on DPX2.

===============================
Linux System Requirements

These are the basic preqrequisites for Linux:

Ubuntu Linux 14.04 (out of the box installation)
GCC >= 4.8.X && GCC <= 4.9.x
cmake version >= 3.2.2

By default, Ubuntu 14.04 installs cmake version 2.8. For guidance on installing cmake 3.x, see:
http://askubuntu.com/questions/610291/how-to-install-cmake-3-2-on-ubuntu-14-04

CUDA Toolkit 8.0 or higher
NVIDIA® CUDA® version 8.0 or later
NVIDIA® Vibrante™ PDK installation for DRIVE PX 2 on the Linux Host
You may also need to install (using apt-get install) the following packages:
libx11-dev
libxrandr-dev
libxcursor-dev
libxxf86vm-dev
libxinerama-dev
libxi-dev
libglu1-mesa-dev

To cross compile the DriveWorks SDK samples

On the host system, install CUDA cross-compilation libraries.

$ sudo dpkg --add-architecture arm64
$ sudo apt-get update
$ sudo apt-get install cuda-cross-aarch64-8-0
Note
Some repositories may not have binaries for arm64 and apt-get update causes errors. To prevent these errors, edit /etc/apt/sources.list and files under /etc/apt/sources.list.d/ and add [arch=amd64,i386] into each line starting with deb. Ensure you specify amd64 and not arm64.
Configure the location of the Vibrante PDK.

Set the environment variable VIBRANTE_PDK to point to the PDK folders:

/path/to/vibrante-t186ref-linux (DRIVE PX 2)
-or-

Define this location as a cmake parameter:

-DVIBRANTE_PDK:STRING=/path/to/vibrante-t186ref-linux
Cross-compile.

$ sudo mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release
-DCMAKE_TOOLCHAIN_FILE=/path/to/samples/cmake/Toolchain-V4L.cmake
-DVIBRANTE_PDK:STRING=/path/to/vibrante-t186ref-linux
/path/to/driveworks/samples/folder
$ make -j
$ make install
To streamline the deploy process, you can set the cmake definitions as environment variables.

updating to the latest version fixed it.

Thanks

I remove all files under build, and then do the steps on README.md, will fix the problem.Maybe there are wrong files not be replaced after I change configuration.

Hello,

is it able to install DriveInstall__SDK.run on Drive PX2?
I have encountered an error during installation.
Error: DriveInstall must be run on x86_64 HOST platform. Detected aarch64 platform.

do you know how to solve this issue?

thanks in advance.

Dear BjoernFathIPG,

No, it is not possible to install DriveInstall on DPX2. Thanks.

DriveInstall is an on-demand all-in-one package that bundles developer software for the NVIDIA® DRIVE Platform using:
Host PC Ubuntu 14.04
Host PC Ubuntu 16.04