菜鸟成长手册:路由器技术深入剖解

时间:2007-05-22 02:51:14  来源:站长资讯收集整理  作者:twoturen

  路由器软件系统的设计过程

  uClinux 操作系统提供了嵌入式Web服务器、PPPOE拔号软件、基于IPTable过滤防火墙等功能模块的源代码。路由器软件系统的设计包括uClinux操作系统的裁剪、基于uClinux操作系统提供的以上功能模块源代码下的修改和设计,从而实现本路由器的嵌入式Web服务器、PPPOE拔号软件、基于IPTable过滤防火墙。

  1、uClinux操作系统裁剪

  ⑴裁剪前准备

  uclinux的裁剪牵涉到对目标的硬件支持问题。要让uClinux支持一个新硬件体系,要做的第一件事情就是收集和构建代码的工具。然后就可以裁减和编译内核。一旦内核支持基本的处理器功能,它就可以运作了,但是如果缺乏驱动程序的支持,就起不了多大作用。典型的驱动程序集合中包括了诸如控制台终端、基本串行设备和一个可能包含了根文件系统的块设备的驱动等。

  在这里主要介绍针对我们刚才介绍的实例系统采用的uClinux裁剪方法。本实例中的宿主机上装redhat9操作系统,因为redhat9具备安装uClinux交叉编译工具时所需要的库。

  首先必须在redhat9下建立uclinux开发环境,建立uclinux开发环境的方法有很多,而且也十分方便。可以从http://www.uClinux.org处下载最新的uClinux的源代码、最新的gcc3的工具链,不过针对于不同的工具链在不同的操作系统下,以及目标板的MCU的不一样,可能在编译内核时会产生错误,在这里,我讲解实例所使用的不是最新版本的。同样的,针对不同的硬件开发环境要对uClinux源代码进行不同的适当修改,修改部分通常是以代码补丁形式实现的,一般网络上会有各种通用模式的补丁提供使用。好了,切入正题,有了齐全的软件包后,安装过程如下:

  (1) 下载内核和工具包

  内核包 : uClinux-disc-200408.tar.gz

  补丁文件:uClinux-disc-200408.patch

  uclinux的源代码和文件系统的源代码,软件包后的数字代表完成的日期。

  工具链 : arm-elf-gcc-200403.sh

  (2) 安装工具包

  sh arm -elf-gcc-200403.sh

  (3) 解压缩内核

  tar -xzvfuClinux-dist-200408.tar.gz,生成uClinux-disk目录。

  (4)安装补丁:

  将补丁文件复制到uClinux-disk目录下,进入该目录,在Shell命令中使用如下命令:

  patch -pl-f

  ⑵内核的编译和生成

  执行以下命令可以进行uClinux编译:

  make xconfig。具体的编译选项配置过程本文不做详细介绍。但在此给出编译的一些基本思想:

  ucLinux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。

  为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:

  自己定制编译的内核运行更快(具有更少的代码)。

  系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)。

文章评论

共有 位CH网友发表了评论 查看完整内容