前几天突然想把我的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