DavidEGrayson (OP)
Newbie
Offline
Activity: 2
Merit: 0
|
|
April 12, 2014, 10:35:31 PM |
|
Hello. I'm having trouble installing Armory 0.91 on my Raspberry Pi, which is running Raspbian. I would appreciate some help. Here is the error I get when I try to launch Armory: pi@raspberrypi ~ $ python /usr/lib/armory/ArmoryQt.py --offline Traceback (most recent call last): File "/usr/lib/armory/ArmoryQt.py", line 34, in <module> from armoryengine.ALL import * File "/usr/lib/armory/armoryengine/ALL.py", line 1, in <module> from armoryengine.ArmoryUtils import * File "/usr/lib/armory/armoryengine/ArmoryUtils.py", line 39, in <module> from CppBlockUtils import KdfRomix, CryptoAES File "/usr/lib/armory/CppBlockUtils.py", line 26, in <module> _CppBlockUtils = swig_import_helper() File "/usr/lib/armory/CppBlockUtils.py", line 22, in swig_import_helper _mod = imp.load_module('_CppBlockUtils', fp, pathname, description) ImportError: /usr/lib/armory/_CppBlockUtils.so: cannot open shared object file: No such file or directory I am not sure why that error is happening because I definitely have /usr/lib/armory/_CppBlockUtils.so. Here is a full listing of the files in /usr/lib/armory: pi@raspberrypi ~ $ ls -l /usr/lib/armory total 18944 -rw-r--r-- 1 root root 13869 Apr 12 21:25 announcefetch.py -rw-r--r-- 1 root root 7066 Apr 12 21:25 armorycolors.py -rw-r--r-- 1 root root 8729 Apr 12 21:25 ArmoryDB.py -rw-r--r-- 1 root root 45917 Apr 12 21:25 armoryd.py drwxr-xr-x 2 root root 4096 Apr 12 21:25 armoryengine -rw-r--r-- 1 root root 49445 Apr 12 21:25 armorymodels.py -rw-r--r-- 1 root root 278165 Apr 12 21:25 ArmoryQt.py drwxr-xr-x 3 root root 4096 Apr 12 21:25 BitTornado -rw-r--r-- 1 root root 166190 Apr 12 21:25 CppBlockUtils.py -rwxr-xr-x 1 root root 12382720 Apr 12 21:25 _CppBlockUtils.so -rw-r--r-- 1 root root 160006 Apr 12 21:25 default_bootstrap.torrent drwxr-xr-x 2 root root 4096 Apr 12 21:25 extras -rw-r--r-- 1 root root 3302 Apr 12 21:25 guardian.py -rw-r--r-- 1 root root 19598 Apr 12 21:25 jasvet.py drwxr-xr-x 2 root root 4096 Apr 12 21:25 jsonrpc -rw-r--r-- 1 root root 34649 Apr 12 21:25 LICENSE.py -rw-r--r-- 1 root root 5344801 Apr 12 21:25 qrc_img_resources.py -rw-r--r-- 1 root root 26218 Apr 12 21:25 qrcodenative.py -rw-r--r-- 1 root root 10451 Apr 12 21:25 qt4reactor.py -rw-r--r-- 1 root root 33265 Apr 12 21:25 qtdefines.py -rw-r--r-- 1 root root 535094 Apr 12 21:25 qtdialogs.py -rw-r--r-- 1 root root 4723 Apr 12 21:25 README -rw-r--r-- 1 root root 35118 Apr 12 21:25 SDM.py -rw-r--r-- 1 root root 608 Apr 12 21:25 setup.py -rw-r--r-- 1 root root 60116 Apr 12 21:25 subprocess_win.py -rw-r--r-- 1 root root 1078 Apr 12 21:25 test_ArmoryDB.py drwxr-xr-x 2 root root 4096 Apr 12 21:25 ui -rw-r--r-- 1 root root 99066 Apr 12 21:25 unittestold.py -rw-r--r-- 1 root root 436 Apr 12 21:25 writeNSISCompilerArgs.py Here is the sha256sum of my _CppBlockUtils.so (I have not verified that this is what it should be): 388f0e509ab77e7e86c9de315eaceaae8bb46f43322ecd4ee6425ca62519f1e3 I tried running the following command but still got the same error: LD_LIBRARY_PATH=/usr/lib/armory python /usr/lib/armory/ArmoryQt.py --offline I suspect that the error message is misleading and that the actual problem is that one of the dependencies of _CppBlockUtils.so is missing. Here is what I have done so far to set up this system: I downloaded armory-0.91-beta_raspbian.tar.gz from bitcoinarmory.com. I used sha256sum and gpg to verify that I have the right thing. I installed Raspbian on my Raspberry Pi using NOOBS 1.3.4. I installed armory by copying the files inside the armory_rpi folder to /. I have installed all the prerequisites listed in Armory's README using apt-get except for qt4reactor; I have not yet figured out how to install that on the Raspberry Pi but I don't think it is relevant to this error. Is there anything else I need to do? I could not find step-by-step instructions for the Raspberry Pi so I might have missed something. --David
|
|
|
|
goatpig
Moderator
Legendary
Offline
Activity: 3752
Merit: 1364
Armory Developer
|
|
April 12, 2014, 11:09:15 PM |
|
I dont think we put out a 0.91 RPi package yet. The debian/ubuntu packages certainly won't run on a Pi, different CPU arch.
|
|
|
|
etotheipi
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 13, 2014, 12:01:59 AM |
|
I bet I botched the build process and compiled for i386 instead of armhf. We verified the build process worked, and then I made a script to make it easier, but I bet I did the script wrong.
I'm about to put out 0.91.1 with some tweaks to the wallet-fixing logic and the new Bitcoin Core download. I'll see if I can fix the RPi cross-compile script.
|
|
|
|
etotheipi
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 13, 2014, 01:22:25 AM |
|
I bet I botched the build process and compiled for i386 instead of armhf. We verified the build process worked, and then I made a script to make it easier, but I bet I did the script wrong.
I'm about to put out 0.91.1 with some tweaks to the wallet-fixing logic and the new Bitcoin Core download. I'll see if I can fix the RPi cross-compile script.
It looks like that's exactly what happened, I accidentally use the i386 g++ instead of the armhf g++. The old one: ~/temp/armory_rpi/usr/lib/armory $ file _CppBlockUtils.so _CppBlockUtils.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=0x1e56789efad37396cf2ae2f426ccbd6f0751e2e0, not stripped Now that I did it manually and verified the correct compiler was being used: ~/projects/bitcoin/compiledrpi/usr/lib/armory $ file _CppBlockUtils.so _CppBlockUtils.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped I'll update the RPi cross-compile script and have a new version along with everything else, soon.
|
|
|
|
etotheipi
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 13, 2014, 02:27:45 AM |
|
Sorry to keep poking this thread, but I do want to make sure this is right, and I don't have an RPi setup to test (I do have one, but I've never set it up): https://s3.amazonaws.com/bitcoinarmory-testing/armory_0.91-beta_raspbian.tar.gzPlease try it again, the signed hash is below (using my email key, 0xFB596985, which should be good enough at least for testing purposes) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
c1485f802b33f82998d65611b17861959dedbdb38524233ccce750b822514893 armory_0.91-beta_raspbian.tar.gz
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAEBCAAGBQJTSfWzAAoJEBHe6b77WWmFHYsP/A4B0wx/fJHc3MGjO9hY4M+u CUJmNrJg2CEOMReyREid8iqVL9F1PGnSdU1FBmO/LMaOqoYFPBFzvILTzVBg5j4T ynO8DKqaLuKhDyMRYgD1oH8dRaXl8QCXp5i+e19Vsvjv2wUXZ0UqHta+jw8zzunV CUbZwEZh2SHARzzYiyihpjOsjLtqPfIn/au87l6u1P+3/HthNO4mq3cAwe49exVU S2ajtmWSyLU9nKXZcwiXgil++CjUdibhyAh83WdJFDIfcAKKWbtzAQGDKt4oIYbS q6ecO7CeLHdO3WTtpEgVJPEWKt3bNf2GSEZ1wkTK+NMjEPSj23dxv20zO62h7+7C 71lAjeCE6MFoOcKb8KcPV+nyokNUp5m/4n+uH38DcHvpGmnLpwsBUv8enL36DDJk jDrH/pwFEyXCHkvTvJ0P7N0MC+BQu/ErdAzH7fOd8oqBb056BTGu7xZ9MZ2iXRNa RYmD4/brbZmT7rrXZgE+4QrqFTQr1nrGetFPw8n2Vg7+Q8hr99UiHl9YBRkXUfb9 81BslwLwgtlCRnFdrE72j/atTMUMXQ4jpbj+KLI5p0/7r5Ky2Mo2NbWWAlsksoIR Bh79Iz6/BAeteaC/zD6HPGHBfX1Nm76htnhILEHERPRqiqLkksKZ7GmQSoOK8zfm 6k30DkdDuwhD2NBhOBNA =iTzb -----END PGP SIGNATURE-----
|
|
|
|
User1397367406
Newbie
Offline
Activity: 51
Merit: 0
|
|
April 13, 2014, 06:38:32 AM |
|
Hi, i had the same problem before and ended up building 0.90 from the source on the Pi This new version seems to work, at least it starts without problem and shows the same wallets as before. (I just started/ended it on the Pi, nothing more) Hope this helps.
|
|
|
|
goatpig
Moderator
Legendary
Offline
Activity: 3752
Merit: 1364
Armory Developer
|
|
April 13, 2014, 03:58:45 PM |
|
Hi, i had the same problem before and ended up building 0.90 from the source on the Pi This new version seems to work, at least it starts without problem and shows the same wallets as before. (I just started/ended it on the Pi, nothing more) Hope this helps. You could try something like creating a paperback up of one of your wallets. If it gets that far (unlocking and all) it should be sound for signing.
|
|
|
|
User1397367406
Newbie
Offline
Activity: 51
Merit: 0
|
|
April 13, 2014, 06:32:11 PM |
|
I can create a new wallet, make a paper backup and verify it, get a new receiving address, create and import a watching only wallet, ..., seems to be working.
I gonna try it on a fresh install of Raspbian as for now i tested it on the system where i also compiled the other version, just to make sure of any other missing dependency.
|
|
|
|
etotheipi
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 13, 2014, 06:35:33 PM |
|
I can create a new wallet, make a paper backup and verify it, get a new receiving address, create and import a watching only wallet, ..., seems to be working.
I gonna try it on a fresh install of Raspbian as for now i tested it on the system where i also compiled the other version, just to make sure of any other missing dependency.
That tar.gz doesn't have the dependences with it. It assumes all the dependencies are already there. We've been swamped with some other things, so we weren't able to create a full bundle for it, but knew that the compile step was a real PITA, so this helps get over the biggest hurdle.
|
|
|
|
|
goatpig
Moderator
Legendary
Offline
Activity: 3752
Merit: 1364
Armory Developer
|
|
April 13, 2014, 07:36:06 PM |
|
You're probably building the master branch, which doesn't have the changes made to the cryptopp makefile.
|
|
|
|
User1397367406
Newbie
Offline
Activity: 51
Merit: 0
|
|
April 13, 2014, 08:29:52 PM |
|
You're probably building the master branch, which doesn't have the changes made to the cryptopp makefile. Thanks, that's it. I just used "git clone git://github.com/etotheipi/BitcoinArmory.git" to get the source, was to lazy to look for a Branch
|
|
|
|
User1397367406
Newbie
Offline
Activity: 51
Merit: 0
|
|
April 13, 2014, 08:41:00 PM |
|
Sorry to keep poking this thread, but I do want to make sure this is right, and I don't have an RPi setup to test (I do have one, but I've never set it up): https://s3.amazonaws.com/bitcoinarmory-testing/armory_0.91-beta_raspbian.tar.gzPlease try it again, the signed hash is below (using my email key, 0xFB596985, which should be good enough at least for testing purposes) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
c1485f802b33f82998d65611b17861959dedbdb38524233ccce750b822514893 armory_0.91-beta_raspbian.tar.gz
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAEBCAAGBQJTSfWzAAoJEBHe6b77WWmFHYsP/A4B0wx/fJHc3MGjO9hY4M+u CUJmNrJg2CEOMReyREid8iqVL9F1PGnSdU1FBmO/LMaOqoYFPBFzvILTzVBg5j4T ynO8DKqaLuKhDyMRYgD1oH8dRaXl8QCXp5i+e19Vsvjv2wUXZ0UqHta+jw8zzunV CUbZwEZh2SHARzzYiyihpjOsjLtqPfIn/au87l6u1P+3/HthNO4mq3cAwe49exVU S2ajtmWSyLU9nKXZcwiXgil++CjUdibhyAh83WdJFDIfcAKKWbtzAQGDKt4oIYbS q6ecO7CeLHdO3WTtpEgVJPEWKt3bNf2GSEZ1wkTK+NMjEPSj23dxv20zO62h7+7C 71lAjeCE6MFoOcKb8KcPV+nyokNUp5m/4n+uH38DcHvpGmnLpwsBUv8enL36DDJk jDrH/pwFEyXCHkvTvJ0P7N0MC+BQu/ErdAzH7fOd8oqBb056BTGu7xZ9MZ2iXRNa RYmD4/brbZmT7rrXZgE+4QrqFTQr1nrGetFPw8n2Vg7+Q8hr99UiHl9YBRkXUfb9 81BslwLwgtlCRnFdrE72j/atTMUMXQ4jpbj+KLI5p0/7r5Ky2Mo2NbWWAlsksoIR Bh79Iz6/BAeteaC/zD6HPGHBfX1Nm76htnhILEHERPRqiqLkksKZ7GmQSoOK8zfm 6k30DkdDuwhD2NBhOBNA =iTzb -----END PGP SIGNATURE----- Just tried it on a fresh install of rapbian: 2014-01-07-wheezy-raspbian.img sudo apt-get update sudo apt-get install python-psutil python-qt4 python-twisted tar xvzf armory_0.91-beta_raspbian_TEST.tar.gz cd armory_0.91-beta_rpibuild/usr/lib/armory python ArmoryQt.py It crashed on the first launch: pi@raspberrypi ~/TEST/armory_0.91-beta_rpibuild/usr/lib/armory $ python ArmoryQt.py ******************************************************************************** Loading Armory Engine: Armory Version: 0.91 PyBtcWallet Version: 1.35 Detected Operating system: Linux OS Variant : ('debian', '7.2', '') User home-directory : /home/pi Satoshi BTC directory : /home/pi/.bitcoin/ Armory home dir : /home/pi/.armory/ LevelDB directory : /home/pi/.armory/databases Armory settings file : /home/pi/.armory/ArmorySettings.txt Armory log file : /home/pi/.armory/armorylog.txt Log file doesn't exist [yet] (ERROR) announcefetch.py:261 - Specified URL was inaccessible (ERROR) announcefetch.py:262 - Tried: https://bitcoinarmory.com/announce.txt?osvar=debian&os=lin&ver=0.91&id=0bb58226 (ERROR) BDM.py:407 - setSatoshiDir: directory does not exist: /home/pi/.bitcoin/ (ERROR) announcefetch.py:162 - Loop was busy for more than one second (ERROR) announcefetch.py:162 - Loop was busy for more than one second (ERROR) announcefetch.py:162 - Loop was busy for more than one second (WARNING) ArmoryQt.py:1497 - No Armory links in the downloads list (WARNING) ArmoryQt.py:1556 - No Satoshi links in the downloads list (ERROR) Traceback (most recent call last): File "ArmoryQt.py", line 6427, in <module> form = ArmoryMainWindow() File "/home/pi/TEST/armory_0.91-beta_rpibuild/usr/lib/armory/armoryengine/Timer.py", line 99, in inner ret = func(*args, **kwargs) File "ArmoryQt.py", line 197, in __init__ self.startBitcoindIfNecessary() File "ArmoryQt.py", line 1980, in startBitcoindIfNecessary torrentFile = self.findTorrentFileForSDM(2) File "ArmoryQt.py", line 1935, in findTorrentFileForSDM self.explicitCheckAnnouncements(forceWaitTime) File "ArmoryQt.py", line 4526, in explicitCheckAnnouncements self.processAnnounceData() File "ArmoryQt.py", line 1468, in processAnnounceData func(fileText) File "ArmoryQt.py", line 1755, in processNotifications tabWidgetBar = self.mainDisplayTabs.tabBar() AttributeError: 'ArmoryMainWindow' object has no attribute 'mainDisplayTabs'
Traceback (most recent call last): File "ArmoryQt.py", line 6427, in <module> form = ArmoryMainWindow() File "/home/pi/TEST/armory_0.91-beta_rpibuild/usr/lib/armory/armoryengine/Timer.py", line 99, in inner ret = func(*args, **kwargs) File "ArmoryQt.py", line 197, in __init__ self.startBitcoindIfNecessary() File "ArmoryQt.py", line 1980, in startBitcoindIfNecessary torrentFile = self.findTorrentFileForSDM(2) File "ArmoryQt.py", line 1935, in findTorrentFileForSDM self.explicitCheckAnnouncements(forceWaitTime) File "ArmoryQt.py", line 4526, in explicitCheckAnnouncements self.processAnnounceData() File "ArmoryQt.py", line 1468, in processAnnounceData func(fileText) File "ArmoryQt.py", line 1755, in processNotifications tabWidgetBar = self.mainDisplayTabs.tabBar() AttributeError: 'ArmoryMainWindow' object has no attribute 'mainDisplayTabs' pi@raspberrypi ~/TEST/armory_0.91-beta_rpibuild/usr/lib/armory $ 2nd launch it starts ok. I could create a new wallet, make a paper backup and verify it. Exporting as an decrypted wallet works when not exporting to the .Armory dir. I did not try to import the decrypted wallet. Extracting in .Armory dir produces an crash: pi@raspberrypi ~/TEST/armory_0.91-beta_rpibuild/usr/lib/armory $ python ArmoryQt.py --offline ******************************************************************************** Loading Armory Engine: Armory Version: 0.91 PyBtcWallet Version: 1.35 Detected Operating system: Linux OS Variant : ('debian', '7.2', '') User home-directory : /home/pi Satoshi BTC directory : /home/pi/.bitcoin/ Armory home dir : /home/pi/.armory/ LevelDB directory : /home/pi/.armory/databases Armory settings file : /home/pi/.armory/ArmorySettings.txt Armory log file : /home/pi/.armory/armorylog.txt (WARNING) ArmoryQt.py:2323 - ***WARNING: Duplicate wallet detected, 9UcQFPao (WARNING) ArmoryQt.py:2333 - Second wallet is more useful than the first one... (WARNING) ArmoryQt.py:2334 - Wallet 1 (loaded): /home/pi/.armory/armory_9UcQFPao_.wallet (WARNING) ArmoryQt.py:2335 - Wallet 2 (skipped): /home/pi/.armory/armory_9UcQFPao_decrypt.wallet (WARNING) ArmoryQt.py:1962 - Not online, will not start bitcoind terminate called after throwing an instance of 'CryptoPP::InvalidKeyLength' what(): AES/CFB: 0 is not a valid key length Aborted pi@raspberrypi ~/TEST/armory_0.91-beta_rpibuild/usr/lib/armory $
|
|
|
|
etotheipi
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 14, 2014, 04:24:46 AM |
|
That first launch error is silly. We've seen it like 3 times out of 200 launches: it simply prevents Armory from opening that one time, then goes away the next time. I'd love to isolate it, but we can't reproduce it. Maybe one day.
As for the wallet error... it's somehow reading a zero-length key. Perhaps the there was wallet corruption after you made the decrypted backup? I'm not sure -- as you can see it's a little thrown off by the duplicate wallet in the .armory directory... it's not intended to store multiple, duplicate wallets there -- you're supposed to make the decrypted backup to a removable drive or something.
Of course it's supposed to work. Somehow the original wallet is corrupted...? Maybe you could backup those wallets (in case we need to debug it later) and simply try out all the other operations? It would be good to know if everything else works as expected, and then we can figure out what happened with those wallets later.
|
|
|
|
DavidEGrayson (OP)
Newbie
Offline
Activity: 2
Merit: 0
|
|
April 15, 2014, 02:54:05 AM |
|
Thanks for the quick response, etotheipi! That download worked perfectly for me. --David
|
|
|
|
|