VxWorksへのインストール

VxWorks

VxWorksはウインドリバー社が開発している組込みシステム向けリアルタイムOSです。 規模の大きな商用リアルタイムOSで最も普及しているOSであり、比較的大型の機器で使用されています。 x86、PowerPC、SH-4、ARM、MIPS、SPARC等の様々なCPU上で動作可能です。 DO-178B規格とIEC61508規格に準拠しており、航空・宇宙等の幅広い分野で使われています。

Wind River Workbench

Wind River WorkbenchはVxWorksのコンパイル、デバッグ等をGUIで実行する統合開発環境です。

このページではVxWorksにOpenRTM-aist(C++版)を導入する手順を説明します。

環境構築

ホストPCはUbuntu 14.04(もしくは16.04)を想定しています。 Windowsには今後対応する予定です。

ホストPCに以下のソフトウェアをインストールしてください。

ウインドリバー社から購入してインストールしてください。

Workbenchは32bit環境で動作するため、64bitのUbuntuの場合はi386版libc6パッケージをインストールしてください。

 sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

  • tclsh
  • cmake
  • subversion

以下のコマンドでインストールしてください。

 sudo apt-get install tclsh cmake subversion

ORBexpressを使用する場合のみ必要です。

ビルド

ビルドはコマンドラインの操作により実行します。

Workbenchから、Project Exploreを右クリックしてOpen Development Shellからコマンドラインシェルを起動してください。


command-line.png


通常のUbuntuのターミナル上でビルドする場合は、以下の手順で環境変数を設定してください。 Workbenchで起動したコマンドラインシェルを用いる場合は環境変数は設定済みのため、次の手順に進んでください。

環境変数の設定

以下の環境変数を設定してください。

変数名
WIND_HOME /home/openrtm/WindRiver
WIND_USR ${WIND_HOME}/vxworks-6.9/target/usr
WRVX_COMPBASE ${WIND_HOME}/components
WIND_BASE ${WIND_HOME}/vxworks-6.9
WIND_HOST_TYPE x86-linux2
WIND_GNU_BASE ${WIND_HOME}/gnu/4.3.3-vxworks-6.9/${WIND_HOST_TYPE}
WIND_FOUNDATION_PATH ${WIND_HOME}/workbench-3.3/foundation

WIND_HOMEはWorkbenchをインストールしたディレクトリにより適宜変更してください。

 export WIND_HOME=/home/openrtm/WindRiver
 export WIND_USR=${WIND_HOME}/vxworks-6.9/target/usr
 export WRVX_COMPBASE=${WIND_HOME}/components
 export WIND_BASE=${WIND_HOME}/vxworks-6.9
 export WIND_HOST_TYPE=x86-linux2
 export WIND_GNU_BASE=${WIND_HOME}/gnu/4.3.3-vxworks-6.9/${WIND_HOST_TYPE}
 export WIND_FOUNDATION_PATH=${WIND_HOME}/workbench-3.3/foundation

コンパイラの実行のために共有ライブラリパスの設定を行ってください。

 export LD_LIBRARY_PATH=${WIND_HOME}/lmapi-5.0/x86-linux2/lib:${WIND_FOUNDATION_PATH}/${WIND_HOST_TYPE}/lib:${LD_LIBRARY_PATH}

omniORBのビルド

omniORBを使用する場合は、omniORBのソースコードのビルドが必要になります。 omniORBを使用しない場合は、次の手順に進んでください。

ソースコード入手

以下のコマンドでomniORBのソースコードを入手してください。

 wget https://jaist.dl.sourceforge.net/project/omniorb/omniORB/omniORB-4.2.2/omniORB-4.2.2.tar.bz2
 tar xf omniORB-4.2.2.tar.bz2

修正パッチ適用

VxWorks 6.6、6.9対応の修正パッチを適用します。

 wget http://svn.openrtm.org/omniORB/trunk/vxworks/omniORB-4.2.2-vxworks.patch
 patch -p1 -d omniORB-4.2.2 < omniORB-4.2.2-vxworks.patch

IDLコンパイラなどのビルド

IDLコンパイラなどはUbuntu上で動作する必要があります。 以下の手順でUbuntu用にomniORBをビルドしてください。

 cd omniORB-4.2.2
 mkdir build
 cd build
 ../configure
 make
 cd ..

クロスコンパイル

VxWorks用にomniORBをビルドします。

 sed -i '1s/^/platform = ${VXWORKS_PLATFORM}\n/' config/config.mk
 cd src
 make export

ただし、VXWORKS_PLATFORMには動作環境に合ったものを入力するようにしてください。

VXWORKS_PLATFORM CPU VxWorksのバージョン 実装方法
powerpc_vxWorks_kernel_6.6 PowerPC 6.6 カーネルモジュール
powerpc_vxWorks_RTP_6.6 PowerPC 6.6 RTP
powerpc_vxWorks_kernel_6.9 PowerPC 6.9 カーネルモジュール
powerpc_vxWorks_RTP_6.9 PowerPC 6.9 RTP
simlinux_vxWorks_kernel_6.6 Linux上のシミュレータ 6.6 カーネルモジュール
simpentium_vxWorks_RTP_6.6 Linux上のシミュレータ 6.6 RTP
simlinux_vxWorks_kernel_6.9 Linux上のシミュレータ 6.9 カーネルモジュール
simpentium_vxWorks_RTP_6.9 Linux上のシミュレータ 6.9 RTP

※カーネルモジュールのビルドの場合にはネームサーバー等は生成しません。VxWorksでネームサーバーを起動する場合はRTPのビルドも行ってください。

OpenRTM-aistのビルド

ソースコードの入手

以下のコマンドでソースコードを入手してください。

 svn co http://svn.openrtm.org/OpenRTM-aist/trunk/OpenRTM-aist/

コンパイル

以下のコマンドでコンパイルを開始します。

 cd OpenRTM-aist/
 python convert_character_code.py ./ vxworks euc_jp
 mkdir src/lib/coil/common/coil
 cp src/lib/coil/common/*.* src/lib/coil/common/coil/
 cp build/yat.py utils/rtm-skelwrapper/
 mkdir build_vxworks
 cd build_vxworks/
 cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE} -DVX_VERSION=${VX_VERSION} -DORB_ROOT=${ORB_ROOT} -DOMNI_VERSION=${OMNI_VERSION} -DCORBA=${CORBA} -DVX_CPU_FAMILY=${ARCH} ..
 make

CMakeのオプションには以下を指定してください。

TOOLCHAIN_FILE VxWorks 6.6(カーネルモジュール、PowerPC)の場合は../Toolchain-vxworks6.6-Linux.cmake、それ以外の場合は../Toolchain-vxworks6.cmake
VX_VERSION vxworks-6.6vxworks-6.9
ORB_ROOT omniORBのディレクトリ(例:/home/openrtm/omniORB-4.2.2)
VX_CPU_FAMILY ppc(PowerPC)、simlinux(カーネルモジュール、シミュレータ)、simpentium(RTP、シミュレータ)
OMNI_VERSION omniORBのバージョン(40、41、42)、omniORBを使用しない場合は不要
CORBA omniORB、もしくはORBexpress

※RTPの場合はcmakeコマンドに-DRTP=ONを追加する必要があります。

動作確認

ビルドが完了したら以下の手順で動作確認を行ってください。

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク