剖析无线网络中的 Linux 窍门-Linux应用
·当前位置: 学海荡舟-论文 >> 电脑技术 >> Linux-DOS >> Linux应用 >> 教程正文
剖析无线网络中的 Linux 窍门


若问现在IT业最为时尚的产品和技术是什么,相信很多人的回答都一样:无线网络。无线网络(Wireless Networks,WLAN)是相当便利的数据传输系统,它利用射频(Radio Frequency,RF)技术,取代旧式的双绞铜线(Coaxial)所构成的网络,使得无线网络能利用简单的存取架构让用户通过它,达到“信息随身化、便利走天下”的理想境界。

无线网络的新标准IEEE 802.11g的发布,使得无线网络快速地进入人们的日常生活。IEEE 802.11g实际上采用了和IEEE 802.11b一样的工作频率,但是在编码上使用和IEEE 802.11a系统相同的调制方式OFDM,使网络带宽达到54Mbps。IEEE 802.11g最大的优势是可以向下兼容IEEE 802.11b,可以更好地维护用户的投资。凭借着和IEEE 802.11b的兼容性和高性能,IEEE 802.11g将会大有作为。

网卡类型

目前,常见的无线网卡大多为PCMCIA、PCI/ISA和USB三种类型,使用最多的是PCMCIA(Personal Computer Memory Card International Association)接口的无线网卡。



经过www.Linux.org认证的PCMCIA网卡有两大类,分别是基于朗讯(Lucent)芯片组的PCIMCIA无线网卡和基于Intersil Prism2芯片组的PCMCIA的无线网卡(见表1)。不过由于基于Intersil Prism2芯片组的PCMCIA的无线网卡价格比较便宜(相当于朗讯芯片组的PCIMCIA无线网卡的三分之一),所以国内的PCMCIA的无线网卡以后者居多。



图1 PCMCIA网络适配器工作示意图


首先来看一下PCMCIA网卡的工作示意图1。其中cardmgr是一个守护进程负责监控PCMCIA插槽,有需要时载入其它的驱动程序,并且执行使用者阶层的脚本来反应卡片的插入与移出。它被用来监视卡片状态的插断是在cardmgr处理/etc/pcmcia/config文件之前由低级的插槽来驱动程序模组 (i82365)。cardmgr首先通过CIS获取时钟频率,然后然后访问/etc/pcmcia文件,然后访问内存、中断和输入输出系统,最后通过 /Lib/modules 查询驱动程序。

准备工作

软件方面,需要一套能够正常运行的、内核为2.4.x的Linux系统,推荐使用2.4.18以上的内核,glibc应该在2.2版本以上, GNU C/C++编译器GCC应在 2.95以上及其对应的开发工具。另外最好安装Linux所有程序的函数库、PCMCIA-CS卡驱动程序(版本3.1.33,PCMCIA接口的适配器用到)。硬件方面,计算机CPU为PⅡ400MHz以上,内存64MB,预留一个PCI或ISA扩展槽,一个经过www.Linux.org 认证的PCMCIA的无线网卡。

随着Linux网络技术的快速增长,硬件厂商大大加速对Linux技术支持的硬件产品的开发,使得支持Linux的无线网卡的数量在过去的一两年里显著增长。对于有些设备,配置无线连接非常简单。只要在用户使用的Linux机器中插入无线网卡,在设置过程中单击鼠标,并输入正确的网络参数就可以了。但是,如果其中所装的Linux发行版本未能检测到无线网卡或错误地检测了它,用户很可能会处于未连通状态,而且搞不清楚下一步该干什么。希望这里描述的背景知识和相关过程能使用户掌握所需技能,以便排除安装中的故障,使网卡正常运转。基于朗讯芯片组的PCIMCIA无线网卡的安装比较简单,笔者使用的Cisco Aironet Wireless 802.11b在Mandrake 8.2 Linux下安装时,Linux系统可以顺利地找到设备驱动,并进行相应地配置。

实例解析

CompaqWL110 基于朗讯芯片组的PCIMCIA无线网卡CompaqWL110的安装过程如下。

1.将网卡安装到计算机;

2.使用命令在/etc/pcmcia/config文件中添加以下内容:

card "Compaq WL110 PC Card"
manfid 0x0156, 0x0002 
bind "wvlan_cs"


3. 重新启动Linux计算机或执行以下命令启动无线网卡:

# /etc/rc.d/init.d/pcmcia restart


Intel PRO/Wireless 2011B 使用基于Intersil Prism2芯片组的PCMCIA的无线网卡安装就比较复杂了,需要一个第三方工具来安装。下面就以Intel PRO/Wireless 2011B LAN PCMCIA(见图2)为例介绍一下安装配置过程。笔者的Linux发行版本是Mandrake 8.2 Linux,CPU是AMD Athlon 1100,内存256MB。



图2 笔者使用的Intel无线网卡


编译Linux内核

1. 用以下命令检测自己Linux系统是否已安装了内核源码:

# rpm -q kernel-source


2.如果证实没有安装,那么需要安装盘将kernel-source-2.2.5-15.i386.rpm文件安装:

#rpm -Uhv kernel-source-2.2.5-15.i386.rpm


