Author

Topic: Trouble installing Raspberry Pi offline bundle. (Read 6092 times)

legendary
Activity: 1372
Merit: 1000
November 10, 2014, 08:17:49 PM
#14
Cheesy I had installed Bitcoin Core on my pi too, armory found it and and initialized it, it was all so cute. 
I dont expect to have an online wallet on my pi, Embarrassed the blockchain is only 23% downloaded, and it keeps getting I/O errors - i have a 256GB SD card. and gave up trying to download the whole thing.

but still very excited to see it all working on such low powered hardware.


You'd be better off copying the files over from a PC. Downloading the blockchain is the least of your worries. Verifying the blocks will be stupid long, and building + scanning the DB too. Copying a fully scanned DB over will be entirely easier. I dont see a future in this however. A Pi is too slow for the current backend model. It is very likely it will choke on new blocks. The new backend is a lot more scalable and runs on a push model so it won't choke regardless of how little resources are available for parsing new blocks, but it only runs in x64, which disqualifies ARMs by default.

Lite node with the new backend could run on a RPi, but we're not there just yet.

I have the latest Bitcoin Core on my Pi, I've tried bootstrap.dat, and copying the files from my WinPC - (problem may be I copied the chain state too with no luck) the last time i got to March 2014 blockheight and it corrupted.

I had pity much given up, yes the pi is a little on the week side.  I was just surprised to see armory launch it  Wink as if it was superposed to be there cute is what came to mind.
legendary
Activity: 3766
Merit: 1364
Armory Developer
Cheesy I had installed Bitcoin Core on my pi too, armory found it and and initialized it, it was all so cute. 
I dont expect to have an online wallet on my pi, Embarrassed the blockchain is only 23% downloaded, and it keeps getting I/O errors - i have a 256GB SD card. and gave up trying to download the whole thing.

but still very excited to see it all working on such low powered hardware.


You'd be better off copying the files over from a PC. Downloading the blockchain is the least of your worries. Verifying the blocks will be stupid long, and building + scanning the DB too. Copying a fully scanned DB over will be entirely easier. I dont see a future in this however. A Pi is too slow for the current backend model. It is very likely it will choke on new blocks. The new backend is a lot more scalable and runs on a push model so it won't choke regardless of how little resources are available for parsing new blocks, but it only runs in x64, which disqualifies ARMs by default.

Lite node with the new backend could run on a RPi, but we're not there just yet.
legendary
Activity: 1372
Merit: 1000
 Grin So I couldn't get the installer script to work by double clicking and running in terminal.

I had success doing the flowing - all offline.

extracting "OfflineBundle" from armory_0.92.3_rpi_bundle.tar.gz - to /home/pi/OfflineBundle

from the /OfflineBundle folder i ran sudo ./Install_DblClick_RunInTerminal.py

it almost all installed. but wouldn't run.
i then ran: sudo dpkg -i *.deb

after which armory booted and ran perfectly on the pi.

I rebooted (not sure what happened to my desktop icon), I found a launcher in the internet start menu. this time grouped with an internet programs.

Cheesy I had installed Bitcoin Core on my pi too, armory found it and and initialized it, it was all so cute.  
I dont expect to have an online wallet on my pi, Embarrassed the blockchain is only 23% downloaded, and it keeps getting I/O errors - i have a 256GB SD card. and gave up trying to download the whole thing.

but still very excited to see it all working on such low powered hardware.

newbie
Activity: 3
Merit: 0
For anyone interested, I was able to get everything running. I did the following:

sudo dpkg -i *.deb (in the folder downloaded from armory.com)
it threw some errors about unconfigured dependencies, but no problems so far.

Then I ran the Install script without sudo. That's it. Not sure if I needed the first step, but I think I had issues just running the install script alone without sudo?
newbie
Activity: 3
Merit: 0
That did indeed allow the installer to complete. Unfortunately attempting to launch from the desktop shortcut does nothing.
member
Activity: 75
Merit: 10
Is anyone able to install 0.92.3? I am receiving the same error as quiveringgibbage. I noticed the error results from creating the Desktop icon - I commented these sections out the .py install file and the process completes (without a desktop icon obviously). I am unable to execute ArmoryQt.py after that though, probably because of my knowledge deficit on how this process actually works. Any help?

