Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101909037
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-03 20:50:51

  来源: linuxidc  
 

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

Ubuntu 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.

在我的机器上,如果执行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 ESSID:off/any
Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00
Bit Rate=0 kb/s Tx-Power=20 dBm
RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
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,驱动已经没问题了,按平常操作的方式配置无线网络即可。

阅读(884) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~