Configure cross compile for NVIDIA Jetson TX2 on Ubuntu 64bit gives error

Hi All,
I have been trying to Configure cross compile for NVIDIA Jetson TX2 on Ubuntu 64bit as per the link

While proceeding with the ‘Manual Method’ for Device Setup in Section 1, the steps mentioned in the link/document all worked fine.

However, for the ‘Manual Method’ for Host Setup(for which I am using a Ubuntu 14.04 in a virtual machine using virtual box over Win10 PC), I came across the following:

  1. In Section 1, while doing the ‘#install the GCC ARM toolset Linaro **VERSION 5’ when running the command ‘sudo apt-get install -y gcc-5-arm-linux-gnueabi g+±5-arm-linux-gnueabi’, the command returned a ‘Unable to locate package’ error for both the above packages.

Any pointers as to the cause of this error?

  1. In Section 2, while trying to install Qt by the command ‘sudo make install’, the following undefined errors were observed.

Any pointers as to the cause of the error below?

_tx2/rootfs/usr/lib/aarch64-linux-gnu -L/usr/lib/aarch64-linux-gnu -L/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib -lQt5SerialBus -L/opt/qt-everywhere-opensource-src-5.9.0/qtbase/lib -lQt5Core -lpthread
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::newConnection()@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::QTcpServer(QObject*)@Qt_5
/home/Downloads/64_TX2/Linux_for_Tegra_tx2/rootfs/usr/lib/aarch64-linux-gnu/ undefined reference to qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*)' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::acceptError(QAbstractSocket::SocketError)@Qt_5
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::close()@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QHostAddress::~QHostAddress()@Qt_5
/home/Downloads/64_TX2/Linux_for_Tegra_tx2/rootfs/usr/lib/aarch64-linux-gnu/ undefined reference to qIsEffectiveTLD(QString const&)' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::connected()@Qt_5
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::peerName() const@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::state() const@Qt_5’
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::staticMetaObject@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::error(QAbstractSocket::SocketError)@Qt_5
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::isListening() const@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::peerAddress() const@Qt_5’
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::disconnected()@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::errorString() const@Qt_5’
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpSocket::QTcpSocket(QObject*)@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QHostAddress::QHostAddress(QString const&)@Qt_5
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QAbstractSocket::peerPort() const@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::staticMetaObject@Qt_5’
/opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to QTcpServer::listen(QHostAddress const&, unsigned short)@Qt_5' /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/lib/ undefined reference to operator<<(QDebug, QHostAddress const&)@Qt_5
collect2: error: ld returned 1 exit status
make[4]: *** […/…/…/bin/canbusutil] Error 1
make[4]: Leaving directory /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/src/tools/canbusutil' make[3]: *** [sub-canbusutil-install_subtargets] Error 2 make[3]: Leaving directory /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/src/tools’
make[2]: *** [sub-tools-install_subtargets] Error 2
make[2]: Leaving directory /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus/src' make[1]: *** [sub-src-install_subtargets] Error 2 make[1]: Leaving directory /opt/qt-everywhere-opensource-src-5.9.0/qtserialbus’
make: *** [module-qtserialbus-install_subtargets] Error 2

  1. Section 3 of the document mentions that post the configurations of Qt Creator, “applications can be built on the host system and deployed on the Jetson device using Qt Creator”.
    Does this mean that at this point, Qt is enabled in the Jetson TX2 device and what is really required beyond this is building of Qt apps on the host system and deploying it on Jetson device for execution?


You may wish to install Linaro cross-toolchains manually. If you look here there are binary releases:

You’re probably intersted in a combination of aarch64-linux-gnu and armv8l-linux-gnueabihf (or possibly arm-linux-gnueabihf ). The 64-bit aarch64/arm64 has a compatibility mode…if you do not build kernels you will not need anything 32-bit (gnueabihf is 32-bit). I do not know what Qt will require.

Consider cloning the rootfs partition of your Jetson if you run into complicated sysroot needs (think of files you need to link to being made available on your host). Cloning explained here (there is a patch listed for