I am also getting the desktop file not existing error (but not the dpkg error).

Since you need to install using sudo, it tries to install under /root/Desktop. On my raspberry pi at least, there is no Desktop directory under /root. There is an armory.desktop under my user's Desktop directory, but it doesn't get populated by Install_DblClick_RunInTerminal.py, because it is not looking there.

To fix:
Change line 31 to:

Code:
deskfile = os.path.join('/', 'home', os.getenv('SUDO_USER'), 'Desktop', 'armory.desktop')

SUDO_USER is the user running sudo, so this chooses the Desktop directory for that user instead of root. I don't know of an environment variable to directly get the sudo user's home directory.

Someone from ATI might come around with a better fix.

Now I still get "No module named psutil" when I try to run Armory
newbie
Activity: 3
Merit: 0
Is anyone able to install 0.92.3? I am receiving the same error as quiveringgibbage. I noticed the error results from creating the Desktop icon - I commented these sections out the .py install file and the process completes (without a desktop icon obviously). I am unable to execute ArmoryQt.py after that though, probably because of my knowledge deficit on how this process actually works. Any help?
hero member
Activity: 617
Merit: 543
http://idontALT.com
I will add that fix (along with fixing the regular Ubuntu offline bundles), for 0.92.3 ...
It would seem 0.92.3 -- OFFLINE BUNDLE is broken too, anyone else get this to work?

Code:
pi@raspberrypi ~/OfflineBundle $ sudo ./Install_DblClick_RunInTerminal.py
Executing: "gksudo dpkg -i *.deb"
dpkg: error: need an action option

Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;

Options marked [*] produce a lot of output - pipe it through `less' or `more' !
Executing: "gksudo "tar -zxf armory_0.92.3_raspbian-armhf.tar.gz -C /""
tar: usr/bin/armory: time stamp 2014-10-03 11:58:03 is 2045184.223529 s in the future
tar: usr/bin: time stamp 2014-10-03 11:58:03 is 2045184.219738 s in the future
tar: usr/share/armory/img/keyhole_gray.png: time stamp 2014-10-03 11:58:03 is 2045184.216998 s in the future

...

