> 3. Connectivity with WPA-encrypted networks through wpa_supplicant > works, as long as you apply this kernel patch: > http://marc.theaimsgroup.com/?l=linux-netdev&m=114540506116921&w=2 > I took the liberty to use http://softmac.sipsolutions.net/patches/softmac-events.patch instead.
> All this will be available in tonights snapshot which will be generated > within the next few hours. > Using linux-2.6.17-rc1 + zd1211_2006-04-19 + softmac-events.patch + reference_lock.patch, I've been able to transfer 6MB @ ~830kB/s using ftp on a WPA connection. (connection speed: 11 Mb/s) Downside: it worked only once so far. Observations: (just observations, I haven't got the time to really dig into any of this) iwconfig showed the AP as FF:FF:FF:FF:FF:FF after wpa_supplicant had set up the (working) connection. SoftMAC and wpa_supplicant don't seem to know each other very well. e.g. wpa_supplicant built up a complete functioning connection, still, after that, SoftMAC generated an association timeout. (possibly causing the 'FF:FF:FF:FF:FF:FF' AP address being displayed ???) When I ended wpa_supplicant, SoftMAC tried to authenticate / associate itself. I don't see a reason why. I don't think it should be this smart. After all, by ending wpa_supplicant I basically gave the instruction to end the connection and not build a new one. The impression I get from the other (failing) connections is that both SoftMAC and wpa_supplicant are trying to authenticate / associate themselves at virtually the same time. SoftMAC seems to win most of the time, leaving me unconnected, since I require WPA. I also see a softIRQ problem scrolling down my screen after a while locking my computer rock solid. Unfortunately I haven't been able to capture a decent log so far. This happens when I start wpa_supplicant and just leave it running in a console while it's trying set up a connection. (which doesn't succeed) wpa_supplicant complained SIOCSIWMLME isn't supported. It may help synchronise SoftMAC / wpa_supplicant since it's supposed to forward deauth / disassoc requests. (see the http://zd1211.ath.cx/ driver) Maybe SIOCSIWMLME should be in SoftMAC.
diff -ur zd1211_2006-04-19/zd_mac.c zd1211_2006-04-19.new/zd_mac.c --- zd1211_2006-04-19/zd_mac.c 2006-04-18 22:02:10.000000000 +0200 +++ zd1211_2006-04-19.new/zd_mac.c 2006-04-19 12:58:56.000000000 +0200 @@ -249,7 +249,7 @@ struct zd_mac *mac = zd_netdev_mac(netdev); PDEBUGF("channel %d", channel); - spin_lock_irqsave(mac->lock, flags); + spin_lock_irqsave(&mac->lock, flags); mac->channel = channel; mac->channel_is_fixed = 0; spin_unlock_irqrestore(&mac->lock, flags);