配置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)控制网络中的应用。
上一页 [1] [2]