前几天突然想把我的Ubuntu9.04换成CentOS玩玩,因为这个可能会稳定一些吧。

安装完之后发现我的无线网卡无法正常工作,之前在Ubuntu和Fedora上面都是工作很正常的。

看来这个版本比较低吧,企业版也是稳定为主的,估计驱动会做的比较差一些。

上网看看把,先用lspci看看我的无线网卡是什么型号,以前还真没注意过

# lspci | grep Wireless

02:04.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)

才知道大家都把Intel PRO/Wireless都简称为ipw,所以我的无线网卡应该就是ipw2100。

去www.intel.com搜索一下无线网卡驱动,发现那里没有Linux的,找了半天发现有一个Link指向另一个网站

http://www.intellinuxwireless.org
原来Linux驱动不在这儿。连接到这个网站才看见ipw2100型号列举在首页了。

Link到ipw2100.sourceforge.net,原来驱动在这儿呢。


下载,解压缩,一般都是make然后make install吧。

结果报错,说没有ieee80211这个包。而且Readme说我的 ipw2100-1.2.0需要匹配的版本是ieee80211-1.1.10

不过sourceforge上面没有这个版本可以下载,就找了一个最近似的版本 ieee80211-1.1.11

然后执行make IEEE80211_INC=/usr/src/ieee80211/来编译ipw,安装也是make install IEEE80211_INC=/usr/src/ieee80211/

执行modprobe ipw2100报错,找不到符号表

原来firmware_class 没有,insmod它也报错,找不到。

只好重新编译kernel了,晕死。

去www.kernel.org,里面真乱阿,好不容易找到 http://www.kernel.org/pub/linux/kernel/v2.6/

结果上面好多ChangeLog我还以为找错地方了呢结果kernel源码按照字母顺序在下面呢,下载。

解压缩,然后make menuconfig,报错

scripts/kconfig/lxdialog/dialog.h:32:20: 错误:curses.h:没有那个文件或目录

上网搜索了半天,原来make config是可以的,但是难用。

而make menuconfig依赖于ncurses-devel这个包。据说这个包实现文本现面的图形化操作。

赶紧yun install ncurses-devel.

这个是红帽或者FC的安装程序,Ubuntu的需要安装libncurses5-dev

终于可以进入久违的menuconfig了,哈哈。

按照顺序呢,进入menuconfig之前,要检查一下

#cd /usr/src/linux-2.x.x  (这个是你解压缩源码包的路径,如果没有单独下载源码,可以通过安装两个包kernel-devel, kernel-headers)

#make mrproper

类似的命令还有#make clean和make distclean

搜索了一下区别:

make mrproper    remove all generated files and config and various backup files.   

make clean        remove most generated files, but keep the config

make distclean   remove all temporary files

然后

#make menuconfig

进行配置

这里面我要修改的是NET_RADIO.

然后编译内核,安装

#make bzImage

#make modules

#make modules_install

#make install

 

重启电脑之后可以在grub菜单选择新的kernel了。

modprobe ipw2100之后发现还是没有新的硬件识别出来,很是郁闷。

 

搜索一下,找到CentOS的Howto页面 http://wiki.centos.org/HowTos/Laptops/Wireless

按照这里说先看看RPMforge安装了没有。

# yum install yum-priorities

# cat /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1

 

Edit the .repo files in /etc/yum.repos.d/ and set up priorities by adding the line:

priority=N

 

to a repository entry, where N is an integer number from 1 to 99.

The recommended settings are:

[base], [addons], [updates], [extras] ... priority=1 



[centosplus],[contrib] ... priority=2



Third Party Repos such as rpmforge ... priority=N  (where N is > 10 and based on your preference)
  • i386 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
  • x86_64 http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

rpm -K rpmforge-release-0.5.1-1.el5.rf.*.rpm

rpm -i rpmforge-release-0.5.1-1.el5.rf.*.rpm

 

yum check-update

yum install ipw2100-firmware