6-STABLE, ath, wpa_supplicant/dhcp and suspend/resume problem.

Brooks Davis brooks at one-eyed-alien.net
Sat Dec 10 10:59:49 PST 2005


On Sat, Dec 10, 2005 at 10:33:23AM -0800, Sam Leffler wrote:
> George Hartzell wrote:
> >I have an IBM T42p (2379-DYU) with an atheros based mini-pci card,
> >running 6-STABLE cvsup'ed yesterday morning.
> >
> >I have wpa_supplicant configured for my WEP based 11g network, and
> >have this line in my /etc/rc.conf:
> >
> >  ifconfig_ath0="DHCP WPA NOAUTO"
> >
> >I start the interface via /etc/rc./netif start ath0 when I want to use
> >it.
> >
> >When I suspend the laptop, the wireless link doesn't work on resume.
> >The little icon in my gnome panel has a red disk/white line across the
> >transmit/receive graphics, but the signal strength indicators are a
> >3-high pile of diamonds (same as when it's working).  I'm not sure
> >where the panel-thingy is getting its information.
> >
> >I can resurrect the interface w/ /etc/rc.d/netif restart ath0.
> >
> >When I run wpa_supplicant by hand with some debugging flags, I see the
> >following:
> >
> >   (satchel)[8:59am]~>>sudo /usr/sbin/wpa_supplicant -d -d -K -q -i ath0 
> >   -c /etc/wpa_supplicant.conf
> >   Initializing interface 'ath0' conf '/etc/wpa_supplicant.conf' driver 
> >   'default'
> >   Configuration file '/etc/wpa_supplicant.conf' -> 
> >   '/etc/wpa_supplicant.conf'
> >   Reading configuration file '/etc/wpa_supplicant.conf'
> >   ctrl_interface='/var/run/wpa_supplicant'
> >   ctrl_interface_group=0
> >   eapol_version=1
> >   ap_scan=1
> >   fast_reauth=1
> >   Priority group 5
> >      id=0 ssid='air-palomarin'
> >   Initializing interface (2) 'ath0'
> >   Own MAC address: 00:05:4e:4a:70:e3
> >   wpa_driver_bsd_set_wpa: enabled=1
> >   wpa_driver_bsd_set_wpa_internal: wpa=3 privacy=1
> >   wpa_driver_bsd_del_key: keyidx=0
> >   wpa_driver_bsd_del_key: keyidx=1
> >   wpa_driver_bsd_del_key: keyidx=2
> >   wpa_driver_bsd_del_key: keyidx=3
> >   wpa_driver_bsd_set_countermeasures: enabled=0
> >   wpa_driver_bsd_set_drop_unencrypted: enabled=1
> >   Setting scan request: 0 sec 100000 usec
> >   Starting AP scan (broadcast SSID)
> >   Received 0 bytes of scan results (1 BSSes)
> >   Scan results: 1
> >   Selecting BSS from priority group 5
> >   0: 00:13:10:9f:28:3a ssid='air-palomarin' wpa_ie_len=0 rsn_ie_len=0
> >      skip - no WPA/RSN IE
> >      selected non-WPA AP 00:13:10:9f:28:3a ssid='air-palomarin'
> >   Trying to associate with 00:13:10:9f:28:3a (SSID='air-palomarin' 
> >   freq=2452 MHz)
> >   Cancelling scan request
> >   Automatic auth_alg selection: 0x1
> >   No keys have been configured - skip key clearing
> >   wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff key_idx=0 
> >   set_tx=1 seq_len=0 key_len=5
> >   wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff key_idx=1 
> >   set_tx=0 seq_len=0 key_len=5
> >   wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff key_idx=2 
> >   set_tx=0 seq_len=0 key_len=13
> >   wpa_driver_bsd_set_drop_unencrypted: enabled=1
> >   wpa_driver_bsd_associate: ssid 'air-palomarin' wpa ie len 0 pairwise 1 
> >   group 1 key mgmt 2
> >   wpa_driver_bsd_associate: set PRIVACY 1
> >   Setting authentication timeout: 5 sec 0 usec
> >   Association event - clear replay counter
> >   Associated to a new BSS: BSSID=00:13:10:9f:28:3a
> >   Associated with 00:13:10:9f:28:3a
> >   Cancelling authentication timeout
> >***SUSPENDED/RESUMED HERE***   
> >   Setting scan request: 0 sec 100000 usec
> >   Added BSSID 00:13:10:9f:28:3a into blacklist
> >   Disconnect event - remove keys
> >   Starting AP scan (broadcast SSID)
> >
> >And the interface isn't working.  Killing and restarting
> >wpa_supplicant brings it back.
> >
> >I also have an older apm based sony Z505 w/ an ath0 pc-card that
> >suspends and resumes w/out any manual intervention.
> >
> >What can I do to make the IBM work w/out manual intervention?
> 
> I have a t42 and atheros card and it works fine w/o the NOAUTO setting 
> and WPA (not WEP).   If removing NOAUTO fixes things then maybe some 
> fixup is required in the rc.resume script.  I'd have expected devd to be 
> notified on resume to bring the interface back up but since you've got 
> NOAUTO set perhaps that's disabling it from happening.

I think there are two things going one.  First, NOAUTO means that on
resume the card doesn't come up because the system can't tell resume
from anything else.  Second, wpa_supplicant doesn't get killed like it
should during suspend (probably due to races) and it doesn't in my
experience deal well with card state changing underneath it.  I suspect
the eventual answer is that we'll need to and suspend and resume code
to /etc/rc.d/netif so we can record the state of interfaces at suspend
and restore them at resume.  That's a fairly tricky problem to solve
completely because users can do silly things like spending, swaping
cards, and resuming.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-mobile/attachments/20051210/2abe0a32/attachment.bin


More information about the freebsd-mobile mailing list