Installation on QNX



QNX (Queen Nex, or Queenix) is a commercial real-time OS mainly sold for embedded systems. It is a POSIX-compliant UNIX type OS, which is a built-in OS but is a process type operating system similar to general UNIX. The kernel is a microkernel, various functions are modularized as a server, and only the necessary server is operated according to the purpose, so it is possible to configure a compact system. Since it can operate on various CPUs such as x86 family, MIPS, PowerPC, SH-4, ARM, StrongARM, XScale, and furthermore it has obtained certification in accordance with functional safety standard IEC 61508, safety related It can also be used for systems.

QNX also has a free licensing program for educational institutions, which can be used relatively easily at universities and others.


pkgsrc is one of package management systems for UNIX, derived from FreeBSD's port collection and is now used as a package management system of NetBSD. pkgsrc itself does not depend on a specific OS, it can be used as a file system for NetBSD, Solaris, Linux, Mac OS X, FreeBSD, OpenBSD, IRIX, BSD / OS, AIX, Interix, DragonFlyBSD, OSF / 1, HP-UX, QNX, It can be used on various Unix OS such as Haiku, MINIX 3, Illumos.

(G)pkgsrc for QNX

There is no package management system in QNX, and pkgsrc for QNX is maintained in the QNX user forum.

After installing the OS, check out pkgsrc from the repository, and put it on the system. (To access the repository, QNX forum account is required.) Since checking out from the svn repository is very time-consuming, you can also download and use pkgsrc_HEAD 650_r396.tgz, but beforehand the latest in pkgsrc We recommend checking the version.

 # cd /usr/
 # svn checkout --username <username>
 # (cd pkgsrc/bootstrap && ./bootstrap)
 # (cd pkgsrc/misc/figlet && bmake install)
 # pkg_info
 # cd /usr
 # tar xvzf <somewhere>/pkgsrc_HEAD650_r396.tgz
 # (cd pkgsrc/bootstrap && ./bootstrap)
 # (cd pkgsrc/misc/figlet && bmake install)
 # pkg_info

(G)Installing OpenRTM-aist by pkgsrc

pkgsrc has a binary package installation and a method of building from the source and installing it. Not all packages are provided in binary, so you will need to build from sources as needed.

(G)'s pkgsrc repository

OpenRTM-aist provides a binary package at the following URL of

OmniORB necessary for OpenRTM-aist is also provided by because there is no binary package in the above distribution site.


The installation method is as follows.

 # export PKG_PATH=
 # pkg_add -v OpenRTM-aist-1.1.0-RELESE
 Replace 1.1.0-RELESE with the version to be installed as appropriate.
 Running install with PRE-INSTALL for omniORB-4.1.6.
   : Installation of omniORB begins
 Running install with PRE-INSTALL for omniORB-4.1.6.
 Package omniORB-4.1.6 registered in /var/db/pkg/omniORB-4.1.6
   : Installation of OpenRTM-aist begins
 Package OpenRTM-aist-1.1.0-RELEASE registered in /var/db/pkg/OpenRTM-aist-1.1.0-RELEASE
 # pkg_info|grep OpenRTM
 OpenRTM-aist-1.1.0-RELEASE RT-Middleware and OMG RTC framework

Installation is now complete.


A sample program is installed under /usr/pkg/share/openrtm-1.1/examples. We will use OpenRTM - aist to verify the operation of OpenRTM-aist.

(G)Starting name server

First, start the name server.

 # rtm-naming
 # cp /usr/pkg/share/examples/rc.d/omninames /etc/rc.d/
 # chmod 755 /etc/rc.d/omninames
 # /etc/rc.d/omninames

In the latter, we copy the omninames startup script to the rc directory (/etc/rc.d) and then start it. This script can also stop the name server.

 # /etc/rc.d/omninames stop


First, let's start the ConsoleOut component. In the example below, we create a tmp directory in the home directory, copy it to it, and then execute it.

 # cd ; mkdir tmp ; cd tmp
 # cp -r /usr/pkg/share/openrtm-1.1/example .
 # cd example
 # ./ConsoleOutComp
  Component Profile
 InstanceID:     ConsoleOut0
 Implementation: ConsoleOut
 Description:    Console output component
 Port0 (name):
 - properties -
 port.port_type: DataInPort
 dataport.data_type: IDL:RTC/TimedLong:1.0
 dataport.subscription_type: Any
 dataport.dataflow_type: push,pull
 dataport.interface_type: corba_cdr


 # cd ; cd tmp/example
 # ./ConsoleInComp
 Creating a component: "ConsoleIn"....succeed.
  Component Profile
 InstanceID:     ConsoleIn0
 Implementation: ConsoleIn
 Description:    Console input component
 Port0 (name): ConsoleIn0.out
 - properties -
 port.port_type: DataOutPort
 dataport.data_type: IDL:RTC/TimedLong:1.0
 dataport.subscription_type: flush,new,periodic
 dataport.dataflow_type: push,pull
 dataport.interface_type: corba_cdr
 Please input number:

Now, start RTSystemEditor on another PC, connect and activate the port. If you type a number at the ConsoleIn prompt, it will be output from ConsoleOut.

ConsoleIn and ConsoleOut components running on QNX


latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects


Motion editor/Dynamics simulator


Dynamics simulator


Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST


Tokyo Opensource Robotics Association


Middleware for DAQ (Data Aquisition) by KEK