September 24, 2018
In the hardware hacking community, one of the tried-and-true “go to” tools for serial communication, dumping SPI flash chips, and interacting with basic JTAG interfaces is the GoodFET, developed by our neighbor Travis Goodspeed. Some of the GoodFET instructions are a bit outdated and fragmented, and we recently were asked for help installing this on a modern Debian-based system, namely the Kali Linux security distribution. We have written up those procedures here in the hope that they are useful to people working with the GoodFET hardware.
We suggest installing GoodFET from source, so clone the repository and install as follows:
git clone https://github.com/travisgoodspeed/goodfet.git pushd goodfet/client sudo make link popd
Additional Installation for Firmware Compilation
If you will be modifying and compiling the firmware, you will need to also install the compiler.
First, ensure you have the right
apt package-manager sources available.
For example, on Kali 2018.03, you would add the following line to your
sources.list if it isn’t already present,
so you can get the pre-requisites:
deb http://http.debian.net/debian stretch main contrib non-free
Update and install the package:
apt-get update apt-get install gcc-msp430
If you are on a system like Kali, you may wish to now comment out the line you added above to
sources.list to avoid
conflicts in the future.
Set the board that you will be working with to an environment variable:
You’ll need to remember to do this in the future before you use the tools as well (or persist this variable in your bash settings if you only use one type of board).
If you want to build the firmware yourself, then:
pushd goodfet/firmware make clean && make ls -l goodfet.hex popd
Updating the Device Firmware
Before flashing the device, always run:
goodfet.bsl --dumpinfo > info.txt
Storing these allows you to read back the firmware later and other things by using it with the password (
To flash the device, use the
goodfet.hex file you compiled above:
goodfet.bsl -epv goodfet.hex
This will erase the device and then program it, and then complete verification.
Although you can build and flash the device in a single command with
make install, we recommend splitting it up as we have shown here so you have more control and a clearer indication of where issues occur, if any.
To check the firmware is installed and has the applications you want available, then run:
goodfet.monitor listapps full
goodfet.monitor info command is also useful for verifying basic functionality of the device.
We utilize this command when testing the GoodFETs which we offer pre-assembled via AdaFruit.
If you notice any errata in this post or have suggested additions, please contact us.