分类: LINUX
2006-05-10 12:23:30
一、首先弄清楚当前使用的是什么版本的Linux,如:Redhat9.0、
Freda core5等。Linux用的是什么版本的内核,可以用uname –a得
知内核版本号。
二、使用的是什么接口类型的无线网卡,常见的接口类型有PCI
(台式机)、Cardbus/PCMCIA(笔记本)、USB(台式机、笔
记本)等。
三、无线网卡使用的是哪一种类型的芯片,判断方法如下,到相
关网站下载与其相对应的驱动程序。常用的无线网卡驱动及其支
持的芯片类型和接口类型如下表1所示。
PCMCIA卡:将无线网卡插入笔记本电脑中,用命令lspci可以看
到芯片类型,如:
Realtek Semiconductor Co.. Ltd, RTL
其中RTL
息。
USB卡:用命令lsusb可以看到芯片类型(fc5没有此命令)。通
过其它方法查找。
驱动程序 |
芯片类型 |
接口类型 |
官方网站下载页 |
Linux-wlan-ng |
Prism2/2.5/3 |
Cardbus/PCI/USB |
|
Madwifi |
Atheros系列 |
Cardbus/PCI |
|
islsm |
ISL38XX |
USB/PCI |
|
表1:网卡驱动程序有关信息
请参考以下网址获取更多资料:
每款驱动的安装方法各不相同,阅读INSTALL文档,获得驱动程
序的具体安装方法及系统内核要求。阅读驱动程序附带的
README文档,获得有关此驱动的详细信息,如驱动所支持的网
络模式、接口类型、所包含的模块的功能及无线网卡的配置等。
下面是安装网卡驱动程序的一般步骤:
编译网卡驱动程序
#make
安装驱动程序模块
#make install
加载模块
#modprobe 主模块名
安装好驱动后插入无线
网卡,命令iwconfig可以查看驱动是否加载成功,如果出现新的设
备名,则说明驱动已经装上并且能够识别出无线网卡。
#iwconfig
可以分别通过 ‘网络配置’界面和命令对无线网卡进行配置,
如IP地址、网络模式、ESSID和速率等。
可视化配置无线网卡,方法如下所示:
首先用编辑工具编辑文件/etc/modprobe.conf,添加下面行以实现
界面配置。
alias 设备名 驱动模块名 (加到/etc/modprobe.conf)
重起笔记本电脑后加载驱动模块,打开桌面﹥管理﹥网络,在
“网络配置”界面中,如果在设备栏里没有类型为
“Wireless” 的设备,新建一个。点击“新建”,创建一个设
备类型为‘无线连接’的设备,选择刚装好的无线网卡,最后对
该无线网卡进行初始化配置,其所对应的脚本文件为
/etc/sysconfig/network-script/ifcfg-设备名
也可以使用命令进行配置,命令有ifconfig、iwconfig、iwlist等,具
体用法参见第4节或使用命令man查看详细信息。
如果驱动程序要求的内核选项没有打开,则需要进行内核的配
置。使用命令进入内核源代码目录, 命令make mrproper确保源代
码目录下没有不正确的.o文件以及文件的互相依赖。
接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下一些主要的且经常用到的选项的设置。
配置内核可以根据需要与爱好使用下面命令中的一个:
#make config (基于文本的最为传统的配置界面)
#make menuconfig (基于文本选单的配置界面)
#make xconfig (基于图形窗口模式的配置界面)
#make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
进行配置时,大部分选项可以使用其缺省值,只有小部分需要根据驱动程序的需要进行选择。
选择相应的配置时,有三种选择,它们分别代表的含义如下:
“Y”- 将该功能编译进内核
“N”- 不将该功能编译进内核
“M”- 将该功能编译成可以在需要时动态插入到内核中的模块。
将与核心其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存。
对于Fedora Core 系列来说,内核源码是放在 /usr/src/redhat/BUILD/ 目录中,如果系统中该目录没有内容,则说明没有安装内核的源码包,可从kernel.org下载对应的源码包。
如果下载的是rpm包,可通过以下命令来安装:
#rpm -i kernel-
#cd /usr/src/redhat/SPECS
#rpmbuild -bp --target i686 kernel-2.6.spec
#cd ../BUILD
#cd kernel*/linux*
现在就是内核的代码所在的目录(linux-
如果下的是.tar.bz2或.tar.gz,只要把下载下来的文件移到 /usr/src 目录中解压,然后进入解压的目录根据需要进行配置。
2.6系列内核编译安装十分简单,只需以下3个命令即可,并自动完成对启动引导装载器GRUB的配置,非常方便。
# make
编译内核
#make modules_install
安装模块
#make install
安装内核、修改GRUB配置文件
重启计算机后选
Fedora Core (
如果驱动要求的内核版本较高,需要升级,可从kernel.Org上下载相应的内核版本进行编译安装。2.4 系列内核编译所使用的命令较多,最后还需要手动修改启动引导装载器GRUB的配置文件,添加新编译的内核映像文件作为新的启动选项。
将源代码包移动到 /usr/src中解压:
# tar vxfj linux-
# ln –s linux2.4.26 linux
# cd /usr/src/linux
配置和编译内核:
# cp /boot/config-
# make menuconfig
# make dep
# make clean
# make bzImage
安装模块:
# make modules
# make modules_install
启动新选项:
# cp arch/i386/boot/bzImage /boot/vmlinuz-
# cp .config /boot/config-2.4.26
# cp System.map /boot/System.map-2.4.26
# mkinitrd /boot/initrd-2.4.26.img 2.4.26
# cd /boot
# rm -f System.map vmlinuz
# ln -s System.map-
# ln -s vmlinuz-2.4.26 vmlinuz
# cd grub
# vi grub.conf
# reboot
选择相对快速并且具有权威性的站点下载最新的内核源代码包,例如条件允许的话可以到下面的站点下载:
ftp://sunsite.unc.edu/pub/linux/kernel
国内Linux用户可以到下面的站点下载:
Linux系统的核心代码存放于目录/usr/src/linux,实际上,该目录是一个链接,指向当前所用的核心版本的目录,例如如果当前使用的版本是x.y.z,则该核心的实际目录应该是:/usr/src/linux-x.y.z。而新下载的内核中的目录是linux,这样,直接在/usr/src下解包会导致原来的内核目录被覆盖。所以稳妥的做法是,首先删除链接linux,然后解包、更名、重新链接。
在解包前要确认在/usr/src目录下没有叫linux的目录,或者不再想保留该目录。
这两款无线网卡使用的芯片类型相同(AR5212),以TL-WN
下载驱动程序
插上网卡后,通过下面的命令来查看无线的主芯片信息。
#lspci –v
运行此命令后,显示如下信息:
07:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 Multiprotocol MAC/baseband processor(rev 01)
Subsystem: Atheros Communications, Inc. Unknown device 1052
Flags: medium devsel, IRQ 11
Memory at 38000000 (32-bit, non-prefetchable)[disable][size=64K]
Capabilities: [44] Power Management version 2
可以看出,网卡的芯片类型为AR5212,是Atheros系列中的一款。从表1中得知驱动程序Madwifi支持该芯片类型的网卡。到 下载最新的源代码, 一般名称为madwifi-ng-current.tar.gz。
安装驱动程序
解压后阅读里面的READER和INSTALL文档来获取帮助信息。
从README文档中得知,该驱动程序支持PCI、miniPCI 、Cardbus的设备类型,驱动的主模块为ath_pci,各种型号所支持的协议以及无线网卡的详细配置。
从INSTALL文档中得知,该驱动的系统要求为要有内核源代码,内核配置选项CONFIG_SYSCTL、CONFIG_CRYPTO要打开(可通过查看文件/boot/config-
在Feroda core下没有找到内核源码,到网上下载相应的内核源码。采用前面所述方法对内核源码进行配置,打开所需的选项,然后编译、安装内核模块。
配置好内核后,依据INSTALL里的流程安装驱动程序:
运行下面的命令来编译和安装驱动,选项KERNELPATH为内核源码的路径
#make KERNELPATH=/usr/src/*
#make install
编译成功后可运行下面的命令来加载网卡设备
#modprobe ath_pci
没有错误提示,表明已经成功安装并加载上了驱动程序。
插入无线网卡后运行命令
#iwconfig
出现新的设备名ath0,即驱动识别出了网卡设备,驱动程序安装成功。
配置无线网卡
1.命令行配置
使用下面的命令激活无线网卡和配置其IP地址
#ifconfig ath0 up
激活网卡后,可通过命令ifconfig配置网卡的IP地址
#ifconfig ath0 192.168.0.11 netmask 255.255.255.0
通过命令iwconfig配置无线网卡,其它参数用默认即可,或用man iwconfig查看详细配置信息。
#iwconfig ath0 essid mywlan
#iwconfig ath0 mode Master
#iwconfig ath0 rate
其它的命令还有iwlist可查看无线网卡的状态信息(命令iwlist查看更多选项)。
#iwlist ath0 mode
#iwlist ath0 channel
2.可视化配置
用“网络配置”界面配置网卡,首先在 /etc/modprobe.conf文件中添加以下命令行,这样便可在系统启动时自动创建模式为station的设备ath0。
alias ath0 ath_pci
options ath_pci autocreate=sta
如果要以ap作为默认模式启动,把sta改为Master。
重起系统后在设备栏中新建设备名为ath0的设备并按照以上参数进行初始化设置,以后就可以在“网络配置”里激活网卡设备和编辑该无线网卡设备。
下载驱动程序
从网卡背面铭牌上知道这款USB无线网卡的型号为:SMC2862W-G,通过上网查资料得知此网卡所对应的驱动程序为ISL38XX,到以下网址下载最新的源码包:。此驱动包括两部分:code和firmware。其中code为驱动程序,firmware为传送到USB设备的处理有关802.11协议的固件。
编译内核,打开以下选项:CONFIG_I82365,CONFIG_NET_WIRELESS, CONFIG_FW_LOADER, CONFIG_CRC32 和CONFIG_CRC_CCITT
安装驱动程序
解压下载下来的源码包
#tar –xzvf islsm-workbench-latest.tar.tar
运行以下命令编译安装驱动程序
#make driver
#make install
装好驱动后,把下载的firmware即下载下来的后缀名为.arm的文件移动到目录/lib/firmware中,并改名为isl3887usb_bare。使用以下命令把驱动模块装进内核中
#make load
卸载驱动模块命令为
#make unload
装载驱动后插入无线网卡,运行命令
#iwconfig
出现以下信息,其中设备名为eth0的网卡设备即是驱动识别出来的无线网卡,驱动程序安装成功。
对网卡进行配置
1.命令行配置
使用下面的命令激活无线网卡和配置其IP地址
#ifconfig eth0 up
激活网卡后,可通过命令ifconfig配置网卡的IP地址
#ifconfig eth0 192.168.0.11 netmask 255.255.255.0
通过命令iwconfig配置无线网卡,其它参数用默认即可,或用man iwconfig查看详细配置信息。
#iwconfig eth0 essid mywlan
#iwconfig eth0 mode Ad-Hoc
#iwconfig eth0 rate
其它的命令还有iwlist可查看无线网卡的状态信息(命令iwlist –h查看更多选项)。
#iwlist eth0 mode
#iwlist eth0 channel
2.可视化配置
首先编辑以下命令行在 /etc/modprobe.conf文件中
alias eth0 islusb
重起系统后在设备栏中新建设备名为eth0的设备并安装以上参数进行初始化设置,以后只要点击“编辑”就可以对该无线网卡设备进行修改。
在编译过程中遇到*/Islsm_usb.c 错误:初始值设定项里有未知的字段 ‘owner’
解决办法是:修改该文件所使用的头文件linux/usb.h,在结构体usb_driver里添加字段owner,该文件放在内核源码下include/linux文件夹内。添加内容如下所示:struct module *owner