[教学]在Ubuntu 5.10安装Realtek 8180的无线网卡(含deb包)

声卡/显卡/打印机/USB设备等硬件问题(网卡问题请发上面的网卡板块)
回复
kdekid
帖子: 32
注册时间: 2005-11-25 11:57
送出感谢: 0
接收感谢: 0

[教学]在Ubuntu 5.10安装Realtek 8180的无线网卡(含deb包)

#1

帖子 kdekid » 2005-11-30 0:08

我的笔记本用的是一张Cardbus接口的802.11b的无线网卡。网卡的生产商是DWnet(中怡数宽),型号是WLB1100。网卡用的802.11b处理芯片是Realtek的8180,无线射频芯片是Philips SA2400。Realtek 818x系列芯片+Philips的SA2400,这是很多无线网卡的标准组合。Realtek 818x芯片组的网卡,可以通过三种不同的方式驱动。
1、使用 ndiswrapper,然后用Realtek芯片的Windows驱动程序。很多在Linux没有驱动程序的网卡都可以通过这种方式来驱动,不过一来用ndiswrapper实际上还是用到了close source的驱动程序;二来Windows的驱动程序也不能利用Realtek网卡的丰富功能(包括AP、Ad-hoc等链接方式)。所以这只是最后的选择。viewtopic.php?t=2764 这篇文章提供了使用ndiswrapper的方法。
2、使用 realtek 自己提供的Linux驱动程序。realtek的Linux支持中规中矩,驱动程序也做得不错。不过我们现在用的kernel是 2.6.12 的,使用了新的module格式,驱动程序也不支持。而且这款驱动程序实际上也是close source的,我也不太喜欢用。
3、不过值得庆幸的是,Realtek作为低价位的芯片生产商,永远不乏用户。其中便有geek等级的用户为它编写了Linux下的完全开源的驱动程序,就是rtl8180-sa2400系列的驱程。现在rtl8180-sa2400已经使用了新的架构重新开发,新的驱动可以应用在 2.6.12 的内核上。想要看你的网卡是否被这款驱动程序支持,可以看看他的主页:http://rtl8180-sa2400.sourceforge.net

下面说一下这个驱程的安装要点。

首先,因为我们需要编译内核,所以需要内核的源码支持。而编译内核不能用默认的gcc-4.0版本,我们需要安装gcc-3.4。

代码: 全选

$ sudo apt-get install gcc-3.4 linux-source-2.6.12
$ cd /usr/src
$ sudo tar -jxf linux-source-2.6.12.tar.bz2
$ cd linux-source-2.6.12
$ sudo cp /boot/config-$(uname -r) .config
$ sudo make oldconfig
修改Makefile中的EXTRAVERSION,例如我的是-10-686。

代码: 全选

$ sudo make bzImage
然后我们要从rtl8180-sa2400的CVS中获取最新版本的驱程。如果你还没安装cvs的话,可以从源中安装:

代码: 全选

$ sudo apt-get install cvs
获取了cvs之后,我们就可以登录sourceforge的服务器,下载rtl8180-sa2400的代码。下面截取至我的安装记录:

代码: 全选

kid@venus:~/Build$  cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/rtl8180-sa2400 login
Logging in to :pserver:anonymous@cvs.sourceforge.net:2401/cvsroot/rtl8180-sa2400
CVS password:
当询问CVS密码的时候,直接回车。
然后继续执行:

代码: 全选

kid@venus:~/Build$  cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/rtl8180-sa2400 co -P ieee80211 rtl818x-newstack
cvs checkout: Updating ieee80211
U ieee80211/LICENSE
U ieee80211/Makefile
U ieee80211/README
U ieee80211/ieee80211.h
U ieee80211/ieee80211_crypt.c
U ieee80211/ieee80211_crypt.h
U ieee80211/ieee80211_crypt_ccmp.c
U ieee80211/ieee80211_crypt_tkip.c
U ieee80211/ieee80211_crypt_wep.c
U ieee80211/ieee80211_module.c
U ieee80211/ieee80211_rx.c
U ieee80211/ieee80211_softmac.c
U ieee80211/ieee80211_softmac_wx.c
U ieee80211/ieee80211_tx.c
U ieee80211/ieee80211_wx.c
cvs checkout: Updating rtl818x-newstack
U rtl818x-newstack/AUTHORS
U rtl818x-newstack/CHANGES
U rtl818x-newstack/COPYING
U rtl818x-newstack/INSTALL
U rtl818x-newstack/LICENSE
U rtl818x-newstack/Makefile
U rtl818x-newstack/README
U rtl818x-newstack/README.adhoc
U rtl818x-newstack/README.master
U rtl818x-newstack/a
U rtl818x-newstack/ieee80211.h
U rtl818x-newstack/ieee80211_crypt.h
U rtl818x-newstack/r8180.h
U rtl818x-newstack/r8180_93cx6.c
U rtl818x-newstack/r8180_93cx6.h
U rtl818x-newstack/r8180_core.c
U rtl818x-newstack/r8180_gct.c
U rtl818x-newstack/r8180_gct.h
U rtl818x-newstack/r8180_hw.h
U rtl818x-newstack/r8180_max2820.c
U rtl818x-newstack/r8180_max2820.h
U rtl818x-newstack/r8180_pm.c
U rtl818x-newstack/r8180_pm.h
U rtl818x-newstack/r8180_rtl8225.c
U rtl818x-newstack/r8180_rtl8225.h
U rtl818x-newstack/r8180_rtl8255.c
U rtl818x-newstack/r8180_rtl8255.h
U rtl818x-newstack/r8180_sa2400.c
U rtl818x-newstack/r8180_sa2400.h
U rtl818x-newstack/r8180_wx.c
U rtl818x-newstack/r8180_wx.h
kid@venus:~/Build$
OK. 现在我们可以看见当前目录中生成两个新的目录:ieee80211 和 rtl818x-newstack。ieee80211是 Realtek 需要用到的 802.11 协议的driver,与系统本身的driver有所不同,所以必须安装。而rtl818x-newstack是818x系列(除8187)的驱程。
小提示:如果你用的是Realtek 8187芯片(802.11b/g)的网卡,可以checkout rtl8187-newstack,获取8187芯片的驱程。
下面我们就可以开始编译驱动了。

