Note that none of the files I provide for download are necessary for getting this to work. You only need the patches and they are just text files you can assess for yourself. The other files are just to make it easier for some of you.
1. First get yourself a cross compiler. A guide for setting one up can be found at https://bitcointalksearch.org/topic/m.1691384
2. Download this file http://www9.zippyshare.com/v/58820498/file.html. It includes the static library libpython2.7.a and the directory /usr/include/python2.7 from the RPi.
a. You can download the source code for python2.7 and compile it on your RPi and extract the necessary files yourselves. I found that installing python2 via pacman (Arch package manager) didn't provide me with libpython2.7.a.
b. The directory /usr/include/python2.7 can be found on the RPi by installing python2 via pacman.
3. Create two subdirectories under your home directory:
mkdir $HOME/{lib,include}
tar xzvf python-arm-files.tgz
mv libpython2.7.a $HOME/lib/
mv python2.7 $HOME/include/
4. Get Armory:
git clone https://github.com/etotheipi/BitcoinArmory.git
5. Download this file, http://www30.zippyshare.com/v/67984125/file.html. It includes patches that will be used on some of the Makefiles and ArmoryQT.py and armoryengine.py.
6. Uncompress and move the patches to the BitcoinArmory directory and apply them.
tar xzvf patches.tgz && mv *patch BitcoinArmory/ && cd BitcoinArmory
patch -p1 -i cryptopp.Makefile.patch && \
patch -p1 -i leveldb.Makefile.patch && \
patch -p1 -i cppForSwig.Makefile.patch && \
patch -p1 -i ArmoryQT.patch && \
patch -p1 -i armoryengine.patch
7. Now everything should work. run:
make
8.Create a directory for the RPi Armory version and move the necessary files to it and compress that directory.
mkdir armory-pi
cp -r *py *so LICENSE README img armory-pi/
tar cjvf armory-pi.tar.bz2 armory-pi
9. I have been using ArchLinuxARM-2014.01-rpi.img which can be downloaded from archlinuxarm.org/platforms/armv6/raspberry-pi. Install instructions are found there as well.
10. Some packages are necessary to get Armory up and running. Make sure you have an Internet connection and run
pacman -Syu
pacman -S xorg xorg-xinit lxde
pacman -S python2 python2-psutil python2-pyqt4 twisted
11. Download jsonrpc-1.2.tar.gz from https://pypi.python.org/pypi/jsonrpc/1.2 and
a. Extract it
tar xzvf jsonrpc-1.2.tar.gz
cd jsonrpc-1.2 && python2 setup.py build
python2 setup.py install
12. Try the system out so that everything works as expected.
echo 'exec startlxde' > ~/.xinitrc
startx
cd armory-pi && python2 ArmoryQT.py
13. Go to /var/cache/pacman/pkg and move all .xz files to a USB stick.
14. Reinstall Arch Linux on the SD-card. When running it this time around make sure it is completely offline.
15. Move the packages and armory-pi.tar.bz2 to the freshly installed system.
16. Install the packages on the system
pacman -U *xz
17. Extract Armory
tar xjvf armory-pi.tar.bz2
18. Start the desktop environment and run armory.
echo 'exec startlxde' > ~/.xinitrc
startx
cd armory-pi && python2 ArmoryQT.py
19. Done!
The one functionality I didn't get working was message signing. The problematic line is #43 in ArmoryQT.py. If anyone finds a solution, please post it here.
Some tips:
- Use an SD card of class 10. I used class 4 first and it was a pain.
- Try overclocking the RPi to get better performance. /Raspberry_Pi#Overclocking.2FUnderclocking">https://wiki.archlinux.org/index.php
/Raspberry_Pi#Overclocking.2FUnderclocking - Resize the SD card to get more space (Could be a good idea while installing all packages). A default installation only gives you 2GB, no matter what the size your card is. http://archlinuxarm.org/forum/viewtopic.php?f=31&t=3119&sid=aab76b8acc31aa97d2a82cca1188cd22&start=20#p33507
- Dont forget to install printer drivers and cups to be able to do paper backups.
Some tips for the paranoid user:
- Install truecrypt
- Skip resizing the sd-card and use the free space to create an encrypted volume using truecrypt (if you wear a tinfoil hat, create a hidden truecrypt volume http://www.truecrypt.org/docs/hidden-volume#Y0)
- Start Armory
- Create an offline wallet as normal, to be given up if you are forced to one way or another. Fund it with an insignificant amount of coins.
- Close Armory
- Mount the (hidden) encrypted volume on $HOME/.armory
- Start Armory
- Create your true offline wallet now
- Back-it-up!
- Dont use a printer with Internet connectivity in general and wireless in particular
Hope this guide is clear enough for everyone and that it works without problems. If you dont want to deal with cross compiling you can download a prepared version of Armory for RPi here. http://www49.zippyshare.com/v/20048910/file.html
A long weeks hard work has paid off! I think I deserve a nice cold beer this weekend. Wanna buy me one? My local bartender charges me 0.015BTC for a beer , 18cyBjhkBdD45amH3oW5yuFRYsm82QTSvi