免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1528 | 回复: 0
打印 上一主题 下一主题

RTLinux实时内核配置成功 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-02 11:14 |只看该作者 |倒序浏览

终于把RTLinux实时内核配置成功了,总的时间加起来大约有一天半左右,当成功那一刻,内心真的是激动极了,要知道这中间我反复编译,不知道面对多少次因不成功而造成了死机的情形,中间甚至有了放弃的念头,但最终我还是坚持了下来,并取得了令人欢心鼓舞的成功。
       由于研究需要,在实时操作系统中我选择了RTLinux,它与windowsRTX、VxWorks等实时操作系统相比的诸多好处在此处不必多说,我选择了虚拟机来进行实验,一方面躲开了linux2.4内核不支持SATA硬盘的问题,另一方面可以更方便的进行实验研究,但代价是在配置过程中遇到了更多的问题,一度使我决定放弃虚拟机,而改为用实体操作系统进行研究,不过好在我认真分析了问题的所在,并参考了网络上其他人遇到的和我类似的情况,认为问题应该不是出在虚拟机上,而是和本身的内核配置有关系,只要反复尝试更改可疑的内核配置选项,就能够会取得成功,正是这一分析使我走到了最后,看到了黎明的太阳。
       下面简要说说配置过程,以备日后参考。Linux操作系统我选择了Red Hat 9.0系列,内核为2.4.20-8,需要从
www.kernel.org中下载到2.4.20
的内核源代码。rtlinux相应的选择了rtlinux-rtl3.2-pre3,其下载地址为
ftp://ftp.rtlinux-gpl.org/pub/rtlinux/。这两个文件下载后放到/usr/src目录下。
1.       把下载到的内核linux-2.4.20.tar.bz2解压到/usr/src目录下,解压后为linux-2.4.20,并建立一个链接文件指向它:
cd /usr/src
tar jxvf linux-2.4.20.tar.bz2
ln –s linux-2.4.20 linux
2.       解压rtlinux,解压后为rtlinux-3.2-pre3:
tar jxvf rtlinux-rtl3.2-pre3.tar.bz2
ln –s /usr/src/linux-2.4.20  rtlinux-3.2-pre3/linux (建立链接文件)
3.       为了方便,把rtlinux-3.2-pre3目录patches下的相应内核patch复制到/usr/src下
cp rtlinux-3.2-pre3/patches/kernel-2.4.20-patch   rtlinux-patch
4.       进入到linux内核目录下,进行patch:
cd linux
patch –p1
5.       内核配置,这一步最为关键,如果最后失败,就是从这步重新开始,更改可疑的内核配置选项。需要说明三点,第一是由于选用的是虚拟机(后面验证要想通过RTlinux各个模块的测试,也需要加上这个选项),所以需要在scsi support中选择相应的Buslogic xxx support。第二是在File Systems中选择所有带有ext3的选项,选y表示直接编译进内核。第三是在处理器选型上很关键,选的不对,就会早成死机,我最后能够成功也是因为在这里进行了修改。
除此之外,还有以下几点需要注意:
       Loadable module support->
              
  • Enable loadable module support,RTLinux使用模块功能来加载实时任务,此功能必须存在。
           General setup->
                  (Direct) PCI access mode,嵌入式系统的BIOS可能很简化,甚至没有初始化PCI设备,此选项使Linux绕过BIOS自行配置PCI设备。
                  [] Advanced Power Management BIOS,机器的APM功能一定要关闭,它会抢夺RTLinux对硬件的控制。
           Memory Technology Devices(MTD)->
                  
  • Memory Technology Devices(MTD) support 此选项使RTLinux支持电子盘(SolidStateFlashDisk),大多数嵌入式系统都是用此类设备作为外存。如果实际使用的是IDE接口的电子盘,则不需要该选项。
           File systems->
                  
  • Compressed ROM file system support,支持压缩的ROM文件系统,对于存储空间比较紧张的嵌入式系统建议使用。
                  
  • /proc file system support

    make xconfig
    选择更改
    Save and exit
    6.       编译内核
    make dep
    make clean(在重新进行内核配置时进行,第一次不必)
    make bzImage
    make modules
    make modules_install
    7.       进行内核启动相关设置
    cp arch/i386/boot/bzImage  /boot/rtzImage
    cd  /lib/modules/2.4.20-rtl3.2-pre3/kernel/drivers/
    mkdir scsi
    cd /usr/src/linux
    cp drivers/scsi/Buslogic.o /lib/modules/2.4.20-rtl3.2-pre3/kernel/drivers/scsi/
    cd /boot
           mkinitrd initrd-2.4.20-rtl3.2-pre3.img  2.4.20-rtl3.2-pre3
    8.在grub中添加启动新内核的选项
    vi /etc/grub.conf
    添加如下:
    title rtlinux
           root(hd0,0)
           kernel  /rtzImage ro root=/dev/sda2  (可用df –u查看根目录信息)
           initrd  /initrd-2.4.20-rtl3.2-pre3.img
    然后按ESC键,再:q退出。
    8.       重新启动并选择rtlinux系统
    reboot
    9.       进入系统后进入rtlinux目录编译
    cd  /usr/src/rtlinux-3.2-pre3
    10.   rtlinux实时内核配置,可选择默认选项
    make xconfig
    存盘退出
    11.   编译rtlinux内核
    make dep
    make
    make install
    12.   测试Rtlinux和模块,若出现OK则成功,否则表现为死机,需重新更改内核配置并编译
    make  regression
    成功则显示为:Testing multiple loads of rtl.o…      [OK]
    ……………………………………………
    13.   启动rtlinux:rtlinux  start
    查看rtlinux:rtlinux  status
    关闭rtlinux:rtlinux  stop
    14 haha,good luck for you!


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/102467/showart_2015516.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP