Setting up a linux system for gathering heat map data
INTRODUCTION
Ubuntu 10.10 ships with a fairly old version of kismet (2008 vs 2011), which is a pain to configure and not compatible with the latest gpsd in the repository.
This guide will help you configure Kismet to be used with an external GPS dongle. In this case the external GPS dongle is a Android Phone running the application BlueNMEA.
If you are using a serial or USB GPS dongle, you can skip the setup of bluetooth GPS and make sure to replace /dev/rfcomm0 your /dev/ttyXXX, e.g. /dev/ttyUSB0 and use NMEA as the I/O protocol.
Good luck! Any questions? Rick van der Zwet <info@…>
INSTALL KISMET
$ sudo apt-get install libncurses5-dev build-essential libpcap-dev libnl $ wget http://www.kismetwireless.net/code/kismet-2011-03-R2.tar.gz $ tar xvzf kismet-2011-03-R2.tar.gz $ cd kismet-2011-03-R2 $ ./configure --prefix /opt/kismet $ make $ sudo make install
Update (July 2011): There is now also a debian package available which simplifies the installation: http://www.kismetwireless.net/code/kismet-2011.03.2a.i386.deb
You have to customize the file /usr/etc/kismet.conf (i.e. choose wlan0 as the source on a EEEPC) and add the "kismet user" to the group kismet:
adduser <kismetuser> kismet
INSTALL BLUETOOTH GPS
$ sudo apt-get install bluez # Find the MAC-ADDRESS you need, I have 38:E7:D8:C3:6B:C6 $ sudo hcitool scan $ sudo hcitool cc MAC-ADDRESS $ sudo hcitool auth MAC-ADDRESS # Find the channel the GPS serial is 'working' on $ sudo sdptool browse MAC-ADDRESS # Configure your rfcomm config file cat <<EOF >> /etc/bluetooth/rfcomm.conf rfcomm0 { bind yes; device 38:E7:D8:C3:6B:C6; channel 29; comment "GPS Android"; } EOF # Restart bluetooth, alltough not sure whether this is really needed. $ sudo service bluetooth restart # Attach your new Bluetooth serial device $ sudo rfcomm attach all # View if attached succesfully by displaying raw NMEA stream $ cat /dev/rfcomm0 # If you like to close it (properly during shutdown). $ sudo rfcoom release all
INSTALL GPSD
# Re-configure GPSD and make sure to set device to /dev/rfcomm0 $ sudo apt-get install gpsd gpsd-clients $ sudo dpkg-reconfigure gpsd $ sudo service gpsd restart # View status of GPS $ xgps (or gpspipe -r if you only have a CLI)
STARTING KISMET
# Edit the config file; # - make sure ncsource= is set to the right source/interface. # - Check your gpsdevice=/dev/rfcomm0 and gps=true $ sudo vim /opt/kismet/etc/kismet.conf # Now start the server, we are not using the adviced SUID-ROOT mode as this # require hacking around in our groups, refer to the KISMET manual if you are # going to run this in a production envirionment. $ sudo /opt/kismet/bin/kismet_server # If all goes well you will see messages passing like: ## INFO: Started source 'wlan0' ## INFO: Connected to a JSON-enabled GPSD version 2.94, turning on JSON mode # # Now start the client and see the visual output $ /opt/kismet/bin/kismet_client # # HINT: Alternative GUI kismet applications to try: # - qkismet (Hard to compile) # - gkismet (FAIL Ubuntu 10.10 - require Gtk.pm, no longer in repos). # - kismon (FAIL Ubuntu 10.10 - require champlain-memphis which is only # availble in next version)
TROUBLESHOOTING
As a rule of thumb, follow all steps in the process which allow you to view the status and or result of a step and see if it completes succesfully.
- Using Ulysse Gizmos you can nicely see if your Android phone has a fix already.