代码: 全选

kid@venus:~/Build$ cd ieee80211/
kid@venus:~/Build/ieee80211$ ls
CVS                     ieee80211_crypt_tkip.c  ieee80211_rx.c          ieee80211_wx.c
ieee80211_crypt.c       ieee80211_crypt_wep.c   ieee80211_softmac.c     LICENSE
ieee80211_crypt_ccmp.c  ieee80211.h             ieee80211_softmac_wx.c  Makefile
ieee80211_crypt.h       ieee80211_module.c      ieee80211_tx.c          README
kid@venus:~/Build/ieee80211$ make KSRC=/usr/src/linux-source-2.6.12
比较遗憾的是ieee80211并没有自动安装的方法,我们需要手工把编译好的module拷贝到/lib/modules/`uname -r`中:

代码: 全选

kid@venus:~/Build/ieee80211$ ls *.ko
ieee80211_crypt_ccmp-rtl.ko  ieee80211_crypt_tkip-rtl.ko  ieee80211-rtl.ko
ieee80211_crypt-rtl.ko       ieee80211_crypt_wep-rtl.ko
kid@venus:~/Build/ieee80211$ sudo rm /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ieee80211/* # !!此步危险,请先备份!
kid@venus:~/Build/ieee80211$ sudo cp *.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ieee80211
安装好以后,我们可以继续编译rtl8180的驱程。

代码: 全选

kid@venus:~/Build$ cd rtl818x-newstack/
kid@venus:~/Build/rtl818x-newstack$ ls
a                  ieee80211.h    r8180_core.c     r8180_max2820.h  r8180_rtl8255.h  README.adhoc
AUTHORS            INSTALL        r8180_gct.c      r8180_pm.c       r8180_sa2400.c   README.master
CHANGES            LICENSE        r8180_gct.h      r8180_pm.h       r8180_sa2400.h
COPYING            Makefile       r8180.h          r8180_rtl8225.c  r8180_wx.c
CVS                r8180_93cx6.c  r8180_hw.h       r8180_rtl8225.h  r8180_wx.h
ieee80211_crypt.h  r8180_93cx6.h  r8180_max2820.c  r8180_rtl8255.c  README
kid@venus:~/Build/rtl818x-newstack$ make KSRC=/usr/src/linux-source-2.6.12
然后我们就可以安装它:

代码: 全选

kid@venus:~/Build/rtl818x-newstack$ sudo make install KSRC=/usr/src/linux-source-2.6.12
kid@venus:~/Build/rtl818x-newstack$ sudo depmod -ae
这样我们的网卡驱动程序就编译安装完成了。

下面是这篇文章的最后一步,要把wlan设备填进modprobe的启动参数中。

代码: 全选

kid@venus:~/Build/rtl818x-newstack$ sudo echo "install wlan0 modprobe ieee80211_crypt-rtl && modprobe ieee80211_crypt_wep-rtl && modprobe ieee80211-rtl && modprobe r8180" > /etc/modprobe.d/wireless-r8180
kid@venus:~/Build/rtl818x-newstack$ sudo echo "remove wlan0 modprobe -r r8180 && modprobe -r ieee80211_crypt_wep-rtl && modprobe -r ieee80211-rtl && modprobe -r ieee80211_crypt-rtl" >> /etc/modprobe.d/wireless-r8180
kid@venus:~/Build/rtl818x-newstack$ sudo modprobe wlan0
现在就Realtek的驱动程序就已经安装好了。下面的步骤我们可以按照 viewtopic.php?t=2764 提到的Step #6,从这一步开始进行无线网络的设置。

update: deb包的安装
请首先将 /lib/modules/2.6.12-10-686/kernel/drivers/net/wireless/ieee80211 删除。(注意备份!)

代码: 全选

sudo dpkg -i rtl818x-modules-2.6.12-10-686-i386.deb
附件
rtl818x-modules-2.6.12-10-686-i386.deb.gz
(100.5 KiB) 下载 125 次
回复

回到 “常用硬件支持”