占位图像 用户ID: 密码: 验证码: 登录 注册     占位图像
 
教育168搜索

a
频道信息
学前教育 基础教育
小学 初中
高中 高等教育
心理学 机械工程
园林 IT教育
办公软件 Director
Authorware 图形图象
FIREWORKS CORELDRAW
Maya PhotoShop
AutoCAD 3D
操作系统 Windows xp
Windows Vista Linux
Windows 2003 Windows 2000
FreeBSD 注册表
网站制作 FLASH
Dreamweaver CSS教程
装修设计 LightScape
装修风水 方案设计
英语 商务外语
素质教育 法制教育
企业培训
最新更新
·了解Linux系统强大的控制
·VMWare虚拟机上安装Ub
·Linux安装不求人 无需分
·Ubuntu6.0.6下的a
·在Linux桌面上 随意使用
·Ubuntu 7.04 桌面
·linux学习(远程控制跟I
·在Linux系统下优化Ora
·Ubuntu Linux:M
·在Linux系统下建立强大的
·Linux系统下如何加载U盘
·在嵌入式Linux中实现80
·Linux下安装JDK,To
·如何恢复误删除的Linux文
·Linux系统环境下的高级隐
·内核操作 Linux2.6内
·轻松实现 Linux系统下互
·Linux操作系统下利用SS

点击排行
·Ubuntu Linux:M
·在Linux桌面上 随意使用
·在Linux系统下优化Ora
·linux学习(远程控制跟I
·Ubuntu 7.04 桌面
·如何恢复误删除的Linux文
·Linux系统下如何加载U盘
·无线技术在Linux操作系统
·Linux操作系统下利用SS
·内核操作 Linux2.6内
·Ubuntu6.0.6下的a
·在嵌入式Linux中实现80
·在Linux系统下建立强大的
·提高Linux系统性能加速网
·轻松实现 Linux系统下互
·初手学堂;跟我学习安装配置R
·Linux系统环境下的高级隐
·Linux下安装JDK,To

在嵌入式Linux中实现802.11b无线网关
发布日期:2007-5-14  浏览:501次
关键字:

  构成有线网络的传输媒介主要依赖铜缆或光缆;但有线网络在某些场合要受到布线的限制,特别是当要把相隔较远的节点连接起来时,敷设专用通信线路的布线施工难度大、费用高、耗时长,对正在迅速扩大的连网需求形成了瓶颈。无线局域网的出现克服了上述缺点,因此无线局域网发展比较迅速。基于802.11b的产品已成为应用主流。这些产品使用的是2.4 GHz频段,能够在短距离内实现11 Mb/s的接入速率,每个接入点可以同时支持多个用户的接入。而无线网关作为连接无线终端与有线网络之间的桥梁,是构成无限局域网的重要组成部分。作者重点要探讨的就是如何在嵌入式Linux系统上实现无线网关的功能。
  1、嵌入式Linux的基本原理

  嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁减,适于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统由于硬件的先天限制,只具有极稀少的硬件资源,通常不具有磁盘而用小容量的Disk on Chip或Disk on Module等来代替。

  Linux作为嵌入式操作系统是完全可行的。它能处理嵌入式任务和用户界面;将Linux看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其他的分拆的微内核到完整的服务器,支持所有的文件系统和网络服务。Linux作为嵌入式系统,对许多CPU和硬件平台具有易移植、稳定、功能强大、易开发的优点。Linux作为一种可裁减的软件操作系统,是发展未来嵌入式设备的绝佳资源。因为Linux的源代码公开,易于定制,提供完成嵌入式功能的基本内核和所需要的用户界面。

  一个小型的嵌入式Linux系统需要三个基本要素:引导工具、Linux微内核(内存管理、进程管理和事务处理)和初始化进程。如果要它成为完整的操作系统且继续保持小型化,还得加上硬件驱动程序、文件系统以及提供所需功能的一个或多个应用程序。

  2、802.11b无线网关在嵌入式Linux上的实现

  由于Linux开始是为台式机开发的,加上嵌入式系统硬件资源固有的一些限制,因此,要实现无线网关在嵌入式Linux系统上的应用,就需要对Linux系统进行特别定制,删除无线网关不需要的部分,真正做到精简系统,减少成本的目的。

  2.1 精简内核

  Linux内核是可以根据特定的要求进行定制的,我们使用的是2.4.4的内核。在/usr/src/Linux目录下,使用make menuconfig,去掉内核对floppy、cdrom的支持选项;Second extended fs(ext2)是实际上的Linux文件系统的标准,所以除了此项,把对其他所有filesystem的支持去掉;去掉内核对sound的支持;去掉所有的字符设备(char-acter device)等。

  在去除的同时,要根据AP应用软件及一些特定功能的要求,在内核中留下对需要的驱动的支持,具体的有:①无线网关连接无线网络与有线网络,因此要保留对网络的支持(network support),保留对TCP/IP stack的支持,保留对以太网卡如嵌入式最常用的R18139驱动的支持,并且要在内核中设置模块项;②嵌入式系统如果使用的是Disk On Chip,则内核中还要选中对它的支持:M-sys-tems drivers;③在内核中保留对特定功能的支持,如要使用PPP(点对点协议),则编译的内核必须包含对PPP的支持。

  配置完成后,重新编译内核,然后修改Linux系统引导器lilo的配置文件并最后以新编译的核作为启动内核。重启计算机,若运行一切正常,则精简内核的工作就完成了。

  2.2 缩小Linux文件系统

  嵌入式Linux本身是一种操作系统。它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外部设备的接口。它存在的目的是为了管理所有的硬件资源,并且提供给应用软件一个合适的操作环境,因此在对嵌入式Linux系统进行大幅度删除、缩小的同时也要保留一些基本的命令和目录。

  这些保留的命令和目录大体可以分为三类。一类是Linux系统启动所需要的。这类重要的文件有init、getty等,重要的目录与文件有/etc/rc.d、/etc/inittab等;在启动时还会调用目录/bin及/sbin下的一些命令,若已删除,可以根据启动时的出错信息进行添加。第二类是用于完成一些系统基本功能的保留命令和目录,最简单的如拷贝命令cp,进入和跳出目录的命令cd,列举目录下内容的命令ls等,这些命令完成操作系统最基本的功能。另一些命令需要与特定的配置文件或是存放配置文件的目录相对应,完成相对特殊的功能。当然,具体要实现什么功能要根据实际来定,并尽可能保留必要的命令与相应的目录或是配置文件,达到在完成功能的情况下尽可能少地占用存储空间。完成上面的裁减工作后,重启。若Linux能够正常启动、运行,表明初步的Linux嵌入式系统已经构架成功。最后一类就是使无线网关能够正常工作的。无线网关是以运行脚本命令pcmcia将驱动程序中已编译好的目标文件作为模块加载到系统中而启动的,Linux提供了depmod、insmod、rmmod及其他一些命令来保证适当的模块以正确的顺序加载,所以系统中必须保证存在这些命令,同时无线网关启动时还要读取配置文件。这些配置文件通知无线网关的驱动程序相关参数的设置,所以配置文件所在的目录/ect/pcmcia要保留。有了这些以后,无线网关就能正常启动了。

  2.3 无线网关功能的实现

  如图1所示,无线网关需要完成的最重要的功能就是:与无线节点通信、桥接所有的无线节点、实现无线网络和有线网络的跨网段连接。

  配置Linux的内核模块,用PCMCIA CardService的方式驱动PCMCIA,运行“make modeules”以及“make
modeules_install"来产生和安装核心模组。由于标准发行的“Linux内核源码中,桥接功能和封包过滤功能(NetFiIi—ter)不能一起正常工作,因此为了要在同一台计算机上同时运行桥接功能和IPtables,需要对核心源码进行修补。相关补丁可以从http://bridge.sourceforge.net/上下载。另外,要获取PCMCIA-CS 3.2.1和PRISM2 HlostAP的驱动程序包,移植PCMCIA-CS和PRISM2 HostAP的驱动程序。完成这一步工作需要具有Linux下编译程序源码的简单知识,主要是交叉编译器(GCC)的使用。编译好的模块*.o文件放在/lib/modules/2.4.4/misc:下,然后用depmod-a使此模块成为可加载模块。模块用insmod命令加载,用rmmod命令卸载,并可以用lsmod命令查看所有已加载的模块的状态。最后,桥接有线网卡和无线网卡,需要Linux下硬件(主要是网卡)配置和网络配置的一些基本知识。

  模块搭建完毕后进行桥接功能的构建。解开桥接补丁bridge-utils.tar.gz,编译全部通过并且移植成功后,可以用“ifconfig-a”命令查看所有的网络接口:lo——本地loopback设备;ethO——第一个以太网卡;ethl——第二个以太网卡;wlan0——无线网卡。用“ifconfig<设备>0.O.0.O”命令改变除了lo设备以外所有网络接口的工作方式,以迫使系统进入杂乱模式,可以接收所有数据包。然后,执行“brctl addbr br0”命令来添加一个名字为br0的桥接设备,再用“bretl addif br0 ethO”和“brctl addif br0wlan0"把无线端和有线端的接口绑定。接着,用“ifeonfigbr0 192.168.2.18 up'’使桥接设备生效。

  内核配置时选定GeneraI setup-[*]Sysctlsupport,这样才会在板子的文件系统中/proc/sys/net/ipv4/出现ip_forward文件,然后在应用程序中提供ena程序(加到etc/init.d/rcS中一句/bin/ena-e),将ip_for-ward文件中默认的0改为1,这样就打通了数据转发的通道。下面就是要加上iptables,以支持NAT(NetWork Ad—dress Translation)。从网上下载iptables-1.2.5软件,在iptables-1.2.5目录下执行make,编译通过后,将生成的可执行文件iptables加到ramdisk里面,然后烧写到板子上进行配置即可。

  iptables对NAT的支持既需要Linux内核的支持,还需要iptables命令的设置:

  ①内核编译选项。在内核配置选单中的“Networkingoptions-"选项下,选中“NetWork packet filtering(replaces ipchains)”项,并且在下面的“IP:Netfilter Con—figuration-”选项中选择全部选项。
  ②iptables命令支持
  #!/bin/bash
  # 打开端口转发
  echo 1>/proc/sys/net/ipv4/ip_forward加入转发规则:iptables - t nat - A POS—TROUTING - 0 ethl - j MASOUERADE。

  至此,构建无线网关的工作全部完成。

  3、测试结果

  搭建无线网关的测试系统如图2所示。



  将上位机的网关设置为172.17.248.169,用VB 6.0在上位机上开发一个负责监听网络的应用程序;在无线终端一方编写一个客户端程序,负责客户端数据的发送和接收显示,并在无线终端一方添加从网关到上位机的路由。然后,上位机运行ping命令,测试结果如下:

  # ping 192.168.6.100
  PING 192.168.6.100 (192.168.6.100):56 data bytes
  64 bytes from 192.168.6.100:icmp_seq=0 ttl=255 time=1.8 ms
  64 bytes from 192.168.6.100:icmp_seq=1 ttl=255 time=1.4 ms
  64 bytes from 192.168.6.100:icmp_seq=2 ttl=255 time=1.4 ms
  64 bytes from 192.168.6.100:icmp_seq=3 ttl=255 time=1.4 ms
  ---192.168.6.100 ping statistics---4 packets transmitted,4 packets received,0% packet loss round—trip min/avg/max=1.4/1.5/1.8 ms上位机与无线终端通信的测试结果如图3所示。


  结语

  至此,嵌入式Linux系统上802.11b无线网关的软件实现工作基本结束。测试结果表明,无线网关的基本功能,即与无线终端通信、桥接无线终端、实现无线网络和有线网络的跨网段连接已经实现。下面将对该无线网关做完善,以便进一步实现该无线网关在EPA(Ethernet for Plant Au-tomation)控制网络中的应用。

关键字:

相关信息 用户评论
·了解Linux系统强大的控制台、终端和shell
·VMWare虚拟机上安装Ubuntu Linux方法
·Linux安装不求人 无需分割硬盘安装Ubuntu
·Ubuntu6.0.6下的apache2+php5+mysql配置的一些问题
·在Linux桌面上 随意使用Windows的文档
·Ubuntu 7.04 桌面服务器配置
·linux学习(远程控制跟IP地址配置)
·在Linux系统下优化Oracle具体步骤
·Ubuntu Linux:MySQL安装指南
·在Linux系统下建立强大的FTP搜索引擎
·Linux系统下如何加载U盘或移动硬盘
·Linux下安装JDK,Tomcat及设置Cron程序
·如何恢复误删除的Linux文件
·Linux系统环境下的高级隐藏技术介绍
·内核操作 Linux2.6内核驱动移植参考
·轻松实现 Linux系统下互联网过滤功能
·Linux操作系统下利用SSH进行远程控制
·制作在软盘上跑的Linux引导器详细过程

 

更多评论

验证码:
验证码