* 参考にしたもの(特に,一番下): [#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> <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) (リターンキーを押す,以下,数箇所,全てデフォルトでリターンを押した) # 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> <li>カーネルとモジュールのコンパイル <pre> # 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