How do you enable the mac80211 based iwl3945 driver?

Asked by Joseph Smidt on 2007-09-08

Every time I suspend/resume I get a popup in the notification area to visit the Hal Quirks webpage: http://people.freedesktop.org/~hughsient/quirk/ There I found a script, quirk-checker.sh, I need to run to debug the suspend/resume process. Here is the error:

-e Checking your system...

WARNING: You have no quirks!
CRITICAL ERROR: Use the mac80211 based iwl3945 driver instead. ipw3945d is closed source sometimes hangs on resume.

How do I enable the mac80211 based iwl3945 driver in Gutsy? Thanks.

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu linux-source-2.6.22 Edit question
Assignee:
No assignee Edit question
Solved by:
Kevin
Solved:
2007-09-13
Last query:
2007-09-13
Last reply:
2007-09-13
Kevin (cryogenic666) said : #1

I've successfully gotten iwl3945 & mac80211 to work. It's actually VERY simple. Just do the following set of commands:
sudo modprobe -r ipw3945
sudo modprobe -r ieee80211
sudo modprobe -r ieee80211_crypt
sudo modprobe mac80211
sudo modprobe iwl3945
sudo depmod -a (though I've read the -a switch isn't necessary, I use it out of pure habit)

For what it's worth, there is probably a way to consolidate those commands, but you essentially need to remove the ipw3945, ieee80211 and ieee80211_crypt modules, thus removing the entire subsystem entirely. Then modprobe the new mac80211 system and iwl3945 driver in. For good measure, I also added ipw3945 to /etc/modprobe.d/blacklist. Hope this helps!

Joseph Smidt (jsmidt) said : #2

Did you have to install any packages? I did those commands exactly and I lost my networking capabilities. I had to put ipw3945 back to get it working again so I am back were I began.

Thanks for the help.

Kevin (cryogenic666) said : #3

For what it's worth, I have all the required kernel packages installed... I am running 2.6.22-11-generic currently. Try running "modprobe -l | grep iwl" and "modprobe -l | grep mac".... tell me if you get something for each. Did you get any errors in dmesg when you tried to load mac80211? what about with iwl3945? Both of those kernel modules should be present and they should load properly. I ditched networkmanager in favor of wicd as it seems to work better for some reason, though nm still works as I recall. Wicd can be found @ http://wicd.sourceforge.net.

Joseph Smidt (jsmidt) said : #4

This is uname -a:

Linux Esther 2.6.22-11-generic #1 SMP Fri Sep 7 05:07:05 GMT 2007 i686 GNU/Linux

This is modprobe -l | grep iwl:

/lib/modules/2.6.22-11-generic/ubuntu/wireless/iwlwifi/iwl4965.ko
/lib/modules/2.6.22-11-generic/ubuntu/wireless/iwlwifi/iwl3945.ko

This is modprobe -l | grep mac:

/lib/modules/2.6.22-11-generic/ubuntu/mactel/appleir.ko
/lib/modules/2.6.22-11-generic/kernel/net/netfilter/xt_mac.ko
/lib/modules/2.6.22-11-generic/kernel/net/mac80211/mac80211.ko
/lib/modules/2.6.22-11-generic/kernel/net/mac80211/rc80211_simple.ko
/lib/modules/2.6.22-11-generic/kernel/net/ieee80211/softmac/ieee80211softmac.ko
/lib/modules/2.6.22-11-generic/kernel/drivers/video/macmodes.ko
/lib/modules/2.6.22-11-generic/kernel/drivers/net/hamachi.ko
/lib/modules/2.6.22-11-generic/kernel/drivers/char/watchdog/machzwd.ko

This is lspci:

00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
05:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
07:06.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
07:06.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller
07:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
07:06.3 Generic system peripheral [0805]: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller
07:08.0 Ethernet controller: Intel Corporation PRO/100 VE Network Connection (rev 02)

Below dmesg is attached. I hope that helps.

Joseph Smidt (jsmidt) said : #5

