On Fri, 2009-03-20 at 12:55 +0800, Jeff Chua wrote: > >> # this needs patch to work ... > >> iwconfig wlan0 mode Managed > >> ifconfig wlan0 up > >> iwconfig wlan0 essid xxx > >> iwconfig wlan0 key restricted xxx > >> iwconfig wlan0 ap auto channel auto > > > > If you swap the key and essid lines, it will probably always work. But > > I've yet to analyse your data to see why it doesn't in the other case. > > Doesn't. Taking away "hiwconfig wlan0 ap auto channel auto" makes it works. That's a little weird, but not entirely, you probably manage to cut it short in the middle of the assoc process when issuing the auto command. > It seems position of "ifconfig wlan0 up" matters > > 1) It can't be before iwconfig which will result in "SET failed on > device wlan0 ; Device or resource busy". > > 2) _Before_ "essid" and "key" settings. "ap auto channel auto" MUST > NOT BE SET. > > 3) _After_ "essid" and "key". Ensure all iwconfig settings comes > before "ifconfig". > > > So, it seems "ifconfig" must be done as the last stage. This, however, is completely strange. You should always set the interface up before doing anything with it. wext allows you to do it the other way around, but that's not quite natural since without it being up you cannot even scan. However, -EBUSY isn't returned anywhere in mac80211, and I don't see the driver passing it out either. So your point 1) confuses me. Can you explain that a little more? As for 2), that is very very strange since ap auto channel auto is the default, so saying that before you do anything else should do anything at all. I suspect something is going on in the driver because the ifconfig order matters and for mac80211, it shouldn't make a difference when the state machine is really started. I'll probably need to try to reproduce this, but to be honest between the varying failure modes, undefined wireless extensions semantics, etc. I'm not very confident I can. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part