Praline
Praline is a Raspberry Pi based Bitcoin hardware wallet.
Requirement
You will need:
- Raspberry Pi 2/3 DOES NOT work because they cannot work in USB gadget mode.
- An Adafruit 128x64 OLED Bonnet for Raspberry Pi (optional)
- You can go without the OLED and the buttons, and let this hardware wallet create and sign the transactions without confirmation.
- A 2x20-pin Strip Dual Male Header (optional)
- You might also need this if your Raspberry Pi Zero doesn't come with the 2x20 pins, and you will have to solder this manually.
Installation
The following steps should be done on the Raspberry Pi Zero. Note: The Praline can work offline, but you will need internet access during the installation.
Run as an USB serial gadget
sudo vi /boot/config.txt
# Add "dtoverlay=dwc2" as the last line
sudo vi /boot/cmdline.txt
# Add "modules-load=dwc2,g_serial" after "rootwait"
Read this for detail instructions, but stop after finish step 1, DO NOT enable logging in service on the serial port.
Enable I2C
Enable kernel support from the Raspberry Pi config tool
sudo raspi-config
# 5 Interfacing Options -> P5 I2C
Read this for detail instructions. Note: the location of I2C was changed, see above.
Install Python scripts
You can install Praline with pip
sudo pip install praline
or install from source
git clone https://github.com/zhouer/Praline
cd Praline
sudo pip setup.py install
Run scripts at system boot
You can setup running the Python script at system boot by adding it into /etc/rc.local
sudo vi /etc/rc.local
# Add a line "/usr/local/bin/praline &" before "exit 0"
All done
Un-plug all micro-USB cords, and plug one micro-USB cord back to the USB (NOT PWR IN) port. It will take about 30 seconds to boot into Linux and run the Python script.
Now, you will need the host-side application Praline-host to talk with the Praline.