24.1.x,适合于2.4核心,主要采用rthal实现方案。3.x版本,适合2.4-2.6核心,采用了Adeos实现方案。最新版本为RTAI 3.3。(源代码中集成了Adeos补丁)
1. 在所有工作开始前,先来核对一下你的gcc版本。例如: # gcc –v
Paolo Mantegazza教授(RTAI开发者)用的版本是 2.3.95。可是这似乎太老了。
gcc4.x版本虽然更高效,但是语法要求更严格,所以编译会出错。Gcc3.2版本也会有问题。同时也有人反映,Red Hat公司定制的gcc编译器对RTAI也不是太友好。
所以,建议使用gcc3.4版本( 例如Fedora Ⅲ自带的gcc )
2. 下载一个干净的纯内核( “vanilla” kernel ) 最好从www.kernel.org下载(比如linux2.6.11.tar.bz2)。 (如Fedora的修改过的内核无法使用)
3. 下载RTAI3.3或者更新版本(www.rtai.org)
4. 更换目录到/usr/src 例如:# cd /usr/src
解压内核源码 例如:# tar xvjf linux-2.6.11.tar.bz2
建立Linux符号连接 例如:# ln -s linux-2.6.11 linux
5. 把RTAI源码包解压到/usr/src/rtai-3.3
建立RTAI符号连接会使得下面的安装方便些。例如:# ln -s rtai-3.3 rtai
6. 为内核打上Adeos补丁。注意:所打的补丁要和内核版本相对应。内核版本号有四位,比如最新稳定内核2.6.16.11.但补丁的内核版本只对应前三位。这没有大问题。但尽量使用稳定版本内核。
例如:
# cd /usr/src/linux
# patch -p1 < .. /rtai-3.3/base/arch/i386/patches/hal-linux-2.6.11-i386-r12.patch
7. 在make xconfig之前,可以利用原有(如Fedora)的.config文件,一般在/boot目录下,名字可能叫做config_xxx_yyy,因系统而异。将之拷贝到/usr/src/linux下。以节省配置内核的功夫。
8. 配置内核
例如:
# make menuconfig 文本界面
或者 # make xconfig (QT lib)
或者 # make gconfig (GTK lib)
注意: 配置内核至少遵照以下几点
(有的因版本异同不一选择符合自己版本的选项)
· Adeos Support -> Adeos Support 选中
· Loadable module support -> Module versioning support 不能选中
· Kernel hacking -> Compile the kernel with frame pointers 不能选中
· Processor type and features -> Use register arguments不能选中(CONFIG_REGPARM)
· Processor type and features -> Interrupt pipeline 选中
· Loadable module support -> Module versioning support不能 选中
· 如果在后面使用RTAI的时候出现错误: RTAI[hal]:ERROR, LOCAL APIC CONFIGURED BUT NOT AVAILABLE/ENABLED 那么你应该在“Processor type and features”下 取消APIC项。
9. 接着是编译内核[2.6.x为例] (具体安装参见内核源代码目录下的 README文件)(这时最好是root用户登陆而不是仅仅sudo)例如:
# make
# make modules_install
# make install
10. 配置RTAI
进入RTAI源代码目录,配置RTAI。跟配置Linux内核一样。例如:
# make xconfig
这里要注意:”General” ->”Linux source tree” 要指向刚才编译的源代码目录。否则配置中会有错误。其他的选项根据需要选择。
11. 安装RTAI
# make
# make install (一般成功安装后,会安装在 /usr/realtime/下)
12. 体验RTAI (它提供了一些例子 放在testsuite目录中)
#cd install_dir/testsuite/kern/latency
或者 #cd install_dir/testsuite/user/latency
然后 # ./run