Wardriving with Kismet
Kismet is the most capable option and the fussiest to set up. Once it works it just works, and the netxml it produces is the richest format this site accepts.
What you need
- A Linux machine — a laptop, or a Raspberry Pi if you want it permanent.
- A WiFi adapter that supports monitor mode. This is the part people get wrong. Atheros (ath9k/ath10k) and MediaTek (mt76) chipsets are reliable; many cheap Realtek dongles are not.
- A GPS. A USB GPS receiver, or your phone via
gpsd.
Install
On Debian, Ubuntu, Raspberry Pi OS and friends:
sudo apt update
sudo apt install kismet gpsd gpsd-clients
# Let your own user capture without running everything as root.
sudo usermod -aG kismet "$USER"
# Log out and back in for the group to take effect.
Check monitor mode works
Before you drive anywhere, confirm the adapter can actually do this:
iw list | grep -A 8 "Supported interface modes"
# You want to see "* monitor" in that list.
If monitor mode is missing, no amount of Kismet configuration will help — you need a different adapter. Ask in the Discord what people are using; the good ones change year to year.
Get GPS working
This is the step worth being pedantic about. A drive with no GPS produces a file this site will refuse, and you will not know until you get home.
# Plug in the receiver, find out what it registered as:
ls /dev/ttyUSB* /dev/ttyACM*
# Point gpsd at it:
sudo gpsd /dev/ttyACM0 -F /var/run/gpsd.sock
# Confirm you have a fix. Wait for the "Status" to say 3D FIX.
cgps -s
Cold-starting a GPS outdoors takes anywhere from 30 seconds to several minutes. Do it before you start the engine, not after.
Configure Kismet
Add your GPS to /etc/kismet/kismet_site.conf:
# /etc/kismet/kismet_site.conf
gps=gpsd:host=localhost,port=2947,reconnect=true
# Name the log after the drive, and keep the netxml this site reads.
log_types=kismet,netxml
log_prefix=/home/youruser/wardrives/
# Channel hopping: fast enough to catch beacons, slow enough to hear them.
channel_hop_speed=5/sec
Do the drive
# Start Kismet on your monitor-capable interface.
kismet -c wlan1
# Then open http://localhost:2501 in a browser to watch it work.
Watch the GPS indicator in the Kismet web UI. If it goes red mid-drive, the rest of the drive is being recorded without positions.
Upload it
Stop Kismet with Ctrl-C. In your log directory you will find a
.netxml file — that is the one to
upload. Gzip it first if it is large; this site
reads .gz transparently.
ls -la ~/wardrives/
gzip ~/wardrives/Kismet-20260805-14-22-01-1.netxml
Things that go wrong
- Every network has the same position
- GPS was not connected, so Kismet stamped everything with its last known fix. Check
cgps -sbefore driving. - Very few networks found
- Usually the adapter fell out of monitor mode, or channel hopping is too fast. Try
channel_hop_speed=3/sec. - Upload rejected for no GPS
- The netxml has
<gps-info>blocks reading 0.000000. That is a "no satellite lock" recording, not a bad upload — the data genuinely has no positions in it. - Kismet will not start
- Almost always permissions. Confirm you are in the
kismetgroup and have logged out and back in since.