在ubuntu7.04版本中iwl3945驱动是正常的,可用的。在我升级到ubuntu8.04alpha5之后,该驱动不可用了。尝试各种方法,查阅国外N多论坛网站,终于解决了此问题,特把解决过程记录于此,留给大家参考。
7.04版本都支持了这个驱动,说明ubuntu对这款无线网卡的支持还是做得到位的,一般来说也不能把它从后续版本中拿掉。所以,问题可能出在某些配置冲突方面,比如内核和驱动冲突,驱动之间依赖冲突,等等。
首先,检查内核和驱动的冲突,驱动是否装全了。
$uname-r
2.6.24-11-generic
说明当前内核的版本号是2.6.24-11
$dpkg-l|greplinux-ubuntu-modules
pclinux-ubuntu-modules-2.6.22-10-generic2.6.22-10.25UbuntusuppliedLinuxmodulesforversion2.
pclinux-ubuntu-modules-2.6.22-11-generic2.6.22-11.28UbuntusuppliedLinuxmodulesforversion2.
pclinux-ubuntu-modules-2.6.22-12-generic2.6.22-12.32UbuntusuppliedLinuxmodulesforversion2.
rclinux-ubuntu-modules-2.6.22-13-generic2.6.22-13.34UbuntusuppliedLinuxmodulesforversion2.
pclinux-ubuntu-modules-2.6.22-14-generic2.6.22-14.38UbuntusuppliedLinuxmodulesforversion2.
iilinux-ubuntu-modules-2.6.24-11-generic2.6.24-11.15UbuntusuppliedLinuxmodulesforversion2.
rclinux-ubuntu-modules-2.6.24-7-generic2.6.24-7.12UbuntusuppliedLinuxmodulesforversion2.
iilinux-ubuntu-modules-2.6.24-8-generic2.6.24-8.13UbuntusuppliedLinuxmodulesforversion2.
上述列表中有2.6.24-11,说明对应的驱动版本是配套的。(注意,里面有一些module是以前装过现在删掉的,从新立得里面可以看得更仔细些。)
$ls-l/lib/modules/`uname-r`/ubuntu/wireless/iwlwifi/iwlwifi/compatible
总用量316
-rw-r--r--1rootroot1454722008-03-0200:36iwl3945.ko
-rw-r--r--1rootroot1667442008-03-0200:36iwl4965.ko
$ls-l/lib/modules/`uname-r`/ubuntu/wireless/iwlwifi/mac80211/compatible/net/mac80211
总用量360
-rw-r--r--1rootroot3497602008-03-0200:36iwlwifi_mac80211.ko
-rw-r--r--1rootroot121922008-03-0200:36iwlwifi_rc80211_simple.ko
上面两个命令,说明驱动里面有iwl3945的驱动,以及运行这个驱动所需的mac80211子系统。注意看iwlwifi_mac80211.ko,这个驱动说明iwlwifi和mac80211的驱动是放在一起编译出来的。目前iwl3945有两种编译方式,一种是单独编译mac80211、ieee80211、ipw3945(iwl3945)并放在一起用,另外一种就是iwlwifi_mac80211.ko这种从一开始就是放在一起编译的。这两种方法产生的驱动不能混着用,会有冲突,我遇到的问题就是这种冲突。
在我的机器上,如果执行modprobeiwl3945,会存在如下错误:
FATAL:Errorinsertingiwl3945(/lib/modules/2.6.22-14-generic/ubuntu/wireless/iwlwifi/iwlwifi/origin/iwl3945.ko):Unknownsymbolinmodule,orunknownparameter(seedmesg)
dmesg:
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_rx_irqsafe
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_get_hdrlen
[112.528000]iwl3945:Unknownsymboliwlwifi_iwlwifi_ieee80211_tx_status_irqsafe
[112.528000]iwl3945:Unknownsymboliwlwifi_iwlwifi_ieee80211_stop_queues
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_tx_status
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_rate_control_unregister
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_stop_queue
[112.528000]iwl3945:Unknownsymboliwlwifi_sta_info_put
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_free_hw
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_beacon_get
[112.528000]iwl3945:Unknownsymboliwlwifi_sta_info_get
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_alloc_hw
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_scan_completed
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_register_hw
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_wake_queue
[112.528000]iwl3945:Unknownsymboliwlwifi_ieee80211_rate_control_register
[112.528000]iwl3945:Unknownsymboliwlwifi_iwlwifi_ieee80211_register_hwmode
[112.532000]iwl3945:Unknownsymboliwlwifi_ieee80211_unregister_hw
[112.532000]iwl3945:Unknownsymboliwlwifi_ieee80211_start_queues
如果把第一种方式编译的驱动卸载掉,并加载第二种方式的驱动,就解决了问题:
sudomodprobe-ripw3945
sudomodprobe-rieee80211
sudomodprobe-rieee80211_crypt
sudomodprobe-rmac80211
sudomodprobeiwlwifi_mac80211
sudomodprobeiwl3945
成功。好了,试试看:
%ifconfigwlan0_renameup
%iwconfigwlan0_rename
可以看到:
wlan0_rename:unassociatedESSID:off/any
Mode:ManagedChannel=0AccessPoint:00:00:00:00:00:00
BitRate=0kb/sTx-Power=20dBm
RTSthr:offFragmentthr:off
Encryptionkey:off
PowerManagement:off
LinkQuality:0Signallevel:0Noiselevel:0
Rxinvalidnwid:0Rxinvalidcrypt:0Rxinvalidfrag:0
Txexcessiveretries:0Invalidmisc:0Missedbeacon:0
okey,驱动已经没问题了,按平常操作的方式配置无线网络即可。
Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动Ubuntu 8.04下安装iwl3945无线网卡驱动
阅读(1751) | 评论(0) | 转发(0) |