tar: usr/lib/armory/extras/createTxFromAddrList.py: time stamp 2014-10-03 11:58:03 is 2045175.906145 s in the future
tar: usr/lib/armory/extras: time stamp 2014-10-03 11:58:04 is 2045176.905299 s in the future
tar: usr/lib/armory: time stamp 2014-10-03 11:58:04 is 2045176.904669 s in the future
tar: usr/lib: time stamp 2014-10-03 11:58:02 is 2045174.904198 s in the future
tar: usr: time stamp 2014-10-03 11:58:02 is 2045174.899945 s in the future
Traceback (most recent call last):
  File "./Install_DblClick_RunInTerminal.py", line 33, in
    open(deskfile,'w').write("""
IOError: [Errno 2] No such file or directory: '/root/Desktop/armory.desktop'
pi@raspberrypi ~/OfflineBundle $

Help?!?

Cheers,
QG
newbie
Activity: 18
Merit: 0
Im currently looking into securing my bitcoins better and thought of trying to use my Raspberry to something other then collecting dust in the same time. I struggeled to find a easy guide, but still not sure if I encounter the same bug as postet here or Im doing something wrong myself.

I installed RASPBIAN by following this tutorial: http://www.raspberrypi.org/documentation/installation/installing-images/README.md and downloading from http://www.raspberrypi.org/downloads/

Then I downloaded https://s3.amazonaws.com/bitcoinarmory-releases/armory_0.92.1_rpi_bundle.tar.gz (I didnt have access to version 0.92.2 ?? ) to my Windows PC, extracted onto a USB-stick and put it into my Raspberry. Then I used 20 min to figure out how to run the .py by using terminal. There I encountered a error similary to the one in this thread.
hero member
Activity: 547
Merit: 500
Decor in numeris
By the way, interesting lesson for you, I didn't even learn about it until sometime last year:  the for-else loop in python. 

Yes, it is weird.  Useful, but weird.  I vaguely remembered that it did something else than one would expect, the obvious expectation being that it gets run if the loop does not (iterates zero times).  That is what I would expect from the syntax: loop over this, else do that.  Instead, the else syntactically binds to the "for" loop, but its semantics binds to the "if ... break" inside it.  Arguably far more useful, but one of the extremely rare cases in Python where a language construct does something else than the obvious.

Thanks for your quick reply! 

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
3.  The script crashed on the line
Code:
execAndWait('gksudo tar -zxf %s -C /' % installer)
where gksudo complained that there is no -z option.  This makes little sense, perhaps it was really tar that was complaining??

Why is gksudo being used to run a non-graphical application?

Edit: And you probably want quote characters around tar -zxf %s -C /, so that the -z option belongs to tar instead of gksudo.

gksudo is used because the offline bundles are promoted to people that may not be too familiar with Linux.  We recommend they unpack and double-click the .sh file.  gksudo is more friendly in that context. 
member
Activity: 75
Merit: 10
3.  The script crashed on the line
Code:
execAndWait('gksudo tar -zxf %s -C /' % installer)
where gksudo complained that there is no -z option.  This makes little sense, perhaps it was really tar that was complaining??

Why is gksudo being used to run a non-graphical application?

Edit: And you probably want quote characters around tar -zxf %s -C /, so that the -z option belongs to tar instead of gksudo.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
Well that's embarrassing.  I did fix those somewhere, but apparently the changes never made it back into the master branch.  I thought I did it for 0.92.  I guess not.

By the way, interesting lesson for you, I didn't even learn about it until sometime last year:  the for-else loop in python.  Basically, it runs the for loop, and if there is no "break", it goes to "else".  Typically used for searching for things, where you break when you find it, or else you have a backup plan.  Once I learned about it, I have found tons of places to use it.  It saves a few lines of code and easier to read (as long as the person reading it knows what the for-else loop is!)

As such, the "real" fix for that for-else loop is to add a "break" inside:

Quote
for fname in os.listdir('.'):
   if fname.startswith('armory'):
      installer = fname
      break
else:
   print 'No installer found!'
   exit(1)

I will add that fix (along with fixing the regular Ubuntu offline bundles), for 0.92.3 ... which is actually the privacy fix but with an extra important bug fix.  If you want a 0.03 bug bounty for finding this, you're welcome to it! 
hero member
Activity: 547
Merit: 500
Decor in numeris
Hi,

Got the newest Raspbian for my Pi, and tried to install the 0.91.2_testing offline bundle.   I finally managed, but along the way I ran into no less than four errors:

1.  The install script does not work, it claims that the installer is not found.  The problem is these lines:

Code:
installer = None
for fname in os.listdir('.'):
   if fname.startswith('armory'):
      installer = fname
else:
   print 'No installer found!'
   exit(1)

Replacing "else" with "if installer is None" fixes this problem.

2.  The file libmysqlclient18_5.5.33+dfsg-0+wheezy1_armhf.deb is empty!  I had to download it from the Raspberry repository (where I found a slightly newer version, and needed the corresponding myqsl-common package

3.  The script crashed on the line
Code:
execAndWait('gksudo tar -zxf %s -C /' % installer)
where gksudo complained that there is no -z option.  This makes little sense, perhaps it was really tar that was complaining??

4.  The tar file installed in the line above is not correct.  It installed everything in /armory_0.92.2_raspbian_armhf/usr instead of in /usr

I manage to install it by doing the steps of the script manually (using sudo instead of gksudo), transferring the missing .deb files from step 3, and moving the contents of /armory_0.92.2_raspbian_armhf/usr into place.

I then confirmed that Armory started as it should.  I will create an offline wallet tomorrow, it is past my bedtime Smiley

I should say that even with these errors, the offline bundle saved a lot of time for me!  Thank you, Alan and co.
Jump to: