[TriLUG] gpsmap experience

Michael Hrivnak mhrivnak at triad.rr.com
Sat May 7 00:07:05 EDT 2005


Dear all,

I've asked a lot of questions and received lots of great information from this 
group.  This time I'm going to share some interesting experience using kismet 
and gpsdrive to generate maps of wifi networks.

Let's cut to the chase.  This link shows you several examples of what I was 
able to produce.

http://moses.sca.ncsu.edu/~mhrivnak/wifi_maps/north_raleigh/

Numbers 9 and 11 show you the route that was driven, while the rest depict the 
networks found in various representations.  For maps 6-8, red networks have 
WEP, green do not, and blue indicate the access points have factory default 
settings.

gpsmap has five map sources to choose from.  My favorite is Mapblast, used for 
maps 6-10.  Terraserver provides satellite/aerial photography that I used for 
map 11.  As you can see by comparing 9 and 11, Mapblast has tremendous 
accuracy while Terraserver has noticeable variation.

PROCESS

These were created using kismet, http://www.kismetwireless.net/ and gpsdrive, 
http://gpsdrive.kraftvoll.at/

I used kismet to collect data on wifi networks that my laptop was able to 
detect.  It saves that data to sets of log files that can later be used to 
generate maps.  Kismet includes the program "gpsmap" which processes data 
after the fact to generate maps.

Step 1:

I used "gpsd" from the gpsdrive project to interface kismet with my Garmin 
eTrex Legend gps through the serial port.  Here's how that worked:

gpsd -S 2222 -p /dev/ttyS0 -s 4800

Kismet should detect and connect to gpsd without any changes to default 
settings.  A complicating issue is that the gps3d project, 
http://www.mgix.com/gps3d/, also contains a binary "gpsd" that is different 
from gspdrive's gpsd and is not compatible with kismet.  Getting these two 
mixed up caused me more confusion than anything else in this process.

Step 2:

Fire up kismet.  There are other documents that can explain this.  There are 
also some promising GUI front ends, none of which I've actually tried.  If 
all goes well, you should see location data in the kismet window.

Step 3:

Travel.  Data for these maps was collected in a car.  I'm planning to mount an 
antenna to my bicycle soon so I can collect data while getting into 
shape.  Pick your favorite means.

Step 4:

Now that you have some data, use gpsmap to generate maps.  The logs are saved 
in kismet's working directory.  Here is how map 10 was created:

gpsmap -r -S 0 -n 2 -k -s 7000 -o ~/map10.jpg Kismet-May-01-2005-5.gps

gpsmap automatically downloads the appropriate map from the source you choose.


There are some features lacking in either software support or my ability to 
find them:

First of all, I would like the ability to plot for example only the networks 
with WEP.  gpsmap can already differentiate to the extent that it will color 
code based on WEP, but I want the ability to decide what gets plotted based 
on WEP.  The same could be applied to channel number.

So far, my efforts to put labels on the maps, such as ssid, have failed 
miserably.  The labels tend to be put in all the wrong places.  I suspect 
this would work better on a map less crowded with networks.

Lastly, I am concerned about what will happen when I start collecting data 
with a good antenna.  The data for these maps was collected with an Orinoco 
silver card with its built-in antenna.  I can imagine that if I use a good 
antenna to drastically increase reception, the maps will become so crowded 
that they will be less useful.  Luckily, gpsmap has some features that may 
help this situation such as "feathering".

This is all of course purely academic.  It's very interesting just how many 
networks were found, 152 in all for this particular session.  Thanks to 
Richie Woodbury for his help.

Michael Hrivnak



More information about the TriLUG mailing list