channel-switch: use sys/ioctl.h instead of stropts.h
[rofl0r-MacGeiger.git] / README.md
blobe9315fec0462e97e44f2e964bf0593b813160aac
1 MacGeiger - a WIFI AP locator utility
2 =====================================
4 this tool puts your wireless card into monitor mode, then processes beacon
5 frames from APs to create a list, in which you can navigate with the cursor
6 keys, then select one AP with `ENTER`. the AP will open in detail view and
7 start to beep. the faster it beeps, the better is the signal of the AP.
9 this is quite handy to adjust directional antennas for the perfect signal
10 without having to stare at a screen, which may be impractical.
12 it can also be used on a mobile linux device (think netbook) to move through
13 the streets and find the physical location of APs. you probably should wear
14 headphones to do so...
16 the keys `+`/`-` and `0`/`9` can be used to adjust the audio volume.
18 Dependencies
19 ------------
21 3rd party dependencies (install them including headers, i.e. -dev package)
22 - libpcap :packet capturing library
23 - libao   :audio output library
25 1st party dependencies
26 - rcb2     :build tool
27   - depends on python2
28 - concol  :terminal library with ncurses,termbox and SDL backends
29   - depends on either SDL or ncurses devel package installed
31 how to build from release tarball:
32 ----------------------------------
34 just run `make`. if you need to change variables, CFLAGS, etc, do so by
35 creating a file called `config.mak` and override the settings there.
36 you may also use it to change `BACKEND` to `SDL`.
37 by default the ncurses version will be built since it is assumed it is more
38 widely available.
40 Note: you may find release tarballs attached to git tags in the github repo.
42 how to build from git:
43 ----------------------
45 paste this into your shell
47     mkdir /tmp/macgeiger-build
48     cd /tmp/macgeiger-build
49     for i in rcb2 concol macgeiger libulz ; do git clone git://github.com/rofl0r/$i ; done
50     mv libulz lib
51     ln -s rcb2.py rcb2/rcb2
52     cd macgeiger/
53     printf "%s\n%s\n" "CFLAGS+=-DCONSOLE_BACKEND=SDL_CONSOLE" "CFLAGS+=-DCONSOLE_FONT=INT10FONT14" > config.mak
54     PATH="$PATH:../rcb2" make
56 if you want to use the ncurses backend (which is much harder to debug using gdb),
57 replace SDL_CONSOLE with NCURSES_CONSOLE in the above printf command
59 alternatively you may use the `create-dist` script to create a source tarball
60 that does not require the rcb build tool.
62 rebuilding with a different console backend:
63 -------------------------------------------
64 if you decided to try another backend (not the previously used one), run
66     PATH="$PATH:../rcb2" RCBFLAGS=--new make
68 how to use:
69 -----------
71     ./macgeiger.out wlan0mon
73 let the program gather network info for some seconds, then select an AP from the list
74 with cursor-up, cursor-down, then hit ENTER to track it with audio feedback.