LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1943|回复: 17

8.04初装时无线网卡能工作,更新后不能工作

[复制链接]
发表于 2008-10-3 12:13:28 | 显示全部楼层 |阅读模式
我新装的8.04在刚安装完成时,设置无线网卡能连上网,但执行apt-get update, apt-get dist-upgrade后,无线网络连不上了。
我的无线网卡是:TP-Link321G+,执行iwconfig信息如下:
lo        no wireless extensions.

eth0      no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11g  ESSID:""  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Tx-Power=27 dBm   
          Retry min limit:7   RTS thrff   Fragment thr=2346 B   
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

请问该如何解决,谢谢!
发表于 2008-10-3 12:36:12 | 显示全部楼层
网络环境呢?
回复 支持 反对

使用道具 举报

发表于 2008-10-3 13:16:48 | 显示全部楼层
试试换回原来的内核
回复 支持 反对

使用道具 举报

发表于 2008-10-3 13:27:34 | 显示全部楼层
转篇指导性的文章:

作者: chiver  出自: http://www.linuxdiyf.com
在ubuntu 7.04版本中iwl3945驱动是正常的,可用的。在我升级到ubuntu 8.04 alpha5之后,该驱动不可用了。尝试各种方法,查阅国外N多论坛网站,终于解决了此问题,特把解决过程记录于此,留给大家参考。

7.04版本都支持了这个驱动,说明ubuntu对这款无线网卡的支持还是做得到位的,一般来说也不能把它从后续版本中拿掉。所以,问题可能出在某些配置冲突方面,比如内核和驱动冲突,驱动之间依赖冲突,等等。

首先,检查内核和驱动的冲突,驱动是否装全了。
$ uname -r
2.6.24-11-generic

说明当前内核的版本号是2.6.24-11

$ dpkg -l |grep linux-ubuntu-modules
pc linux-ubuntu-modules-2.6.22-10-generic 2.6.22-10.25 Ubuntu supplied Linux modules for version 2.
pc linux-ubuntu-modules-2.6.22-11-generic 2.6.22-11.28 Ubuntu supplied Linux modules for version 2.
pc linux-ubuntu-modules-2.6.22-12-generic 2.6.22-12.32 Ubuntu supplied Linux modules for version 2.
rc linux-ubuntu-modules-2.6.22-13-generic 2.6.22-13.34 Ubuntu supplied Linux modules for version 2.
pc linux-ubuntu-modules-2.6.22-14-generic 2.6.22-14.38 Ubuntu supplied Linux modules for version 2.
ii linux-ubuntu-modules-2.6.24-11-generic 2.6.24-11.15 Ubuntu supplied Linux modules for version 2.
rc linux-ubuntu-modules-2.6.24-7-generic 2.6.24-7.12 Ubuntu supplied Linux modules for version 2.
ii linux-ubuntu-modules-2.6.24-8-generic 2.6.24-8.13 Ubuntu supplied Linux modules for version 2.

上述列表中有2.6.24-11,说明对应的驱动版本是配套的。(注意,里面有一些module是以前装过现在删掉的,从新立得里面可以看得更仔细些。)

$ ls -l /lib/modules/`uname -r`/ubuntu/wireless/iwlwifi/iwlwifi/compatible
总用量 316
-rw-r--r-- 1 root root 145472 2008-03-02 00:36 iwl3945.ko
-rw-r--r-- 1 root root 166744 2008-03-02 00:36 iwl4965.ko
$ ls -l /lib/modules/`uname -r`/ubuntu/wireless/iwlwifi/mac80211/compatible/net/mac80211
总用量 360
-rw-r--r-- 1 root root 349760 2008-03-02 00:36 iwlwifi_mac80211.ko
-rw-r--r-- 1 root root 12192 2008-03-02 00:36 iwlwifi_rc80211_simple.ko

上面两个命令,说明驱动里面有iwl3945的驱动,以及运行这个驱动所需的mac80211子系统。注意看iwlwifi_mac80211.ko,这个驱动说明iwlwifi和mac80211的驱动是放在一起编译出来的。目前iwl3945有两种编译方式,一种是单独编译mac80211、 ieee80211、ipw3945(iwl3945)并放在一起用,另外一种就是iwlwifi_mac80211.ko这种从一开始就是放在一起编译的。这两种方法产生的驱动不能混着用,会有冲突,我遇到的问题就是这种冲突。

在我的机器上,如果执行modprobe iwl3945,会存在如下错误:

FATAL: Error inserting iwl3945 (/lib/modules/2.6.22-14-generic/ubuntu/wireless/iwlwifi/iwlwifi/origin/iwl3945.ko): Unknown symbol in module, or unknown parameter (see dmesg)

dmesg:

