Thanks to the hard work of the fine folk at Hak5, there are now official Kismet builds directly available for the Pineapple Tetra, and remote capture for the Pineapple Nano, available via opkg or the web interface!
Kismet tracks a lot of information about different networks and devices, which takes a lot of RAM. Most OpenWRT targets have very limited resources for flash and RAM and are not best suited for running Kismet. Usually, these devices are best suited for running the Kismet remote capture code, feeding packets to a full Kismet server on ‘real’ hardware.
Check out whatever version of OpenWRT/LEDE you’re planning to use.
You’ll want the Kismet source code to get the openwrt package definition.
$ git clone https://www.kismetwireless.net/kismet.git
We need to tell OpenWRT to pull the feeds into the build system. Change to the openWRT directory you checked out, and run:
$ cd openwrt $ ./scripts/feeds update -a $ ./scripts/feeds install -a
This will download all the third-party package definitions. They’ll be needed by the Kismet packages.
We want to copy the Kismet package over, because we’ll potentially be making some modifications. We assume you checked out the Kismet code into
~/src/, if not, just substitute whatever path you used. We’ll need to copy the packages into the
package/network/ directory, so still in the OpenWRT you checked out…
$ cp -R ~/src/kismet/packaging/openwrt/kismet-2019-pineapple package/network $ cp -R ~/src/kismet/packaging/openwrt/kismet-remote-2019 package/network
In a perfect world the libprotoc-c package in OpenWRT would install the proper host binary for protoc-c, but it does not. Fortunately, there is only one version of libproto-c (the C-only version), so the package for your host distribution should be sufficient.
$ sudo apt-install protobuf-c-compiler
will suffice on Ubuntu-style distributions; your distribution may vary. Note: This is for the protobuf-c version, not the normal protobuf (which is C++, and which has a working OpenWRT package with proper host tools).
Newer versions of the OpenWRT build environment may fix this, but performing this step won’t hurt.
You will need to select the basic options for OpenWRT and enable the external feed for additional libraries Kismet needs. When running
make menuconfig you may see warnings about needing additional packages - install any that OpenWRT says you are missing.
# Start the configuration tool $ make menuconfig
Inside the OpenWRT configuration you will want to:
Separate Feed Repositories
Enable feed packages
Now we need to enable the Kismet package. In the OpenWRT config tool still:
To compile just the remote capture drivers (for smaller systems like the Nano or other very limited devices), select
kismet-remote-capture as a module.
Now we need to start the build process: It will take a while.
Depending on how many processors your system has, you can speed this up with
$ make -j10
If everything went well, you now have a bunch of packages to copy (or a firmware image to flash).