I'm trying to build Bitcoin Armory on a Raspberry Pi with Rapsbian (to use as an offline wallet) and I'm in need of assistance.

I've found a couple of guides on how to set up a cross compiler, building it, and then moving it over to the pi. I can't get any of them to work, so I decided to start by getting Armory to build on the Pi itself, and then moving on to getting it to work on the cross compiler.

gcc can be a pain, I have had similar issues compiling mining software on Ubuntu, I think you can install extra gcc libraries but you can seriously break your system, I think you need to follow the above thread to see if theres a resolution and read the gcc documentation, you might be able to set proper flags for ppc or whatever pi is based on.

As the CXX.patch file is quite old, I had to patch those two files (cppForSwig/Makefile, cppForSwig/cryptopp/Makefile) by hand. Just search for the red marked lines (https://gist.github.com/FiloSottile/3646033#file-cxx-patch) and replace them by the green ones. And because of the static linking of python you also need to adjust cppForSwig/Makefile to point to your libpython$(PYVER).so. You need to get this file from your raspberry pi, then save it on your compiling machine and change the Makefile accordingly.

I remember getting this error last week as well (didn't mention it in the post since i gave up on crosscompiling and was trying to compile it on the pi itself), and it is mentioned in the comments in the gists.

I assume this is why I'm copying the libpython2.7.so file from the pi? Any idea what I might be doing wrong this time?

Please check your cppForSwig/Makefile again, it still includes the wrong path to the python library!

EDIT: I checked my Makefile and its pointing to the same include dir. Don't know why it worked with my version. You could try to get the whole /usr/include/python* directory from your RPi and then adjust the path in the Makefile for SWIG_INC.

EDIT2: Did you 'make clean' after the faulty make without the CXX env set?

What I hadn't done was copy all of /usr/include/python2.7 to my cross compiler. After doing this and editing one more line in the makefile it worked perfectly.

I'm going to write down the exact steps I took to get this to work, since I will probably end up doing this again in like a year or so. If there is any interest I'll post it here once I've made sure it is complete and no steps are missing.

I'm also gonna give it a few more tries to get it to compile directly on the Pi. I feel it would be nice to get this to work (even if its very slow) since then one wouldn't need an additional computer.

I noticed this thread being linked from the official Armory subforum which inspired me to include a step by step guide to get it working. This could probably be made into a shellscript, but my linuxfu is not strong enough and it will probably be broken very easily as time marches on and things gets updated.

These steps were tested on a clean install of Ubuntu 12.10 64-bit on 2013-03-26. The current version of Bitcoin Armory is 0.87-beta.

(This pretty much a copy paste from a markdown file I wrote for future me, however, there are a few manual edits to account for the forum syntax)========================================

## Starting pointThis step by step guide is done on a clean install of ubuntu 12.10 desktop amd64. During installation the option ”Download updates while installing” was left unchecked to make the results completly replicable.

After the installation process completed the only things I did before starting this guide is change the resolution of the screen and install OpenSSH-server since I’m used to the OS X terminal app.

Quote

sudo apt-get install openssh-server

to figure out the ip of the computer i used

Quote

ifconfig

(Yes, this is a VERY thorough walkthrough, the idea is that when I’m doing this again, maybe in a year or two, nothing should have to be googled while following this guide)

## Install required packagesMy main gripe with the other guides was that apparantly they had some stuff already installed on their systems. I say this because when I followed their instructions I kept hitting roadblocks.

The complete list of packages i installed after the ubuntu installer was do is as follows:

# Build Bitcoin Armory for Raspberry Pi (using cross compiler)This is a step by step guide on how to build Bitcoin Armory for the Raspberry Pi. This guide assumes that a working crosscompiler has been set up in a fashion similar to the previous post

Would be nice to have Armory autostart once x is up and running. Not sure how to do this in linux. I intend to figure it out after easter is done. I would imagine it is very simple.

It is VERY slow to decrypt an encrypted wallet, it took a couple of minutes to do it for me when i was doing an initial test. I'm contemplating using full disk encryption instead of encrypting each individual wallet since I intend to have a SD-card that i use only for armory. However, i fear this might make the Pi so slow as to make it unusable. Not sure how to it either, but isn't that the point of having a pi? To learn new stuff . Anyway, this also something to add to the todo list.

do you think it being so slow might be because raspberry pi isn't designed for ubuntu. it's not one of its officially supported OSes. Or is it because pi is generally slow all around when it comes to 2D acceleration?

On the Pi i used Raspbian wheezy. I didn't think of mentioning it, so I'm glad thing you asked.

Not sure why it is so slow, my guess would be simply because the arm chip isn't very powerful. I imagine the libraries used aren't optimized for arm either. Neither one of these theories provide a way to increase the speed though, so hopefully i'm wrong.

I'm sure using tools with GUIs will work just as well. The main reason I stuck with the command line is that it is so easy to reproduce the results; just copy each line and in the end it will work. Using a GUI makes it a bit trickier to clearly explain each step.

I'm trying to build Bitcoin Armory on a Raspberry Pi with Rapsbian (to use as an offline wallet) and I'm in need of assistance.

I've found a couple of guides on how to set up a cross compiler, building it, and then moving it over to the pi. I can't get any of them to work, so I decided to start by getting Armory to build on the Pi itself, and then moving on to getting it to work on the cross compiler.

This error seems to be caused by the Makefile in cryptopp 5.6.1 detecting the compiler on the Raspberry Pi to be a Sun C++ compiler (I have no idea why that happens). To fix this issue simply replace the Makefile in cppForSwig/cryptopp with the GNUmakefile that is in cryptopp 5.6.2 (link).