3.进入Linux源代码存放目录(不同Linux版本会有一些不同):

#cd /usr/src/linux


4. 配置过程:进入基于文本菜单模式的配置界面(见图3),然后运行下面得命令:

#make menuconfig




图3 menuconfig 配置界面


5.重新编译内核,并除去任何对内核提供PCMCIA驱动程序的部分。一般说来,在与其它程序和网络服务起作用时,PCMCIA-CS网卡服务库和驱动程序往往比基于内核的函数库更稳定,而且界面更友好一些。PCMCIA-CS源代码支持的网卡种类不断增多,附带的设备驱动程序的更新和改进通常比内核附带的驱动程序要快捷,运行也更稳定。另外正如前面提到的那样,如果需要构建/安装第三方驱动程序,那么在大多数情况下,该驱动程序需要安装并配置PCMCIA-CS库。从 Main Menu 转至 General setup→PCMCIA/CardBus support,将 PCMCIA/CardBus support选项由“yes”改成“no”(使用空格键将 /<*> 改成 < >),见图4。然后保存修改选项,退出。



图4 除去对内核提供的PCMCIA的支持


6.确保关键文件的位置、有关文件的版本和编译压缩显示的内核。

#make dep;make clean;make bzimage;make modules;make modules


7.启用新内核。方法就是将文件system.map移动或复制到/boot目录,并将内核版本附加在末尾:

#cp /usr/src/linux/System.map /boot/System.map-2.4.18
#cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.4.18


8.修改LILO。首先编辑LILO的配置文件/etc/lilo.conf,使LILO能启动新内核:

# vi /etc/lilo.conf


在文件末尾加入以下内容:

image=/boot/vmlinuz.new 
lable=new 
root=/dev/hda3 
read-only


然后重写LILO的启动扇区,使改动生效,最后运行 LILO。

9.重新启动计算机。

编译PCMICIA—CS模块

1.下载PCMICIA—CS驱动程序pcmcia-cs-3.2.4.tar.gz,链接地址为//aleron.dl.sourceforge.net/sourceforge/pcmcia-cs/pcmcia-cs-3.2.4.tar.gz。

2.解压缩,所用命令如下:

# tar vxfz pcmcia-cs-3.2.4.tar.gz


3.下载第三方软件SpectrumD的1.03a的版本,链接地址为//www.red-bean.com/~proski/symbol/spectrum24-0.4.2.tar.gz。

4.解压缩spectrumD24-0.4.2.tar.gz:

#cd ./pcmcia-cs-3.1.30 
#tar zxvf ../SpectrumD24-0.4.2.tar.gz


5. 安装PCMCIA-CS:

# make config   /*此时系统会询问Kernel source 的位置, 缺省是 /usr/src/linux/
# make all
# make install


6.物理安装

现在动手将网卡安装到计算机上。笔者使用的是一块ISA转接卡。ISA网卡其实就是把PCMCIA卡插在ISA转接卡上,将PCI转接卡接头与插槽对准,双手垂直推入,直到完全插紧,再将ISA转接卡安装在主板的扩展槽内。PC机后部会有一部分突出来的收发端。对于使用笔记本电脑的用户可以平行于桌面将无线网卡插入PCMCIA卡槽,注意一定要水平插入,直到完全插紧。安装后的情况见图5所示。



图5 将PCMCIA卡安装到转接卡


7.修改/etc/pcmcia/config。该文件是提供cardmgr启动、识别有关module文件和硬件的依据。在文件中加入下面的内容:

device "Spectrum24t" 
class "network" module "spectrum24t_cs"
card "Intel PRO/Wireless 2011 LAN PC Card" 
manfid 0x0089, 0x0001 
bind "Spectrum24t"


8.执行命令,启动无线网卡:

# /etc/rc.d/init.d/pcmcia restart


9.检测无线网卡地址:

使用ifconfig -a命令,将在第二行看到wlan地址,见下面所示,表示安装结束。

... ... ...
wlan0 Link encap:Ethernet HWaddr 00:05:3C:04:3B:9A     <== “无线网卡IP地址”
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0 
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0


下载网站

在安装无线网卡过程中,可以下载相关程序的网站有:

//www.linux-wlan.org 
//pcmcia-cs-sourceforge.net 
//sourceforge.net/project/


总结

从上面的安装过程中,可以总结出Linux下无线网卡的安装顺序一般是:

第一步,采取全部安装方式安装Linux发行版本,重新编译内核,并除去任何对内核提供的 PCMCIA 驱动程序的部分;

第二步,了解网卡的规格并且下载并编译相应的 PCMCIA-CS 库和驱动程序;

第三步,下载、编译并安装无线网卡必需的所有驱动程序。这一步骤对于有些网卡是可选的,而对于有些网卡是必须执行的。做与不做很大程度上取决于用户所选的无线网卡;

第四步,修改和无线网卡的相关设定。重新启动Linux系统和网络。

(责任编辑:战莹)
   
  • 上一篇教程:
  • 下一篇教程:
  • :查看相关:
  • DOS下常用的相关网络命令

  • 双机互联的工具LapLink的使用

  • DOS使用中的常见问题解答

  • MS-DOS:解决Windows 所不能

  • DOS和Linux近年来的发展比较