- 追加された行はこの色です。
- 削除された行はこの色です。
* 参考にしたもの(特に,一番下): [#kde7a0b7]
* 必要なもの [#p83bb874]
- PC (Dell PowerEdge 840 を使用.FC5 をインストールしておく)
- linux カーネルのソース ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.21.tar.bz2
- RTAI のソース(2008.6月現在,最新版は 3.6.1) https://www.rtai.org/RTAI/rtai-3.6.1.tar.bz2
* 参考にしたもの [#kde7a0b7]
- http://kojima.plala.jp/rtai.html
- https://www.rtai.org/RTAI/rtai-3.5.tar.bz2
- https://mail.rtai.org/pipermail/rtai/2006-February/014410.html RTAI を Fedora Core にインストールする話
- href="https://mail.rtai.org/pipermail/rtai/2006-September/015985.html">https://mail.rtai.org/pipermail/rtai/2006-September/015985.html</a>
<li><a href="http://www.blogger.com/feeds/5740550295288139350/posts/default/4404957623563932948">subarchtecture を PC-compatible に設定する必要ある</a>
<li><a href="http://www-online.kek.jp/~yasu/Kouryukai02/odagiri-presentation.pdf">RTLinux 他,Real Time OS の比較</a>
<li><a href="http://forums.fedoraforum.org/showthread.php?t=149968">具体的なインストール手順について</a>
</ul>
- https://mail.rtai.org/pipermail/rtai/2006-September/015985.html
- http://www.blogger.com/feeds/5740550295288139350/posts/default/4404957623563932948 subarchtecture を PC-compatible に設定する必要がある,という記述
- http://www-online.kek.jp/~yasu/Kouryukai02/odagiri-presentation.pdf RTLinux 他,Real Time OS の比較
- http://forums.fedoraforum.org/showthread.php?t=149968 具体的なインストール手順について
<ol>
<li>ソースのダウンロード
<ul>
<li>ftp.kernel.org より,/usr/src/linux-2.6.19.tar.bz2
<li>上記 URL より,rtai-3.5.tar.bz2
</ul>
<li>ソースの展開
<pre>
# cd /usr/src
# bunzip2 -c linux-2.6.19.tar.bz2 | tar xvf -
</pre>
rtai-3.5.tar.bz2 についても同様に展開する
<li>パッチをあてる
<pre>
# cd linux-2.6.19
# patch -p1 < ../rtai-3.5/base/arch/i386/patches/hal-linux-2.6.19-i386-1.7-01.patch
</pre>
<li>カーネルパラメータの設定
<pre>
# cp /boot/config-2.6.20-1.2312.fc5 .config
# make oldconfig
(略)
Interrupt pipeline (IPIPE) [Y/n/?] (NEW) (リターンキーを押す,以下,数箇所,全てデフォルトでリターンを押した)
* インストール手順 [#r8d4d939]
+ linuxカーネルとRTAIのソースを /usr/src/ におく.
+ ソースを展開してパッチをあてる
# cd /usr/src
# bunzip2 -c linux-2.6.20.21.tar.bz2 | tar xvf -
# bunzip2 -c rtai-3.6.1.tar.bz2 | tar xvf -
# cd linux-2.6.20.21
# patch -p1 < ../rtai-3.6.1/base/arch/i386/patches/hal-linux-2.6.20.21-i386-1.12-03.patch
patching file Makefile
patching file arch/i386/Kconfig
(略)
patching file mm/mlock.c
patching file mm/vmalloc.c
+ カーネルパラメータの設定
# cp /boot/config-2.6.20-1.2320.fc5 .config
# make oldconfig
(略)
Interrupt pipeline (IPIPE) [Y/n/?] (NEW) (リターンキーを押す,計4箇所,全てデフォルトでリターンを押す)
# make menuconfig (以下,順不同,要修正)
* Lodable module support → Module versioning support を外す.(マニュアルに指示あり)
* Processor type and features
o Subarchtecture Type: PC-compatible
o Processor family: Processor family : Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon
o Toshiba Laptop support 外す
o Dell laptop support 外す
* Bus options (PCI, PCMCIA, EISA, MCA, ISA)
o PCCard(PCMCIA/CardBus) support 外す
* Power management support
o ACPI Support 外す
o APM BIOS Support 外す
o CPU Frequency scaling 外す
* Networking
o IrDA 外す
o Bluetooth 外す
o Networking option
Network packet filtering framework (Netfilter) 外す
DDCP Configuration (EXPERIMENTAL) 外す
SCTP Configuration (EXPERIMENTAL) 外す
TIPC Configuration (EXPERIMENTAL) 外す
Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) 外す
DECnet: router support (EXPERIMENTAL) 外す
The IPX protocol 外す
Appletalk protocol support 外す
WAN route 外す
QoS and/or fair queueing 外す
Network testing 外す
* Device Drivers
o IEEE1394 外す
o ISDN 外す
o Telephony Support 外す
o Sound 外す
o Multimedia devices 3つ全て外す
o MMC/SD Card support 外す
Parallel port support 外す
Fusion MPT device support 全部外す
Machintosh device drivers 全部外す
Character devices
Watchdog Cards 外す
Sony Vaio Programmable I/O Control Device support 外す
USB support 外す(外れていると思ってた)
DMA Engine support 外す
o EDAC 外す
o Virtualization 外す
-- 編集結果
# make menuconfig
</pre>
編集例:
<ul>
<li>Lodable module support → Module versioning support を外す.(マニュアルに指示あり)
<li>Processor type and features
<ul>
<li>Subarchtecture Type: PC-compatible
<li>Processor family: Pentium-Pro → Pentium-III/Celeron(Coppermine)/Pentium-III Xeon (/proc/cpuinfo を参照)
<li>Use register arguments を外す.(マニュアルに指示あり)
</ul>
<li>Networking
<ul>
<li>IrDA 外す
<li>Bluetooth 外す
</ul>
<li>Device Drivers
<ul>
<li>IEEE1394 外す
<li>ISDN 外す
<li>Multimedia 外す
<li>Sound 外す
<li>MMC support 外す
<li><font color="red">Multi-device support (RAID and LVM) は外してはいけない(ブート時に,論理デバイス /dev/VolGroup00/LogVol01 等にアクセスできず,カーネルパニックになる.また,その中の RAID support は <M> でなく,<*> とすること.<M> にすると,カーネルパニックになる.</font>
</ul>
</ul>
(コンパイル時間短縮のため,他にも不要なオプションを外すべき)
<br>
<br>
[[../RTAI/]]
<li>カーネルとモジュールのコンパイル
<pre>
[[./../RTAI/.config]]
&ref(../RTAI/);
&ref(RTAI/);
http://localhost/RTAI/
http://orren/RTAI/
[[http://orren/RTAI/]]
[[テスト:http://orren/RTAI/]]
[[テスト:http:///RTAI/]]
[[テスト:/RTAI/]]
+ コンパイル・インストール
# make
# make modules_install
# make install
+ /etc/grub.conf を編集
+ リブート
# make
</pre>
<li>モジュールのインストール
<pre>
# make modules_install
</pre>
<font color="red">この手続きは後の make install に含まれているはずだが,再コンパイル後の make install では,モジュールがインストールされないことがあるので,明示的にインストールする方が無難.</font>
<br>
<br>
<li>カーネル,test用プログラム等のインストール(この際に /etc/grub.conf にエントリが追加更新される)
<pre>
# make install
</pre>
<li>リブート.
<li>RTAI のコンパイル
<pre>
# cd /usr/src
# ln -s linux-2.6.19 linux (このシンボリックリンクがないと,make menuconfig がエラーになる)
# cd /usr/src/rtai-3.5
# make menuconfig
Machine (x86) ---> Number of CPUs を 2→1 に変更
# make
# make install
</pre>
<li>テストプログラムの実行
<pre>
# cd /usr/realtime/testsuite/kern/latency/
# ./run
* [#gcefb850]
* [#la1c2a99]
* Type ^C to stop this application. [#e0e7234b]
* [#r06cb379]
* [#zc77b94f]
## RTAI latency calibration tool ##
# period = 100000 (ns)
# avrgtime = 1 (s)
# do not use the FPU
# start the timer
# timer_mode is oneshot
RTAI Testsuite - KERNEL latency (all data in nanoseconds)
RTH| lat min| ovl min| lat avg| lat max| ovl max| overruns
RTD| -1968| -1968| 537| 5877| 5877| 0
RTD| -1971| -1971| 702| 5797| 5877| 0
RTD| -1975| -1975| 540| 6363| 6363| 0
RTD| -1975| -1975| 746| 6714| 6714| 0
RTD| -1976| -1976| 503| 6072| 6714| 0
RTD| -1976| -1976| 503| 6072| 6714| 0
</pre>
<font color="red">ACPI が有効になっていると overrunsが大量に出ることがある.その場合は /etc/grub.conf 中,カーネルパラメータで acpi=off を指定する.もしくは,カーネルのコンパイルオプションで,最初から ACPI を外しておいてもいいかもしれない</font>
<br>
<br>
<li>リブート後,デバイスファイルが消えてしまうのに対処する(/usr/src/rtai-3.5/README.INSTALL に記載あり)<br>
以下を,/etc/rc.d/rc.local 最後に追記:
<pre>
if test \! -c /dev/rtai_shm; then
mknod -m 666 /dev/rtai_shm c 10 254
fi
for n in `seq 0 9`; do
f=/dev/rtf$n
if test \! -c $f; then
mknod -m 666 $f c 150 $n
fi
done
</pre>
<li> TODO: freqresp