Skip to content

Building SDL Core for QNX on TI OMAP 5432 Board

Justin Dickow edited this page Nov 9, 2015 · 4 revisions

Original Author: Jack Byrne

Description Detailed Requirement
Host Environment Ubuntu 14.04
QNX Versions 6.5SP1 or 6.6

Install packages on host

%sudo apt-get install git cmake build-essential libavahi-client-dev libsqlite3-dev chromium-browser libssl-dev libudev-dev libgtest-dev libbluetooth3 libbluetooth-dev bluez-tools gstreamer1.0* libpulse-dev

Set your operating system type and architecture type

%export OS_TYPE=QNX
%export ARCH_TYPE=armv7

When your OS_TYPE is QNX, cmake will look for the environment variables QNX_HOST and QNX_TARGET. You can find them based on your QNX install location and view them in terminal. If they're not set, you'll need to set them with export or run qnx660-env.sh if it ships with your QNX version:

%echo $QNX_HOST
/opt/qnx650/host/linux/x86
%echo $QNX_TARGET
/opt/qnx650/target/qnx6

Building SDL Core

// We'll move this to internal SDL soon
%git clone https://github.com/justinjdickow/sdl_core/
%cd sdl_core
%git checkout -b port/qnx origin/port/qnx
%mkdir build
%cd build 
%cmake ../ -DCMAKE_TOOLCHAIN_FILE=../qnx_6.5.0_linux_x86.cmake -DCMAKE_SYSTEM_NAME=QNX -G "Eclipse CDT4 - Unix Makefiles”
%make && make install 

Importing into momenticss

At this point you can open up QNX Momentics using the script provided

%./run-qde.sh
  • Switch perspectives to QNX System Information.
  • Next, find the IP Address of your target, then in moments, right click in Target Navigator Window, Select New QNX Target, Enter IP Address of Target Computer and select Finish
  • Right click on target in the Target Navigator window and select “Launch TelNet Session”
  • Enter login and password
  • Switch to C/C++ Perspective
  • To import the project select Import -> General -> existing Projects into Workspace -> browse -> select Build directory - > Check Copy projects into workspace -> Finish
  • Right click on project folder and select Properties - > Navigate to C/C++ Make Project - > Remove -j4 from build command -> Add install to Build (Incremental Build) Variables -> Apply -> Ok
  • Right Click Project folder and click Build Project to ensure project imported correctly

Running SDL on the QNX Target

  • Right click project -> Run as… -> Run Configurations
  • Click new c/c++ QNX QCONN (IP)
  • Under c/c++ application: type directory "bin/smartDeviceLinkCore"
  • Click on the Upload tab and make sure "Upload executable to target” is checked.
  • Change the remote directory to /root or another directory where you have read write and execute permissions.
  • Under Shared Libraries click “Upload shared libraries to the target” and select Auto to grab shared libraries.
  • Do not run application, exit run configuration for now.

Using the target file navigator in Momentics, copy all files except the smartDeviceLinkCore executable from the host in build/bin/ to /root or whichever directory you chose as the remote directory on your target

SDL needs database create, read, and write permissions so modify init_policy.sh to:

qdb -vvvvvvvV

Modify smartDeviceLink.ini

SystemFilesPath=/root/tmp/fs/mp/images/ivsu_cache

create a configuration file in /pps/qnx/qdb/config called "policy" with the following contents

Filename::/db/policy.db

Download the sdl_hmi from https://github.com/smartdevicelink/sdl_hmi and copy the folder onto your target in a directory that is accessible by the target's browser.

On the target, open browser and navigate to the sdl_hmi/index.html file

Go back to run configurations in Momentics and click run to download sdl to board.

Clone this wiki locally