RTAI安装与配置

来源:互联网 发布:js视频广告广告代码 编辑:程序博客网 时间:2024/05/18 17:57
原文地址:点击打开链接
  在介绍RTAI之前,先让我们看一下我们的硬件,我的电脑是最近才买的,主板是Intel DG41,CPU是Celeron E3200,内存有两个G大,硬盘是250G,当然最关键的还是前两项指标,另外忘记说另外一个比较重要的指标,苦于没有太多的米米,只能配一个集成显卡了,如果你对实时性的要求特别特别高的话,那么建议你选择独立显卡。在这样一台全新的机器上来安装,别说是RTAI,单单就是linux,就折腾了我一天多,不是因为别的,众所周知,linux对新硬件的支持不是特别好。好在我一开始就认定了Centos,虽然它是服务器版本的linux,对新硬件的支持肯定不如Ubuntu,但这次我真的是运气好,哈哈,一开始选择的Centos5.3,连启动界面都进不去,然后再网吧里花了七八个小时下载了最新的Centos5.4,结果就顺利的安装上了linux操作系统,当然内核是老了点,才2.6.18。
  接下来我们再谈一谈安装RTAI所必须的几个要素。首先是linux内核源代码,在内核版本的选择上走了一些弯路,由于我的主板是09年3月份刚下市的,因此选择在这之前发布的linux内核可能存在一些你所不知道的问题,事实也证明了我的担心,我一开始选择了2.6.27.19来配合rtai3.7,在CPU类型上选择了i386,core2/newer Xeon,但在启动新的内核之后,不是一进去就死机,就是有时突然莫名奇妙的死键盘和鼠标,然后我上网查询,但无果,我然后凭直觉判断应该是内核的选择版本有问题,于是我下载了最新的2.6.32内核,但这次更加让我郁闷了,每次启动内核后在进入grub界面一刹那就死机,于是我想这可能是2.6.32内核的问题,之后我换成了2.6.31.8内核来配合RTAI3.8,这一次我成功了。
    下面是具体的配置步骤,一般来说你需要从网上下载2.6.31.8内核和rtai3.8到/usr/src/中,然后按照如下命令来完成配置。在内核的选型上比较关键,我用的是core 2/newer xeon,其余的就没有特别说明了。
   

1.                      tar  -xvf  linux-2.6.31.8.tar.gz

tar  -xvf  rtai-3.8.tar.tar

ln  -s  linux-2.6.31.8  linux

2.               cd  linux

patch  -p1  <../rtai-3.8 /base/arch/x86/patches/hal-linux-2.6.31.8--.xx.patch

3.               cp  /boot/config-2.6.18-generic  .config

4.               注意:如果不是第一次编译,那么需要移除/lib/modules/下相应的核心,并设置正确的时钟与日期

5.               make  menuconfig

这里面涉及到具体的选项,说法很多,可以参考内核配置选项分析一书,但这里由于要配合rtai,因此有些选项不能选,否则会影响系统的实时性,具体的参考配置文件放在我的邮箱网络存储里。

6.                make  clean(第一次时不使用)àmake bzImageàmake modulesàmake modules_install

7.               mkinitrd  --without-dmraid  /boot/initrd-2.6.31.8-rtai.img  2.6.31.8

8.               cp  arch/x86/boot/bzImage  /boot/vmlinuz-2.6.31.8-rtai

9.               cp  System.map  /boot/System.map-2.6.31.8-rtai

10.           ln  -s  /boot/System.map-2.6.31.8-rtai  /boot/System.map

11.           df  -h àvim  /boot/grub/menu.lst

              root=/dev/sda3   %/dev/sda3 as the / directory

              ro root…后加入:ide=nodma  说明:关掉硬盘的DMA功能(不适用于SATA硬盘)。可通过hdparm  -d  /dev/had查看硬盘的DMA功能是否被关掉。

12.           reboot

13.           cd  /usr/src/rtai-3.8 àmkdir  build àcd  build àmake  -f  ../makefile  menuconfig

14.           RTAI配置:Base systemsà

Other featuresà

   [*]Mathfuns support in kernel

   [*]C99 standard support

                                   Machine x86à

                                          [*]FPU Support

                                          [1]Number of CPUS(SMP only)------if your cpu is uniprocessor

15.           make  àmake  install

16.           关掉ipv6 vim  /etc/modprobe.conf

添加两行:alias  net-pf-10  off  alias  ipv6  off

17.           取消休眠和屏保:系统à首选项à电源首选项à取消休眠

系统à首选项à屏幕保护程序à取消屏保

18.            cp  base/arch/i386/calibration/rtai_smi.ko  /usr/realtime/modules/rtai_smi.ko

说明:对于Intel芯片主板一般都有SMISystem maintenance interrupt)这是一个实时杀手并导致100us以上的响应延迟,因此需要关掉SMI,但是根据Intel官方提供的风险报告称现代处理器上关掉此项SMI有可能导致CPU温度升高,就像没有散热一样,严重时会导致损害计算机,因此关闭SMI之前请认真评估风险性。

19.           vim  /etc/rc.d/rc.local

  insmod  /usr/realtime/modules/rtai_hal.ko

  insmod  /usr/realtime/modules/rtai_sched.ko

  insmod  /usr/realtime/modules/rtai_fifos.ko

  insmod  /usr/realtime/modules/rtai_shm.ko

  insmod  /usr/realtime/modules/rtai_sem.ko

  insmod  /usr/realtime/modules/rtai_math.ko

  insmod  /usr/realtime/modules/rtai_smi.ko

  rmmod  pcspkr   %%(此项是声音模块,亦有可能导致延时,因此关掉。)

 

20.            vim  /etc/X11/xorg.conf

  在Section  “Device” 下添加 Option  “Accel”  “false”

  在Section  “Screen” 下添加 Option  “NoMTRR”

21.           reboot

22.          cd  /usr/realtime/testsuite/kern/lantency  à./run

你会看到ovl max一项,这就是你的实时系统的最坏延时,单位是纳秒,一般来说10us以内都是很不错的,可以和vxworks一较高下,同时注意overruns一项应该为零,不然就问题大了。

    到这一步你已经完成了整个工作的80%,基本上满足你的需求了,但如果你是一位苛求完美的人的话,那么这还不够,还需要利用RTAI提供的工具测试和分析你的机器的各项参数,然后修正它们后就能够使你的系统发挥到极致,关于这些的内容将在接下来的一篇文章中得到说明。
0 0
原创粉丝点击