My work laptop was recently upgraded to a Dell D820. It's a pretty nice system and I've found it to be fairly Linux friendly, however, I ran into several problems getting the wireless to work. For one thing, the ipw3945 driver isn't yet included in the standard Linux kernel (and may never be due to it's dependence on a binary userspace daemon). Also, my distro of choice, Fedora Core 5 also doesn't include the driver. Still, a quick Google search will turn up an abundance of pages that will tell you how to download, compile, and install the ipw3945 driver, however, that didn't quite solve all my problems.
(Updated September 7th, 2006)
Important Update -- On August 30th, 2006 the ieee80211 project released version 1.2.15 of the ieee80211 stack. This stack includes all of the required fixes for the issue documented below , for both WEP and WPA, as well as other important fixes. Ideally you should upgrade to this version rather than use the patch available on this page.
Update -- I've been asked by several people if this issue can affect WEP as well. As it turns out, yes, the ieee80211_crypt_wep module can experience the problem as well, although for some reason in my case it never did. After following the instructions to download and install the most recent versions of both the ieee80211 stack and the ipw3945 driver, as well as the required firmware and userspace daemon, I fairly quickly had working wireless. Using Network Manager I had a WPA-PSK connection working in no time and thought I was done. For the first couple of days everything seemed OK, then, I tried to download a fairly large file and about 100MB into the transfer my wireless connection dropped and didn't automatically reconnect. I could manually get NetworkManager to reconnect, but it would simply fail again after a few more megabytes were transferred. It was a frustrating experience.
In the logs I would get errors similar to the following:
TKIP: ICV error detected: STA=00:04:0e:7e:7a:58
TKIP: ICV error detected: STA=00:04:0e:7e:7a:58
TKIP: ICV error detected: STA=00:04:0e:7e:7a:58
TKIP: ICV error detected: STA=00:04:0e:7e:7a:58
N/A: Michael MIC verification failed for MSDU from 00:04:0e:7e:7a:58 keyidx=0
wlan: MSDU decryption/MIC verification failed (SA=00:04:0e:7e:7a:58 keyidx=0)
If I ran the connection unencrypted, or with simple WEP, the connection was rock solid, but any time I used WPA it would become unstable during heavy traffic. I tried every version of the ipw3945 driver I could get my hands on but nothing seemed to help. I send notes to the ipw3945-devel list with no helpful responses.
I'm not sure what led me down this path, but for some reason I decided to try running the UP kernel on my notebook. The D820 is a Core Duo system so it uses the SMP kernel by default, but something I read on some forum indicated that the SMP kernel might trigger the problem so I booted the UP kernel. Sure enough, when running the UP kernel, my WPA wireless connection was stable and I could transfer gigabytes of data with no problems.
After posting this information to the ipw3945-devel I received a few responses included one to test the SMP kernel with "maxcpus=1" which also worked fine. After a few messages back and forth I finally received a patch to the ieee80211 stack from Hong Liu. After applying this patch to the 1.1.14 version of the ieee80211 stack and recompiling the modules I retested using the SMP kernel and found that the ipw3945 driver now worked flawlessly with WPA even with the SMP kernel.
I suspect that since the patch is against the ieee80211 code and not the ipw3945 driver that this problem might be common for any wireless adapter that uses the ieee80211 stack that is running on an SMP kernel. Anyway, I have made this patch available
here in case others see similar problems with WPA and the SMP kernel.
Saturday, August 19. 2006 at 07:57 (Reply)
I've filed a bug against Ubuntu (which I'm using) at https://launchpad.net/distros/ubuntu/+source/linux-source-2.6.17/+bug/56894 containing mostly information stolen from you.
Thanks
Tuesday, September 5. 2006 at 16:50 (Reply)
I was getting crazy with this bug!
Tuesday, September 12. 2006 at 00:55 (Reply)
I didn't apply any patch, but I compiled and installed that latest ieee thing, which fixed it. I guess that fix is also in the latest ieee code now.
Someone somewhere for crying out loud figure out a way to create some sort of super database of problems with solutions. People having to Google around stumbling finally onto solutions (sometimes the wrong ones) just plainly SUCKS.
It IS what makes Linux kind of sucks.
So, SOMEONE address this stupid little problem for once and for all, so people can stop wasting time on scrambling around for drivers, alternative driverf, patches, tweaks, and all the rest of it.
Tuesday, September 12. 2006 at 10:28 (Link) (Reply)
As far as your suggestions for a "super database" of problems, well, this may sound simple, but it's actually very complex. Each and every distro has their own kernel versions and their own packages and any given problem may or may not exist on a particular linux distribution. Many of them do document their problems in their Bugzilla database, I know for a fact that Ubuntu has this bug in their database.
If you feel this is what makes Linux "kind of suck" then I can say I actually agree with you to a certain extent, but it's also what makes Linux suck less than other systems.
I live by the mantra "all software sucks" and that includes Linux. But at least in Linux anyone can fix it and then post to the world what they did.
On my job I also use Windows and could go on forever about the numbers of bugs I have with Windows that have been there for years. In many cases Microsoft acknowleges them, but simply has never fixed them, and probably never will. In that case, Microsoft sucks worse than Linux, because I can Google for solutions but I typically only find people with the same problem and no solution.
Basically, the big "super database" you are asking for is there, it's called the Internet and it's indexed by Google. Yes, sometimes you get a wrong answer, but that true with ALL technical support.
Sunday, December 10. 2006 at 12:49 (Reply)
AC
Monday, July 23. 2007 at 02:44 (Reply)
Very annoying that I buy the Dell 620 because everything is supposed to be supported, only to discover this problem with Wifi, and that the ostensibly supported Bluetooth module has been sabotaged by the Vista driver.
-k
Tuesday, January 15. 2008 at 14:54 (Reply)
I am using ipw3945 for quite a while and never experienced any problems with large downloads. Problems occured when I first tried rsync and your post has the solution.
A bug in the ieee80211 sub-system IS nasty and you saved me hours of searching with your post. Thank you very much,
Ralph
Monday, January 21. 2008 at 05:04 (Reply)
Ralph