[ 48.012000] NFSD: starting 90-second grace period
[ 49.500000] Bluetooth: Core ver 2.11
[ 49.500000] NET: Registered protocol family 31
[ 49.500000] Bluetooth: HCI device and connection manager initialized
[ 49.500000] Bluetooth: HCI socket layer initialized
[ 49.548000] Bluetooth: L2CAP ver 2.8
[ 49.548000] Bluetooth: L2CAP socket layer initialized
[ 49.872000] Bluetooth: RFCOMM socket layer initialized
[ 49.872000] Bluetooth: RFCOMM TTY layer initialized
[ 49.872000] Bluetooth: RFCOMM ver 1.8
[ 137.800000] ieee80211_crypt: registered algorithm 'NULL'
[ 142.544000] ieee80211: 802.11 data/management/control stack, git-1.1.13
[ 142.544000] ieee80211: Copyright (C) 2004-2005 Intel Corporation <email address hidden>
[ 149.876000] ipw3945: Intel(R) PRO/Wireless 3945 Network Connection driver for Linux, 1.2.2mp.ubuntu1
[ 149.876000] ipw3945: Copyright(c) 2003-2006 Intel Corporation
[ 149.876000] ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 18 (level, low) -> IRQ 18
[ 149.876000] PCI: Setting latency timer of device 0000:05:00.0 to 64
[ 149.876000] ipw3945: Detected Intel PRO/Wireless 3945ABG Network Connection
[ 151.772000] ipw3945: Detected geography ABG (11 802.11bg channels, 13 802.11a channels)
[ 152.000000] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 166.384000] ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 180.404000] eth1: no IPv6 routers present
[ 2379.280000] ACPI: PCI interrupt for device 0000:05:00.0 disabled
[ 2379.284000] ieee80211_crypt: unregistered algorithm 'NULL'
[ 2444.764000] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.0.0-1k
[ 2444.764000] iwl3945: Copyright(c) 2003-2007 Intel Corporation
[ 2444.764000] ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 18 (level, low) -> IRQ 18
[ 2444.764000] PCI: Setting latency timer of device 0000:05:00.0 to 64
[ 2444.764000] iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection
[ 2445.196000] iwl3945: Channel 12 [2.4GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 13 [2.4GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 14 [2.4GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 183 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 184 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 185 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 187 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 188 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 189 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 192 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 196 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 7 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 8 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 11 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 12 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 16 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 34 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 38 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 42 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 46 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 100 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 104 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 108 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 112 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 116 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 120 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 124 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 128 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 132 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 136 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 140 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Channel 145 [5.2GHz] is Tx only -- skipping.
[ 2445.196000] iwl3945: Tunable channels: 11 802.11bg, 13 802.11a channels
[ 2445.200000] wmaster0: Selected rate control algorithm 'iwl-3945-rs'

Best Kevin (cryogenic666) said : #6

My suggestion in this case would be to switch to wicd.... everything you posted is identical to what I'm seeing. If you're unable to connect with networkmanager, wicd may serve you better. I must say I'm far more impressed with wicd than I ever was with NM. As a matter of fact, wicd will connect prior to login. In any case, try that? Everything appeared to load properly, so if you weren't able to connect it had to do with networkmanager. The thing is, there's no reason why it shouldn't work because I've seen several reports of people having no problems connecting with NM. I have seen several reports of having issues STAYING connected using iwl and nm.

Joseph Smidt (jsmidt) said : #7

Thanks, the network-manager devs should work closely with whoever codes wicd. This works.

Kevin (cryogenic666) said : #8

wicd works wonderfully... the GUI is even pretty good. I wish NM was that good. :) Glad to see you've gotten everything squared away!

I've just installed gutsy and I'm not able to find the module iwl3945.
What happened?

root@matteo-laptop:~# modprobe -l | grep iwl
/lib/modules/2.6.22-12-generic/ubuntu/wireless/iwlwifi/mac80211/origin/net/mac80211/rc80211_simple.ko
/lib/modules/2.6.22-12-generic/ubuntu/wireless/iwlwifi/mac80211/origin/net/mac80211/iwlwifi_mac80211.ko
/lib/modules/2.6.22-12-generic/ubuntu/wireless/iwlwifi/iwlwifi/origin/iwl4965.ko

Kevin (cryogenic666) said : #10

I noticed the same. Not sure what's going on, but I was rather annoyed that the driver is "missing". I wonder if we're supposed to use the 4965 driver or what?

I tried that one but it didn't work... :/