BROKEN's Advanced Vehicle Laboratory

Real-Time Linuxによるリアルタイム処理とOpenGL によるシミュレータの構築 (追記)

index section 1 section 2 section 3 section 4 section 5 section 6
bibrography appendix A appendix B appendix C

RTLinux Ver.2 による Ver.1 コードの実行

Real-Time Linux (以下 RTLinux)は linuxカーネルにパッチを当てた 形で使用するため, RTLinuxのバージョンは linuxカーネルのバージョンに応じて

というように使い分ける必要がある。 私たちが現在使用しているカーネルはほぼ 2.2.x系列なので RTLinuxも Ver.2 を使用したいのだが、 世間に出回っているRTLinuxの資料は Ver.1 について書かれたものが多く、 Ver.2 について書かれた資料はまだ少ない。 したがって, 手に入る資料に沿ってVer.1 の書式でプログラムを書くためには 現在使用しているlinuxカーネルのバージョンを下げなければならない という問題が発生する。

そこで、本解説では RTLinux Ver.2 で Ver.1 のソースコードを動かしてしまう という裏技について述べる。 実は Ver.2 には Ver.1 との互換性を持たせるための仕組みがはじめから 備わっているため、わざわざカーネルのバージョンを下げなくても linux-2.2.x + rtlinux-2.0 のカーネルのまま Ver.1 の書式で プログラムを動かすことができるのである。(このことは、tgzファイルを展開したときにできる説明のファイルを読めば書いてある)

やりかた

カーネルをコンパイルする前に Ver.1 を使用するためのオプションを選択する 必要がある。 RTLinuxのインストールだけを説明したWeb site は山ほどあるので インストールに関する詳しい説明はそちらを参照してほしい。 ここではすでに ftp.rtlinux.com あたりから rtlinux-2.0-prepatched.tgz を入手してきたものとして話を進める。

まず、スーパーユーザ( root )になって適当な場所にファイルを展開する。 どこでも良いのだが, /usr/src あたりが普通だろう。

# cd /usr/src 
# tar zxvf rtlinux-2.0-prepatched.tgz 

ファイルを展開して出てくる README, INSTALL, GettingStarted.txt, FAQ 等は RTLinuxに対する今後の理解を助けてくれるので軽く目を通しておこう。

Ver.2 を Ver.2 の書式のまま使用する場合はここから普通に カーネルのコンパイルに入って良いが, Ver.1 互換で使用する場合には ここで Ver.1 互換オプションの設定をする。 この互換オプションの設定は rtl_conf.h のコメント文をはずすことで有効になる。

# cd /usr/src/rtlinux-2.0/rtl/include 
# mule rtl_conf.h 

と入力して, /* #define CONFIG_RTL_USE_V1_API 1 */ となっているコメント文を解放して有効にする。 これ以降は普通にカーネルをコンパイルする手順でよい。

 # cd /usr/src/rtlinux-2.0/linux 
# make xconfig

ここでは

real time : [y]
enable loadable module : [y]

を忘れずにチェックしておこう。 その後,

# make dep; make clean; make bzImage 
# make module; make module_install 
# make install && lilo 
# shutdown -r now

とでもしておけば良い。 ここら辺は人によって流儀が違ったりするので, 好みに応じてコンパイル & インストールしてほしい。 これでカーネルのインストールは終わったが,仕事はまだ終りではない。 再起動したら、

# cd /usr/src/rtlinux-2.0/rtl 
# make; make install 

と入力して, 最後の締めくくりとして MANPATH の追加を行う。 RTLinux には man ページがついているので MANPATH に /usr/src/rtlinux-2.0/rtl/man を追加しておこう。 ここまでやってやっと一段落となる。

サンプルプログラムの動作確認

正常に RTLinux がインストールされたかどうかを確認するために サンプルプログラムを実行してみよう。 Ver.2 のサンプルプログラムは /usr/src/rtlinux-2.0/rtl/examples に、 Ver.1 互換のサンプルプログラムは /usr/src/rtlinux-2.0/rtl/examples/compat にある。

手始めに frank というディレクトリにあるサンプルプログラムから make して 実行してみよう。 このプログラムには これからリアルタイム処理プログラムを開発していく上で最も基本となる タスク管理やプロセス間通信といった要素が含まれているので, 是非始めに実行させて動作を確認してもらいたい。

なお、Ver.1 互換モードにしてしまった場合, Ver.2 のサンプルプログラムは 動作しないことを最後に付け加えておく。