【已解决】Ubuntu 10.04 无线网卡 无法连接


【问题】
新装的Ubuntu 10.04,其他一切正常,但是就是无线网络无法链接。很是郁闷。有线网络是可以正常使用的。
我这里的也是TP Link的无线路由器。

【解决过程】
1.先去Windows下面确认了,硬件工作是正常的,XP下,是可以上网的,同时也确保,硬件没有被Fn+F1这个快捷键关闭无线网卡。

2.参考: Ubuntu10.04无线网络配置的怪事
http://hi.baidu.com/oppslee/blog/item/9d05564e30831d04b2de055e.html

去将IPv4的方式设置,不用DHCP,因为这个DHCP有时候貌似兼容性不好,设置为手动,然后去设置IP,mask,gateway,DNS,确保都和Windows XP下,能工作的时候一致,并且IP自己多常识了其他允许的值,仍旧无法连接到无线网络。

3.参考:Ubuntu下连接无线网的问题(女士不宜)
http://blog.163.com/bluez_gz/blog/static/126597429201071711654469/

去执行了其所说的:
1) sudo vi /etc/NetworkManager/nm-system-settings.conf
managed=false 改为 managed=true

2)sudo vi /etc/network/interfaces
仅保留:
auto lo
iface lo inet loopback

发现已经是上述设置了,所以无需再改。其中的managed是之前自己偶此改成true的。
但是还是无法连接无线网络。

4.参考:
求助:Ubuntu 下无线网络无法连接
http://www.avast1.cn/bbs/thread-25329-1-1.html

去终端里面执行:
sudo lshw
显示出一堆的硬件详细信息,找到其中的无线网卡的部分:
           *-network
                description: Wireless interface
                product: Realtek Semiconductor Co., Ltd.
                vendor: Realtek Semiconductor Co., Ltd.

                physical id: 0
                bus info: pci@0000:02:00.0
                logical name: wlan0
                version: 10
                serial: 00:24:21:c9:af:7f
                width: 32 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
                configuration: broadcast=yes driver=rtl819xSE driverversion=0014.0115.2010 firmware=62 latency=0 link=no multicast=yes wireless=802.11bgn
                resources: irq:16 ioport:2000(size=256) memory:f8000000-f8003fff

可见,其中也是可以正常识别无线网卡的product,vendor以及clock等详细参数的,说明驱动对硬件也是支持的才对,但是无线网络
还是无法连接

5.参考:
ubuntu 无线网络连接
http://shijianlin4724.blog.163.com/blog/static/13027878120108854416773/

去系统->系统管理->硬件驱动,搜了一把,结果没有找到可以更新的驱动。所以,还是失败。

6.这个人:
两种安装方式下的无线网卡问题(求助高手)
http://forum.ubuntu.org.cn/viewtopic.php?t=271737

和我遇到一样的情况,也是 rtl819xSE的无线网卡,也是没解决问题呢。

