QNX Technical Articles
QNX® Modifications to Texas Instruments InfoADAS for the QNX® Platform for ADAS 1.0: Installation Note
Date of this edition: November 4, 2016
Target OS: This package is compatible with targets that were built with the QNX Platform for ADAS 1.0.
Host OS: To use this package, you must have the QNX Platform for ADAS 1.0 installed on one of the following development hosts:
- Linux Red Hat Enterprise Linux 5.4 Desktop 32- and 64-bit, Red Hat Fedora 12, Ubuntu Workstation 9.10 32- and 64-bit, or openSUSE 11.2
- Microsoft Windows 7 Professional 32- and 64-bit, Vista Business 32- and 64-bit, XP Professional SP3, or 2000 SP4
This package contains the necessary libraries, binaries, and files to build the Pedestrian detection and Surround view applications, which demonstrate how to use the Texas Instruments InfoADAS and Vision SDK with the QNX Platform for ADAS 1.0. It also contains modifications to the InfoADAS to make it compatible for the QNX Platform for ADAS 1.0.
For information about any issues about this package, see the the QNX Platform for ADAS 1.0 Release Notes. |
Contents:
- Downloading this package (Linux and Windows)
- Before you build the applications
- Building the applications from this package on Linux
- Building the applications from this package on Windows
- Technical support
Downloading this package (Linux and Windows)
The following steps get the files required to build the sample applications that use InfoADAS and the Vision SDK. It must be applied on top of the InfoADAS and the Vision SDK that you get from Texas Instruments.
- Log into your myQNX account on our website (www.qnx.com) and go to the Download Center.
- Download the INFOADAS-QNX_Rel.2.2_diff-nnn.zip archive, where nnn is a build number. You should download this ZIP file to your host environment from the QNX website.
- Verify that the downloaded archive's checksum matches the one given on our website.
After you extract the contents of the file, follow the Windows or Linux-specific steps to build the applications. When you extract the contents of the ZIP file later, ensure that you use the same account that you ran the QNX Platform for ADAS 1.0 installer with earlier (on Linux, you must run the command using sudo).
Before you build the applications
If you want to build the applications for this this package, download the following items to your host system before you build the applications:
- InfoADAS and its associated patch from
Texas Instruments. The revision that you want is INFOADAS-QNX 2.2 and the INFOADAS-QNX Release 2.2 Patch 1, which are referred to as
INFOADAS-QNX_Rel.2.2.zip and INFOADAS-QNX Rel.2.2-Patch1.zip, respectively in this installation note.
This version of InfoADAS supports QNX Neutrino 6.5.0 SP1 for the Jacinto 6 board. It has support for a sample use case to A15-based source for 2D and 3D surround-view applications. To get this package, you must contact Texas Instruments directly through their customer service.
- The IPC package (IPC_3_40_01_08) from the Texas Instruments website at http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ipc/3_40_01_08/index_FDS.html. For information about the configuration guide, see the IPC Install Guide on the Texas Instruments website. The guide can be found at http://processors.wiki.ti.com/index.php/IPC_Install_Guide_QNX.
You should verify that the checksums of the archives matche the one posted.
Depending on your platform, use the steps in "Building the applications from this package on Linux" or "Building the applications from this package on Windows" to build and install the application. You should verify that the checksum of the archive matches the one posted.
Building the applications from this package on Linux
You need to complete these steps only if you want to build the sample applications that demonstrate how to use InfoADAS and the Vision SDK.
- Put the following environment variables into your .bashrc file:
export HOME=/opt/users/root export LD_LIBRARY_PATH=$QNX_HOST/usr/lib:$LD_LIBRARY_PATH export QCONF_OVERRIDE=$HOME/qconf-override.mak
- Create a file called qconf-override.mak in your
$HOME directory with the following contents in the file:
INSTALL_ROOT_nto:=$(HOME)/qnx_install USE_INSTALL_ROOT=1
- Source your .bashrc file:
>> source $HOME/.bashrc
Note: You will need to do this step only in the existing shell.
- Create a working directory called adas:
>> cd >> mkdir $HOME/adas >> cd $HOME/adas
- Put the INFOADAS-QNX_Rel.2.2.zip file that you got from Texas Instruments in the
adas directory, unzip it, and then unzip INFOADAS-QNX_Rel.2.2-Patch1.zip file
into the same directory to update its contents.
>> unzip INFOADAS-QNX_Rel.2.2.zip >> unzip -o -d INFOADAS-QNX_Rel.2.2 INFOADAS-QNX_Rel.2.2-Patch1.zip
- Put the INFOADAS-QNX_Rel2.2_diff-nnn.zip file in the adas directory
and then unzip it on top of the contents that you extracted in the previous
step. For example, if your build was 576, it would look like this:
>> unzip -o -d INFOADAS-QNX_Rel.2.2 INFOADAS-QNX_Rel2.2_diff-576.zip
- Put the in the Texas Instruments IPC package (IPC_3_40_01_08) in the adas directory and then unzip it. To configure the build for Jacinto
6, in an editor, open the products.mak
file, and then make these changes:
- set PLATFORM to DRA7XX
- set DESTDIR to the same directory you specified for the INSTALL_ROOT_nto variable in step 2.
>> cd ipc_3_40_01_08 >> vi products.mak ... PLATFORM = DRA7XX ... DESTDIR = $(HOME)/qnx_install
- Build the IPC package for QNX Neutrino RTOS.
>> make -f ipc-qnx.mak all >> make -f ipc-qnx.mak install
- Copy the prebuilt content and library files for the linker to your $HOME/qnx_install directory,
and then add those paths to your CPATH environment variable:
>> cp -r $HOME/adas/INFOADAS-QNX_Rel.2.2/prebuilt/armle-v7-650/* $HOME/qnx_install/armle-v7/ >> cp -r $HOME/adas/INFOADAS-QNX_Rel.2.2/prebuilt/usr/* $HOME/qnx_install/usr/ >> mkdir -p $HOME/qnx_install/armle-v7/lib/firmware >> cp -r $HOME/adas/INFOADAS-QNX_Rel.2.2/prebuilt/firmware/*/* $HOME/qnx_install/armle-v7/lib/firmware >> cp $HOME/qnx_install/armle-v7/usr/lib//libogles2tools.so.1 $HOME/qnx_install/armle-v7/usr/lib/libogles2tools.a >> export CPATH=$HOME/qnx_install/usr/include/pvr_tools/Tools/OGLES2:$HOME/adas/INFOADAS-QNX_Rel.2.2/vision_sdk/include/link_api/: $HOME/adas/ipc_3_40_01_08/linux/include:$HOME/adas/ipc_3_40_01_08/packages:$HOME/adas/ipc_3_40_01_08/qnx/include: $HOME/adas/ipc_3_40_01_08/qnx/src/ipc3x_dev/ti/syslink/inc
Note: The path to the directories to specified in the example are based on the directory you specified for the INSTALL_ROOT_nto parameter in Step 2 and the working directory you created in Step 4.
- Make the following changes to these files:
- $HOME/adas/INFOADAS-QNX_Rel.2.2/infoadas/qnx_app/infoadas-demo-pd/common.mk:
Move the following block of commands (lines 50 and 58) after include $(MKFILES_ROOT)/qtargets.mk (line 88):
ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=ogles2tools LIBS +=m LIBS +=camapi screen EGL GLESv2
Here's a snippet of how your common.mk file should look, where the bolded text represents the lines that you moved:
... ... include $(MKFILES_ROOT)/qmacros.mk include $(MKFILES_ROOT)/qtargets.mk ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=ogles2tools LIBS +=m LIBS +=camapi screen EGL GLESv2 OPTIMIZE_TYPE_g=none OPTIMIZE_TYPE=$(OPTIMIZE_TYPE_$(filter g, $(VARIANTS)))
-
$HOME/adas/INFOADAS-QNX_Rel.2.2/infoadas/qnx_app/app_epsrc/common.mk:
Move the following block of commands (lines 48-63) after the include $(MKFILES_ROOT)/qtargets.mk (lines 106):
LIBS +=ws ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=xml2 LIBS +=m LIBS +=EGL LIBS +=GLESv1_CM LIBS +=GLESv2 LIBS +=ogles2tools LIBS +=sharedmemallocator LIBS += camapi LIBS += screen
Here's a snippet of how your common.mk file should look, where the bolded text represents the lines that you moved:
... ... include $(MKFILES_ROOT)/qmacros.mk include $(MKFILES_ROOT)/qtargets.mk LIBS +=ws ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=xml2 LIBS +=m LIBS +=EGL LIBS +=GLESv1_CM LIBS +=GLESv2 LIBS +=ogles2tools LIBS +=sharedmemallocator LIBS += camapi LIBS += screen OPTIMIZE_TYPE_g=none OPTIMIZE_TYPE=$(OPTIMIZE_TYPE_$(filter g, $(VARIANTS)))
- $HOME/adas/INFOADAS-QNX_Rel.2.2/infoadas/qnx_app/infoadas-demo-pd/common.mk:
- Goto the INFOADAS-QNX_Rel.2.2 directory and run make install.
>> cd ../INFOADAS-QNX_Rel.2.2 >> make install
- After the make install is done, the binaries for the Pedestrian detection
(infoadas-demo-pd) and Surround view (infoadas-app-epsrc)
applications are available. You can use the QNX Momentics IDE to transfer the binaries to
anywhere on the target, but we recommend that you put the files you built in a separate directory
from the default files on the reference image.
- To use the Pedestrian detection application, transfer the $HOME/qnx_install/armle-v7/usr/bin/infoadas-demo-pd file onto the target board.
- To use the Surround view application, transfer the $HOME/qnx_install/armle-v7/usr/bin/infoadas-app-epsrc file to the target board.
On the target's command prompt, type infoadas-demo-pd to run the Pedestrian detection application, or infoadas-app-epsrc to run the Surround view application. For more information about running the applications, see the "Pedestrian detection" and the "Surround view" sections in the Getting Started guide for the QNX Platform for ADAS 1.0.On the reference image, there are versions of the infoadas-demo-pd and infoadas-app-epsrc binaries in the /usr/bin directory. If you choose to put them in the /usr/bin directory, back up the original version of the binaries. For example: # mount -uw /base # cp /base/usr/bin/infoadas-demo-pd /base/usr/bin/infoadas-demo-pd.bkup # cp /base/usr/bin/infoadas-app-epsrc /base/usr/bin/infoadas-app-epsrc.bkup
- If you are building an image and want to include the files you built using these steps in your image, which
should be the qnx_install directory you specified in step 3. Add the following lines to your searchpaths.cfg file:
... ... ${HOME}/qnx_install path ... ...
For more information, see the "Search paths" section of the Modifying Content chapter in the Working with Target Images guide.
Building the applications from this package on Windows
You need to complete these steps only if you want to build the sample applications that demonstrate how to use InfoADAS and the Vision SDK.
- Put the following variables into a .bat file and run it.
Alternatively, you can add the user variables by going to
Control Panel > Advanced
System Settings > Environment Variables (Windows 7) or
My Computer > System Properties > Advanced
> Environment Variables (Windows XP) to add the
environment variables listed below.
Some of the variables may have already been set as part of your installation.
- LD_LIBRARY_PATH=%QNX_HOST%/usr/lib:%LD_LIBRARY_PATH%
- QCONF_OVERRIDE=%HOME%/qconf-override.mak
- HOME=C:\QNXSTUFF
The example above is for Windows 7, but if you are using Windows XP, you should set the QNX_CONFIGURATION variable to C:/Program Files/QNX Software Systems. You should also create an environment variable called HOME. The environment should be set to a directory where you want to work with the files and it shouldn't have any spaces within the path. In addition, the directories should be delimited using a forward slash ("/"). For example, don't use C:\Documents and Settings\Administrator. Instead, use something such as C:/QNXSTUFF because the space in the name doesn't work with the provided Makefiles.
- Create a file called qconf-override.mak in your
$HOME directory (or the location you want to put the files).
Put the the following contents in the file:
INSTALL_ROOT_nto:=$(HOME)/qnx_install USE_INSTALL_ROOT=1
- Create a working directory called adas:
>> cd >> mkdir %HOME%\adas >> cd %HOME%\adas
- Put the INFOADAS-QNX_Rel.2.2.zip file that you got from Texas Instruments in the
adas directory, unzip it, and then unzip INFOADAS-QNX_Rel.2.2-Patch1.zip file
into the same directory to update the files.
>> unzip INFOADAS-QNX_Rel.2.2.zip >> unzip -o -d INFOADAS-QNX_Rel.2.2 INFOADAS-QNX Rel.2.2-Patch1.zip
- Put the INFOADAS-QNX_Rel2.2_diff-nnn.zip file in the adas directory
and then unzip it on top of the contents that you extracted in the previous
step. For example, if your build was 576, it would look like this
>> unzip -o -d INFOADAS-QNX_Rel.2.2 INFOADAS-QNX_Rel2.2_diff-576.zip
- Put the in the Texas Instruments IPC package (IPC_3_40_01_08) in the adas directory and then unzip it. To configure the build for Jacinto 6, in an editor, open the products.mak
file, and then make these changes:
- set PLATFORM to DRA7XX
- set DESTDIR to the directory that you specified for the INSTALL_ROOT_nto variable in step 2.
>> unzip ipc_3_40_01_08.zip >> cd ipc_3_40_01_08 >> start wordpad products.mak ... PLATFORM = DRA7XX ... DESTDIR = $(HOME)/qnx_install
- In your command prompt, type bash. The make commands in the steps that follow must be run in a bash shell.
- Build the IPC package for QNX Neutrino RTOS.
$ make -f ipc-qnx.mak all $ make -f ipc-qnx.mak install
- Copy the prebuilt content and library files for the linker to your $HOME/qnx_install directory, and then add those paths to your CPATH environment variable:
>> cp -r $HOME/adas/INFOADAS-QNX_Rel.2.2/prebuilt/armle-v7-650/* $HOME/qnx_install/armle-v7/ >> cp -r $HOME/adas/INFOADAS-QNX_Rel.2.2/prebuilt/usr/* $HOME/qnx_install/usr/ >> mkdir -p $HOME/qnx_install/armle-v7/lib/firmware >> cp -r $HOME/adas/INFOADAS-QNX_Rel.2.2/prebuilt/firmware/*/* $HOME/qnx_install/armle-v7/lib/firmware >> cp $HOME/qnx_install/armle-v7/usr/lib//libogles2tools.so.1 $HOME/qnx_install/armle-v7/usr/lib/libogles2tools.a >> export CPATH=$HOME/qnx_install/usr/include/pvr_tools/Tools/OGLES2:$HOME/adas/INFOADAS-QNX_Rel.2.2/vision_sdk/include/link_api/: $HOME/adas/ipc_3_40_01_08/linux/include:$HOME/adas/ipc_3_40_01_08/packages:$HOME/adas/ipc_3_40_01_08/qnx/include: $HOME/adas/ipc_3_40_01_08/qnx/src/ipc3x_dev/ti/syslink/inc
Note:The path to the directories to specified in the example are based on the directory you specified for the INSTALL_ROOT_nto parameter in Step 2 and the working directory you created in Step 3.
- Make the following changes to these files:
- $HOME/adas/INFOADAS-QNX_Rel.2.2/infoadas/qnx_app/infoadas-demo-pd/common.mk:
Move the following block of commands (lines 50 and 58) after include $(MKFILES_ROOT)/qtargets.mk (line 88):
ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=ogles2tools LIBS +=m LIBS +=camapi screen EGL GLESv2
Here's a snippet of how your common.mk file should look, where the bolded text represents the lines that you moved:
... ... include $(MKFILES_ROOT)/qmacros.mk include $(MKFILES_ROOT)/qtargets.mk ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=ogles2tools LIBS +=m LIBS +=camapi screen EGL GLESv2 OPTIMIZE_TYPE_g=none OPTIMIZE_TYPE=$(OPTIMIZE_TYPE_$(filter g, $(VARIANTS)))
-
$HOME/adas/INFOADAS-QNX_Rel.2.2/infoadas/qnx_app/app_epsrc/common.mk:
Move the following block of commands (lines 48-63) after the include $(MKFILES_ROOT)/qtargets.mk (lines 106):
LIBS +=ws ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=xml2 LIBS +=m LIBS +=EGL LIBS +=GLESv1_CM LIBS +=GLESv2 LIBS +=ogles2tools LIBS +=sharedmemallocator LIBS += camapi LIBS += screen
Here's a snippet of how your common.mk file should look, where the bolded text represents the lines that you moved:
... ... include $(MKFILES_ROOT)/qmacros.mk include $(MKFILES_ROOT)/qtargets.mk LIBS +=ws ifeq ($(PLATFORM),tda2xx-evm) LIBS +=vivi_j6 endif ifeq ($(PLATFORM),tda2ex-evm) LIBS +=vivi_j6eco endif LIBS +=xml2 LIBS +=m LIBS +=EGL LIBS +=GLESv1_CM LIBS +=GLESv2 LIBS +=ogles2tools LIBS +=sharedmemallocator LIBS += camapi LIBS += screen OPTIMIZE_TYPE_g=none OPTIMIZE_TYPE=$(OPTIMIZE_TYPE_$(filter g, $(VARIANTS)))
- $HOME/adas/INFOADAS-QNX_Rel.2.2/infoadas/qnx_app/infoadas-demo-pd/common.mk:
- Go to the INFOADAS-QNX_Rel.2.2 directory and run make install.
$ cd ../INFOADAS-QNX_Rel.2.2 $ make install
- After the make install is done, the binaries for the Pedestrian detection
(infoadas-demo-pd and Surround view (infoadas-app-epsrc)
applications are available. You can use the QNX Momentics IDE to transfer the binaries to
anywhere on the target, but we recommend that you put the files you built in a separate directory
from the default files on the reference image.
- To use the Pedestrian detection application, transfer the $HOME/qnx_install/armle-v7/usr/bin/infoadas-demo-pd file onto the target board.
- To use the Surround view application, transfer the $HOME/qnx_install/armle-v7/usr/bin/infoadas-app-epsrc file to the target board.
On the target's command prompt, type infoadas-demo-pd to run the Pedestrian detection application, or infoadas-app-epsrc to run the Surround view application. For more information about running the applications, see the "Pedestrian detection" and the "Surround view" sections in the Getting Started guide for the QNX Platform for ADAS 1.0.On the reference image, there are versions of the infoadas-demo-pd and infoadas-app-epsrc binaries in the /usr/bin directory. If you choose to put them in the /usr/bin directory, back up the original version of the binaries. For example: # mount -uw /base # cp /base/usr/bin/infoadas-demo-pd /base/usr/bin/infoadas-demo-pd.bkup # cp /base/usr/bin/infoadas-app-epsrc /base/usr/bin/infoadas-app-epsrc.bkup
- If you are building an image and want to include the files you built using these steps in your image, which
should be the qnx_install directory you specified in step 3. Add the following lines to your searchpaths.cfg file:
... ... ${HOME}/qnx_install ... ...
For more information, see the "Search paths" section of the Modifying Content chapter in the Working with Target Images guide.
Technical support
To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.