How detecting the Wifi area my iwi0 is in?
Matthias Apitz
m.apitz at oclcpica.org
Tue Jul 17 12:30:35 UTC 2007
El día Monday, July 16, 2007 a las 09:31:18AM -0700, Sam Leffler escribió:
> wpa_supplicant grok's WEP and should also handle open auth (no crypto).
> The intended way to handle the rest of your needs is to hook into devd
> and launch a script the link UP event (or similar). For the latter
> you'll probably want to write your script to work only on first link UP
> so you don't repeat work for each DOWN/UP transition (as happens when
> the AP dumps the station for inactivity).
>
> You can find the ssid of the associated ap with ifconfig (e.g. ifconfig
> iwi0 list sta | awk '{print $1;}') or use wpa_cli to query the info from
> wpa_supplicant if you use it to setup your network. Given the wealth of
> wireless state displayed by ifconfig I've also considered adding a new
> program that's designed for shell scripts; it could be used to query
> individual settings and/or generate shell syntax for multiple params; e.g.
>
> SSID=`wlanconfig iwi0 ssid`
> eval `wlanconfig iwi0 ssid channel authmode`
>
> Another thing to look at is the wlanwatch program in
> tools/tools/net80211; you can use it to write a program that waits for
> the first link UP event (on associate) and then have it print the SSID
> of the ap to stdout.
>
> I think all the mechanisms for doing stuff are present in the system;
> we're just lacking better integration to autoconfig network state.
Sam,
Thanks for that very usefull hint. I've put a user script into
/usr/local/etc/devd/iwi.conf (the dir /usr/local/etc/devd will
be scanned by devd(8) by default) and this watches the iwi0
as:
# cat /usr/local/etc/devd/iwi.conf
notify 1 {
match "system" "IFNET";
match "subsystem" "iwi0";
match "type" "LINK_UP";
action "/home/guru/devd.sh $subsystem $type";
};
My script 'devd.sh' (which will later do the real work) sees the
LINK_UP fine and the MAC addr (not the SSID) of the AP is
ap=`/sbin/ifconfig iwi0 list sta | awk '{print $1;}' | fgrep -v ADDR`
but the MAC addr should be even better in that case:
Tue Jul 17 14:07:50 CEST 2007: /home/guru/devd.sh iwi0 LINK_DOWN
ap [00:04:e2:a1:76:0b] seems to be the OH office
Tue Jul 17 14:08:18 CEST 2007: /home/guru/devd.sh iwi0 LINK_UP
ap [00:04:e2:a1:76:0b] seems to be the OH office
The above LINK_DOWN / LINK_UP was just a power-cycle of the AP
itself. I'm still thinking how to avoid with some lock file
that on any LINK_UP the script does its work, but only on a first
time; perhaps it's safe enough to remove a stale lock file before
the launch of the wpa_supplicant and just touch it on 1st LINK_UP;
btw: are there any Wifi-like PCMCIA cards which I could use with
FBSD-current in the other laptop?
matthias
--
e <m.apitz at oclcpica.org> - w http://www.oclcpica.org/ http://www.UnixArea.de/
b http://gurucubano.blogspot.com/
More information about the freebsd-mobile
mailing list