附录:
我的lspci -vv的结果:
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8171 (rev 10)
    Subsystem: Micro-Star International Co., Ltd. Device 6897
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 16
    Region 0: I/O ports at 2000 [size=256]
    Region 1: Memory at f8000000 (32-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: rtl819xSE
    Kernel modules: r8192se_pci

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
    Subsystem: Mitac Device 9223
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 27
    Region 0: I/O ports at 3000 [size=256]
    Region 2: Memory at f4000000 (64-bit, prefetchable) [size=4K]
    Region 4: Memory at f2000000 (64-bit, prefetchable) [size=16K]
    [virtual] Expansion ROM at f2010000 [disabled] [size=64K]
    Capabilities: <access denied>
    Kernel driver in use: r8169
    Kernel modules: r8169

7.找到这个人,也是同样的无线网卡
rtl819xSE,其解决了此问题:
10.04 R400 解决无线上网问题
http://forum.ubuntu.org.cn/viewtopic.php?t=268946

然后去google搜了下rtl819xSE driver,可以找到这个,有人专门提到了Linux内核的某个关于此问题的bug:
[STAGING] Realtek 8172 wifi driver does not work with lucid 2.6.32-21-generic kernel, does work with out-of-tree driver

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/566215

并且提到了,用下载源码重新编译并安装的方法,即上面那人用的,就可以使此网卡正常工作了。

找无线网卡的驱动并编译之前,先要去搞清楚,自己的无线网卡的具体型号是什么。

【在Linux/Ubuntu下 如何查看自己的无线网卡的具体型号】

其他方法,比如上面已经用过的,通过"lspci -vv" 所得到的信息中,只有无线网卡的大概类型,此处为rtl819xSE,而无法得知具体的型号,所以只能找其他办法去弄清楚无线网卡的具体的型号。

经过尝试,通过如下步骤,可以找到无线网卡的具体型号:

打开终端,输入iwconfig,显示出无线网卡的相关的信息:

crifan@crifan-laptop:~$ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     802.11bgn  Nickname:"rtl8191SEVA2"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated   
          Bit Rate:135 Mb/s   
          Retry:on   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=10/100  Signal level=0 dBm  Noise level=-100 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

其中,rtl8191SEVA2即为我这里的无线网卡的具体的型号。


然后接着按照上面帖子的介绍,找无线网卡驱动并编译:
(1) 下载无线网卡的驱动源码:

进入:

http://218.210.127.131/downloads/downloadsView.aspx?Langid=3&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true

找到自己的无线网卡,此处为rtl8191SEVA2,所对应的Linux驱动源码。

或者去其主页:http://www.realtek.com.tw/

搜索你的无线网卡的型号,比如此处为RTL8192SE,然后一步步,即可找到对应的Linux下的驱动源码。

后证实,RTL8191SEVA2所对应的Linux的驱动,此处发现和RTL8192SE的一样。所以去将其RTL8192SE的驱动×××下来,留待下面用。

(2)安装编译驱动所需要的Linux内核的头文件

 然后去安装Linux内核源码(头文件),结果出错了:
crifan@crifan-laptop:~$ sudo apt-get install linux-source
[sudo] password for crifan: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会安装下列额外的软件包:
  linux-source-2.6.32
建议安装的软件包:
  libncurses-dev ncurses-dev kernel-package libqt3-dev
下列【新】软件包将被安装:
  linux-source linux-source-2.6.32
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 224 个软件包未被升级。
需要下载 65.9MB 的软件包。
解压缩后会消耗掉 66.0MB 的额外空间。
您希望继续执行吗?[Y/n]y
错误 http://cn.archive.ubuntu.com/ubuntu/ lucid-updates/main linux-source-2.6.32 2.6.32-24.41
  404  Not Found
错误 http://security.ubuntu.com/ubuntu/ lucid-security/main linux-source-2.6.32 2.6.32-24.41
  404  Not Found [IP: 91.189.92.167 80]
错误 http://security.ubuntu.com/ubuntu/ lucid-security/main linux-source 2.6.32.24.25
  404  Not Found [IP: 91.189.92.167 80]
无法下载 http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-source-2.6.32_2.6.32-24.41_all.deb  404  Not Found [IP: 91.189.92.167 80]
无法下载 http://security.ubuntu.com/ubuntu/pool/main/l/linux-meta/linux-source_2.6.32.24.25_all.deb  404  Not Found [IP: 91.189.92.167 80]

E: 有几个软件包无法下载,您可以运行 apt-get update 或者加上 --fix-missing 的选项再试试?
然后按照提示,继续尝试:
crifan@crifan-laptop:~$ sudo apt-get install linux-source --fix-missing
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会安装下列额外的软件包:
  linux-source-2.6.32
建议安装的软件包:
  libncurses-dev ncurses-dev kernel-package libqt3-dev
下列【新】软件包将被安装:
  linux-source linux-source-2.6.32
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 224 个软件包未被升级。
需要下载 65.9MB 的软件包。
解压缩后会消耗掉 66.0MB 的额外空间。
您希望继续执行吗?[Y/n]y
错误 http://cn.archive.ubuntu.com/ubuntu/ lucid-updates/main linux-source-2.6.32 2.6.32-24.41
  404  Not Found
错误 http://security.ubuntu.com/ubuntu/ lucid-security/main linux-source-2.6.32 2.6.32-24.41
  404  Not Found [IP: 91.189.88.37 80]
错误 http://security.ubuntu.com/ubuntu/ lucid-security/main linux-source 2.6.32.24.25
  404  Not Found [IP: 91.189.88.37 80]
无法下载 http://security.ubuntu.com/ubuntu/pool/main/l/linux/linux-source-2.6.32_2.6.32-24.41_all.deb  404  Not Found [IP: 91.189.88.37 80]
无法下载 http://security.ubuntu.com/ubuntu/pool/main/l/linux-meta/linux-source_2.6.32.24.25_all.deb  404  Not Found [IP: 91.189.88.37 80]

怒了,干脆不下载了,等后面不能编译再说。而且好像记得之前系统更新,好像是有更新Linux内核源码还是头文件之类的,所以先暂时不管这步了,后面错了再回来看看。
关于下载内核源码,其实也可以直接去这里下载:
http://www.kernel.org/pub/linux/kernel/

下载内核源码:

http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2

(3)编译并安装新的无线驱动:

 解压前面下载的无线驱动的源码包rtl8192se_linux_2.6.0018.1025.2010.tar.gz后,进入解压后的目录,找到个readme.txt,其中有如何使用此驱动的说明:
========================================================================================
                II. Compile & Installation & uninstall
========================================================================================
You can enter top-level directory of driver and execute follwing command to
Compile, Installation, or uninstall the driver:
        0. Change to Super User
       sudo su

    1. Compile driver from the source code 
       make

    2. Install the driver to the kernel
           make install
           reboot

    3. uninstall driver
       make uninstall

所以,就去尝试:
a. 
crifan@crifan-laptop:~/download/rtl8192se_linux_2.6.0018.1025.2010$ sudo su
root@crifan-laptop:/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010# pwd/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010
root@crifan-laptop:/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010# ls
firmware  readme.txt    rtllib     wlan0down  wpa_supplicant-0.6.9.tar.gz
HAL       realtek       runwpa     wlan0up
Makefile  release_note  wlan0dhcp  wpa1.conf
root@crifan-laptop:/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010# make
make[1]: 正在进入目录 `/usr/src/linux-headers-2.6.32-21-generic'
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_core.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_regd.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_rfkill.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_eeprom.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_wx.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_cam.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_pm.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_pci.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_ps.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_dm.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_debug.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl_ethtool.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_dev.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_Efuse.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_phy.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_firmware.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_rtl6052.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_hwimg.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_led.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_mp.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/rtl8192s/r8192S_scan.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_rx.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_softmac.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_tx.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_wx.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_module.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_softmac_wx.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtl819x_HTProc.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtl819x_TSProc.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtl819x_BAProc.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/dot11d.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_crypt.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_crypt_tkip.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_crypt_ccmp.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/rtllib_crypt_wep.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/wapi.o
  CC [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/../../rtllib/wapi_interface.o
  LD [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/r8192se_pci.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/r8192se_pci.mod.o
  LD [M]  /home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192/r8192se_pci.ko


可见,此处是可以正常make的,说明之前是已经装了或者Ubuntu本身已经有了对应的Linux内核头文件的。
b. 再继续:
root@crifan-laptop:/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010# make install
make[1]: 正在进入目录 `/usr/src/linux-headers-2.6.32-21-generic'
  Building modules, stage 2.
  MODPOST 1 modules
make[1]:正在离开目录 `/usr/src/linux-headers-2.6.32-21-generic'
make[1]: 正在进入目录 `/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192'
make -C /lib/modules/2.6.32-21-generic/build M=/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010 CC=gcc modules
make[2]: 正在进入目录 `/usr/src/linux-headers-2.6.32-21-generic'
  Building modules, stage 2.
  MODPOST 0 modules
make[2]:正在离开目录 `/usr/src/linux-headers-2.6.32-21-generic'
find /lib/modules/2.6.32-21-generic -name "r8192se_*.ko" -exec ls -l {} \;
-rw-r--r-- 1 root root 534096 2010-04-16 21:03 /lib/modules/2.6.32-21-generic/kernel/ubuntu/rtl8192se/r8192se_pci.ko
find /lib/modules/2.6.32-21-generic -name "r8192se_*.ko" -exec rm {} \;
install -p -m 644 r8192se_pci.ko /lib/modules/2.6.32-21-generic/kernel/drivers/net/wireless/
depmod -a
make[1]:正在离开目录 `/home/crifan/download/rtl8192se_linux_2.6.0018.1025.2010/HAL/rtl8192'

其主要就是判断是否有旧的驱动,有的话先删除,然后安装刚编译好的新的驱动,即r8192se_pci.ko。

 c. 好了,安装好新无线网卡的驱动,重启,回来再写,看看网卡是否正常工作呢,呵呵。

d. 现在已经是重启好后,用无线网卡上网编辑帖子了,。并且,新的无线网卡,貌似效果很好,一下子搜索到的有一二十个无线网络的。。。远多于Windows XP下面的只能搜到的几个无线网络。。。

有图片为证:

(暂时是在Ubuntu下用Firefox上网,对网易博客系统支持不好,不能上传图片。。。等回到Windows下,再传吧。。

好了,现在回到XP下了。。。)

 

【提示】

1. 有空可以再试试Ndiswrapper:

另外,无意中,发现有人提到这个工具:Ndiswrapper,其作用是使得你的在windows下正常工作的无线驱动,移植到Linux下。Ndiswrapper的具体解释可以去看:

[翻译]Ndiswrapper终极使用指南

http://blog.chinaunix.net/u1/35100/showart_279408.html

如果上述方法最后还是没搞定,可以尝试去用此工具折腾试试。

 

2. 可以使用sudo iwlist [wlan0] scan[ning]去搜索无线网络,应该和从Network-manager上看到的那些无线网络是一样的。

 

【参考】

1.这个地址,介绍了网卡的基本知识,涉及ifconfig,iwconfig,lsusb,值得看看:

网卡
http://wiki.ubuntu.org.cn/%E7%BD%91%E5%8D%A1

转载自:http://againinput4.blog.163.com/blog/static/1727994912010118104331238/