[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_rx_irqsafe
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_get_hdrlen
[ 112.528000] iwl3945: Unknown symbol iwlwifi_iwlwifi_ieee80211_tx_status_irqsafe
[ 112.528000] iwl3945: Unknown symbol iwlwifi_iwlwifi_ieee80211_stop_queues
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_tx_status
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_rate_control_unregister
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_stop_queue
[ 112.528000] iwl3945: Unknown symbol iwlwifi_sta_info_put
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_free_hw
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_beacon_get
[ 112.528000] iwl3945: Unknown symbol iwlwifi_sta_info_get
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_alloc_hw
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_scan_completed
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_register_hw
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_wake_queue
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_rate_control_register
[ 112.528000] iwl3945: Unknown symbol iwlwifi_iwlwifi_ieee80211_register_hwmode
[ 112.532000] iwl3945: Unknown symbol iwlwifi_ieee80211_unregister_hw
[ 112.532000] iwl3945: Unknown symbol iwlwifi_ieee80211_start_queues

如果把第一种方式编译的驱动卸载掉,并加载第二种方式的驱动,就解决了问题:
sudo modprobe -r ipw3945
sudo modprobe -r ieee80211
sudo modprobe -r ieee80211_crypt
sudo modprobe -r mac80211
sudo modprobe iwlwifi_mac80211
sudo modprobe iwl3945

成功。好了,试试看:
% ifconfig wlan0_rename up
% iwconfig wlan0_rename


可以看到:

wlan0_rename: unassociated ESSIDff/any
Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00
Bit Rate=0 kb/s Tx-Power=20 dBm
RTS thrff Fragment thrff
Encryption keyff
Power Managementff
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


okey,驱动已经没问题了,按平常操作的方式配置无线网络即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-3 15:27:57 | 显示全部楼层
Post by lincomet;1889759
网络环境呢?


dlink无线路由器, TP link WN321G+, 电信网络
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-3 15:28:43 | 显示全部楼层
Post by dsj;1889782
试试换回原来的内核


原来的内核也不行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-3 15:32:44 | 显示全部楼层
Post by dsj;1889785
转篇指导性的文章:

作者: chiver  出自: http://www.linuxdiyf.com
在ubuntu 7.04版本中iwl3945驱动是正常的,可用的。在我升级到ubuntu 8.04 alpha5之后,该驱动不可用了。尝试各种方法,查阅国外N多论坛网站,终于解决了此问题,特把解决过程记录于此,留给大家参考。

7.04版本都支持了这个驱动,说明ubuntu对这款无线网卡的支持还是做得到位的,一般来说也不能把它从后续版本中拿掉。所以,问题可能出在某些配置冲突方面,比如内核和驱动冲突,驱动之间依赖冲突,等等。

首先,检查内核和驱动的冲突,驱动是否装全了。
$ uname -r
2.6.24-11-generic

说明当前内核的版本号是2.6.24-11

$ dpkg -l |grep linux-ubuntu-modules
pc linux-ubuntu-modules-2.6.22-10-generic 2.6.22-10.25 Ubuntu supplied Linux modules for version 2.
pc linux-ubuntu-modules-2.6.22-11-generic 2.6.22-11.28 Ubuntu supplied Linux modules for version 2.
pc linux-ubuntu-modules-2.6.22-12-generic 2.6.22-12.32 Ubuntu supplied Linux modules for version 2.
rc linux-ubuntu-modules-2.6.22-13-generic 2.6.22-13.34 Ubuntu supplied Linux modules for version 2.
pc linux-ubuntu-modules-2.6.22-14-generic 2.6.22-14.38 Ubuntu supplied Linux modules for version 2.
ii linux-ubuntu-modules-2.6.24-11-generic 2.6.24-11.15 Ubuntu supplied Linux modules for version 2.
rc linux-ubuntu-modules-2.6.24-7-generic 2.6.24-7.12 Ubuntu supplied Linux modules for version 2.
ii linux-ubuntu-modules-2.6.24-8-generic 2.6.24-8.13 Ubuntu supplied Linux modules for version 2.

上述列表中有2.6.24-11,说明对应的驱动版本是配套的。(注意,里面有一些module是以前装过现在删掉的,从新立得里面可以看得更仔细些。)

$ ls -l /lib/modules/`uname -r`/ubuntu/wireless/iwlwifi/iwlwifi/compatible
总用量 316
-rw-r--r-- 1 root root 145472 2008-03-02 00:36 iwl3945.ko
-rw-r--r-- 1 root root 166744 2008-03-02 00:36 iwl4965.ko
$ ls -l /lib/modules/`uname -r`/ubuntu/wireless/iwlwifi/mac80211/compatible/net/mac80211
总用量 360
-rw-r--r-- 1 root root 349760 2008-03-02 00:36 iwlwifi_mac80211.ko
-rw-r--r-- 1 root root 12192 2008-03-02 00:36 iwlwifi_rc80211_simple.ko

上面两个命令,说明驱动里面有iwl3945的驱动,以及运行这个驱动所需的mac80211子系统。注意看iwlwifi_mac80211.ko,这个驱动说明iwlwifi和mac80211的驱动是放在一起编译出来的。目前iwl3945有两种编译方式,一种是单独编译mac80211、 ieee80211、ipw3945(iwl3945)并放在一起用,另外一种就是iwlwifi_mac80211.ko这种从一开始就是放在一起编译的。这两种方法产生的驱动不能混着用,会有冲突,我遇到的问题就是这种冲突。

在我的机器上,如果执行modprobe iwl3945,会存在如下错误:

FATAL: Error inserting iwl3945 (/lib/modules/2.6.22-14-generic/ubuntu/wireless/iwlwifi/iwlwifi/origin/iwl3945.ko): Unknown symbol in module, or unknown parameter (see dmesg)

dmesg:

[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_rx_irqsafe
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_get_hdrlen
[ 112.528000] iwl3945: Unknown symbol iwlwifi_iwlwifi_ieee80211_tx_status_irqsafe
[ 112.528000] iwl3945: Unknown symbol iwlwifi_iwlwifi_ieee80211_stop_queues
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_tx_status
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_rate_control_unregister
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_stop_queue
[ 112.528000] iwl3945: Unknown symbol iwlwifi_sta_info_put
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_free_hw
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_beacon_get
[ 112.528000] iwl3945: Unknown symbol iwlwifi_sta_info_get
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_alloc_hw
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_scan_completed
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_register_hw
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_wake_queue
[ 112.528000] iwl3945: Unknown symbol iwlwifi_ieee80211_rate_control_register
[ 112.528000] iwl3945: Unknown symbol iwlwifi_iwlwifi_ieee80211_register_hwmode
[ 112.532000] iwl3945: Unknown symbol iwlwifi_ieee80211_unregister_hw
[ 112.532000] iwl3945: Unknown symbol iwlwifi_ieee80211_start_queues

如果把第一种方式编译的驱动卸载掉,并加载第二种方式的驱动,就解决了问题:
sudo modprobe -r ipw3945
sudo modprobe -r ieee80211
sudo modprobe -r ieee80211_crypt
sudo modprobe -r mac80211
sudo modprobe iwlwifi_mac80211
sudo modprobe iwl3945

成功。好了,试试看:
% ifconfig wlan0_rename up
% iwconfig wlan0_rename


可以看到:

wlan0_rename: unassociated ESSIDff/any
Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00
Bit Rate=0 kb/s Tx-Power=20 dBm
RTS thrff Fragment thrff
Encryption keyff
Power Managementff
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


okey,驱动已经没问题了,按平常操作的方式配置无线网络即可。



我的操作:
luopeng@luopeng:~$ uname -r
2.6.24-21-generic
luopeng@luopeng:~$ dpkg -l |grep linux-ubuntu-modules
ii  linux-ubuntu-modules-2.6.24-19-generic     2.6.24-19.28                             Ubuntu supplied Linux modules for version 2.
ii  linux-ubuntu-modules-2.6.24-21-generic     2.6.24-21.32                             Ubuntu supplied Linux modules for version 2.
luopeng@luopeng:~$ ls -l /lib/modules/`uname -r`/ubuntu/wireless/iwlwifi/iwlwifi/compatible
总用量 228
-rw-r--r-- 1 root root 106148 2008-08-26 02:18 iwl3945.ko
-rw-r--r-- 1 root root 123188 2008-08-26 02:18 iwl4965.ko
luopeng@luopeng:~$ ls -l /lib/modules/`uname -r`/ubuntu/wireless/iwlwifi/mac80211/compatible/net/mac80211
总用量 264
-rw-r--r-- 1 root root 255068 2008-08-26 02:18 iwlwifi_mac80211.ko
-rw-r--r-- 1 root root   9196 2008-08-26 02:18 iwlwifi_rc80211_simple.ko
luopeng@luopeng:~$ sudo modprobe iwl3945
luopeng@luopeng:~$ % ifconfig wlan0_rename up
bash: fg: %: 无此任务
luopeng@luopeng:~$ ifconfig wlan0_rename up
wlan0_rename: 获取接口标志时出错: 没有该设备
luopeng@luopeng:~$ iwconfig wlan0_rename
wlan0_rename  No such device

网卡的灯没有闪烁,说明驱动没有加载上。现在输入iwconfig:
luopeng@luopeng:~$ iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.
回复 支持 反对

使用道具 举报

发表于 2008-10-3 23:33:52 | 显示全部楼层
这步没作
sudo modprobe -r ipw3945
sudo modprobe -r ieee80211
sudo modprobe -r ieee80211_crypt
sudo modprobe -r mac80211
sudo modprobe iwlwifi_mac80211
sudo modprobe iwl3945
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-4 23:07:25 | 显示全部楼层
Post by dsj;1889954
这步没作
sudo modprobe -r ipw3945
sudo modprobe -r ieee80211
sudo modprobe -r ieee80211_crypt
sudo modprobe -r mac80211
sudo modprobe iwlwifi_mac80211
sudo modprobe iwl3945



显示没有ipw3945 这个模块.而且用321G+的更不就找不到无线网卡,换另一个322G+的却可以找到,不知道为什么.
回复 支持 反对

使用道具 举报

发表于 2008-10-5 10:24:54 | 显示全部楼层
我用的321G的网卡。印象中有一个RT73的内核模块,你apt-cache搜索一下,装上试试。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表