From owner-freebsd-mobile@FreeBSD.ORG Sat Dec 10 19:37:08 2005 Return-Path: X-Original-To: freebsd-mobile@freebsd.org Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D969F16A41F for ; Sat, 10 Dec 2005 19:37:08 +0000 (GMT) (envelope-from hartzell@satchel.alerce.com) Received: from merlin.alerce.com (w094.z064001164.sjc-ca.dsl.cnc.net [64.1.164.94]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1100043D45 for ; Sat, 10 Dec 2005 19:37:05 +0000 (GMT) (envelope-from hartzell@satchel.alerce.com) Received: from merlin.alerce.com (localhost [127.0.0.1]) by merlin.alerce.com (Postfix) with ESMTP id F02F02190; Sat, 10 Dec 2005 11:37:02 -0800 (PST) Received: from satchel.alerce.com (w092.z064001164.sjc-ca.dsl.cnc.net [64.1.164.92]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by merlin.alerce.com (Postfix) with ESMTP id C202E2174; Sat, 10 Dec 2005 11:37:02 -0800 (PST) Received: from satchel.alerce.com (localhost [127.0.0.1]) by satchel.alerce.com (8.13.4/8.13.4) with ESMTP id jBAJax95003230; Sat, 10 Dec 2005 11:37:00 -0800 (PST) (envelope-from hartzell@satchel.alerce.com) Received: (from hartzell@localhost) by satchel.alerce.com (8.13.4/8.13.4/Submit) id jBAJaugh003210; Sat, 10 Dec 2005 11:36:56 -0800 (PST) (envelope-from hartzell) From: George Hartzell MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17307.11863.508599.269079@satchel.alerce.com> Date: Sat, 10 Dec 2005 11:36:55 -0800 To: Brooks Davis In-Reply-To: <20051210185945.GD12946@odin.ac.hmc.edu> References: <17307.3792.552944.551108@satchel.alerce.com> <439B1F73.4000804@errno.com> <20051210185945.GD12946@odin.ac.hmc.edu> X-Mailer: VM 7.17 under 21.4 (patch 17) "Jumbo Shrimp" XEmacs Lucid X-Virus-Scanned: ClamAV using ClamSMTP Cc: hartzell@alerce.com, freebsd-mobile@freebsd.org Subject: Re: 6-STABLE, ath, wpa_supplicant/dhcp and suspend/resume problem. X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: hartzell@alerce.com List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Dec 2005 19:37:09 -0000 [In addition to responding to some of Brooks' info, there's a bit of new information at the end of the message.] Brooks Davis writes: > 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. Removing NOAUTO from the ifconfig_ath0 line does not fix my problem. > 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. So, on suspend wpa_supplicant should be killed, and then on resume it should restart from scratch (as long as I'm not using NOAUTO...)? Is wpa_supplicant responsible for running dhclient or is that started separately via /etc/rc.d/netif? I've noticed that if I'm running wpa_supplicant in the foreground and kill it, dhclient dies too. Or is that just because it loses link? > 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. Who/what would run the netif script at suspend time? /etc/rc.{suspend,resume} only seem to run if I suspend via acpiconf, not if I suspend via closing the lid w/ hw.acpi.lid_switch_state: S3. Would the problem be easier to solve if we punted on the swapping out cards while suspended problem? Would it also cover ethernet interfaces (em0 in my case) that are also NOAUTO? I have a bit of new data that may or may not be useful. Here's the tail end of my dmesg output. Sometimes there seems to be a message about being unable to reset ath0. Is that a red herring? can't re-use a leaf (squelch_level)! ath0: link state changed to UP ath0: link state changed to DOWN ath0: unable to reset hardware; hal status 3 wakeup from sleeping state (slept 00:51:26) can't re-use a leaf (directional_scrolls)! can't re-use a leaf (low_speed_threshold)! can't re-use a leaf (min_movement)! can't re-use a leaf (squelch_level)! ath0: link state changed to UP ath0: link state changed to DOWN wakeup from sleeping state (slept 00:00:06) ath0: link state changed to UP can't re-use a leaf (directional_scrolls)! can't re-use a leaf (low_speed_threshold)! can't re-use a leaf (min_movement)! can't re-use a leaf (squelch_level)! ath0: link state changed to DOWN wakeup from sleeping state (slept 00:00:09) ath0: link state changed to UP ath0: link state changed to DOWN wakeup from sleeping state (slept 00:00:06) can't re-use a leaf (directional_scrolls)! can't re-use a leaf (low_speed_threshold)! can't re-use a leaf (min_movement)! can't re-use a leaf (squelch_level)! ath0: link state changed to UP ath0: link state changed to DOWN ath0: unable to reset hardware; hal status 3 wakeup from sleeping state (slept 01:10:08) can't re-use a leaf (directional_scrolls)! can't re-use a leaf (low_speed_threshold)! can't re-use a leaf (min_movement)! can't re-use a leaf (squelch_level)! Thanks! g.