Re: Prevent auto scan in wireless devices



On Wed, 2009-01-14 at 16:29 -0300, Aloisio Almeida wrote:
> Well, you're right about stop background scans, it seems to change the
> way that NM was structured to work.
> 
> But lets suppose the use case where you have a embedded system (or a
> notebook/netbook) and you're running on battery and you don't want use
> wireless that time and you don't have a rf switch button. You will
> loose power keeping your wireless card on scanning at each 20 seconds,
> using passive scan or not.

There are always mechanisms to turn off the card if you don't have a
hardware switch; the largest hammer is to 'rmmod' the driver module.
The second largest hammer is to power the card down with 'iwconfig wlanX
txpower off' or something like that.  The third is to mark the
connection as not managed by NetworkManager during the time that you
want the wifi to be "off".

None of these require a hardware rfkill switch.  They all accomplish
what (I understand) you want:  no scanning when the user isn't connected
to an AP.

> Why don't activate a POWER SAVING mode in nm (when running on battery)
> and make it decrease the power consumption by turning the wireless
> card off after X seconds disconnected and only turn it on by client
> request?

We can make NM listen to power management and move the scan interval
down perhaps, but there's *still* no evidence yet that periodic scans
consume measurable power above & beyond normal PHY operation.

If passive scans really do consume significantly more power than normal
PHY operation (ie, when you're associated), then we can investigate how
to mitigate this.

But until then, the best solution is to turn off the wireless (as
described above) when the user doesn't want to use it.

Dan

> 
> On Wed, Jan 14, 2009 at 2:02 PM, Dan Williams <dcbw redhat com> wrote:
> > On Tue, 2009-01-13 at 23:17 +0200, Antti Kaijanmäki wrote:
> >> [Aloisio, sorry for double reply, I forgot to CC the list]
> >>
> >> On Tue, 2009-01-13 at 17:45 -0300, Aloisio Almeida wrote:
> >> > Hi all,
> >> >
> >> > I noticed that wireless devices are always scanning, and this is very
> >> > bad to power consuption in embedded systems.
> >> > I would like to create a way to prevent automatic scan and just
> >> > perform it when some cliente ask for it.
> >> > Is it possible to do this? I mean, does it "brake" in some way the nm structure?
> >>
> >> Sounds good. Actually if you look at some current embedded devices they
> >> are performing wireless scan only after user has indicated he wants to
> >> create a wireless connection.
> >
> > I tend to think this is mainly because "it's always been done this way"
> > rather than for the reason that it's actually a smoother experience for
> > users.  Chips used to suck enough that they actually did require more
> > power to scan, but these days with passive scans, you don't even need to
> > TX, and thus you don't need to increase power that much.  If this is
> > really a concern, the best approach is to simply disable the device (or
> > rfkill or whatever) until the user wants to use it, at which point you
> > bring the device out of rfkill and let NM go wild.
> >
> >> > Actually, I already did this patch to 0.6.6 version, but zero lines
> >> > applied in new code :) Now i would like to create the patch and submit
> >> > to upstream.
> >> >
> >> > The basic idea is just make can_scan function (src/nm-device-wifi.c)
> >> > return FALSE due to some user configurations or run flags
> >> > (--no-bg-scan). In this case, "performScan" dbus method and
> >> > "ScanPerformed" dbus signal must be created to allow clients to ask
> >> > for a scan and to notice that the scan has been performed.
> >>
> >> Would those be added in org.freedesktop.NetworkManager interface or per
> >> wireless device in Device.Wireless?
> >
> > Not going to happen...  Again, we don't just toss stuff in before
> > actually *understanding* what the problem is, and then determining if
> > there are better ways of solving the problem instead of these sorts of
> > hacks.
> >
> >> > I'm attaching the 0.6.6 patch, as I said before the idea is the same.
> >> >
> >> > Any comments? Is it a good way to implement that?
> >>
> >> I would like to have also a dbus option which you can change without
> >> restarting the daemon; setScanningEnabled() or something like that.
> >> '--no-bg-scan' would initialize it as false on daemon startup. It could
> >> be changed during system operation based on power profiles or something
> >> like that. Anyway it would give more flexibility. Of course that could
> >> be too close to wirelessEnabled (), though...
> >
> > Again, what's the use-case here?  Are there better ways of solving this
> > issue that don't impact the roaming ability performance or user
> > experience?
> >
> > Dan
> >
> >
> >



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]