Author

Topic: Armory 0.96.5 won't start in Linux Mint 19.2 Cinnamon Tina (Read 208 times)

legendary
Activity: 3318
Merit: 4606
diamond-handed zealot
0.96.5 noasm (GCC4.9)  FTW!

this on an X58/lga1366 rig running MXlinux, an ubuntu variant. GCC 7.2 failed with the same "no launch" behavior described in the OP.

I don't consider these machines particularly ancient, so yeah, thank you goatpig for this version.
HCP
legendary
Activity: 2086
Merit: 4361
It has 4GB of RAM installed but for some reason Mint is telling me 3.2GB is what I have for RAM.
Are you running the 32bit or 64bit version of the OS? That sounds like the old issue with 4GB of RAM and 32bit operating systems...

legendary
Activity: 3738
Merit: 1360
Armory Developer
I'll keep pushing builds for older hardware, no reason to stop doing those.
member
Activity: 65
Merit: 30
Thank you Goatpig and HCP for very informative postings. I learned a lot by reading them. Also, it is great to learn that Linux Mint was not at fault for my Armory install not working. The problem is my old laptop. I'm using a Dell M90 laptop. It dates back to around 2007. The processor is an Intel Core 2 CPU. It has 4GB of RAM installed but for some reason Mint is telling me 3.2GB is what I have for RAM. It also has an NVIDIA Quadro FX 3500 and I recently  installed a 2TB SSD hard drive on it because my 500GB hard drive ran out of space. I hope this old laptop can keep my Armory ONLINE version running for the next  5 years.

Nevertheless, I want to thank Goatpig and his entire team for offering a "No ASM" version of Armory for those of us using old laptops. The "No ASM" version is a blessing because it means I do not have to spend a lot of money on buying new modern laptops. I can report my "No ASM" install of Armory is working nicely on my ONLINE Mint laptop. It has successfully showed me my transaction history and wallet info which is impressive.

I also have a second M90 Dell laptop. My next project is to install the OFFLINE version of Armory on this second laptop so it can become my OFFLINE laptop for Armory.

Lastly, I'm curious to know if the yet to be released Armory version 0.97 is going to have a "No ASM" version designed to run on old laptops? It will be great if the "No ASM" version is kept alive for this future release as well so that old laptops can remain in use.

Again, thank you to this entire community for the support and to Goatpig for keeping Armory moving forward.
legendary
Activity: 3738
Merit: 1360
Armory Developer
How does one correctly decide if a computer is compatible with gcc7.2 or gcc4.9? In my case, my Intel486 Laptop works great with gcc4.9. However, it does not work with gcc7.2.  In contrast, my Ubuntu desktop PC works great with gcc7.2. 

Based on your OS. gcc4.9 is built on a dedicated offline debian 8 laptop. This is to provide builds for people who use older systems as their signer mostly.

Quote
Also what does the acronym "NOASM" represent?

CPU manufacturers add extra silicon on top of the baseline Intel x86 and AMD64 for specific calculations. Stuff like AVX, baked in AES, the old MMX and so on. All that stuff is instruction sets that are not part of the baseline. If you allow your compiler to build against those, you get a performance boon, but older CPUs without the dedicated silicon can't run the software. If you turn off the compiler's access to these instructions, the code will run on anything that's x86/x64 compliant.

The "No ASM" tag signifies that these optimizations are turned off. This is due to how they get enabled the in the first place: GCC will read the C++ code and interpret it into assembly. Assembly code isn't very human readable. The lingo just isn't intuitive, and revolves around registers, which are specific addresses to certain CPU resources.

A simple example: in C/C++ and any other language designed for humans, you perform additions by writing them out as you would on paper. To add a to b and get the result in c you do "c = a + b". In Assembly, you'd have to load a in the first addition register, b in the second addition register, and read the result in the result register. This is why we use compilers, to avoid having to go through that mess.

The extended instruction sets  you see in modern CPUs allow you to perform some operations much faster than just using the plain old x86 stuff. One example is pulling 2 128bit integers and adding or multiplying them in as little as 3 cycles instead of breaking down the operation to multiple 32 or 64 bit operations, each costing a few cycles.

Now don't get the wrong idea, the compiler doesn't interpret your code to use extended instructions on a whim. This typically has to be enabled by humans, and more often than not you gotta get your hands dirty and implement in pure ASM to squeeze performance. In the case of Armory, the crypto library it uses has a bunch of these assembly sections to leverage extended instructions, most notably for AES. In this case, NOASM means "turn off all of these optimizations, just use old x86".

The goal is to allow people to use Armory on older hardware. It goes in line with using gcc4.9, to allow for older machines to be recycled into offline signers for the most part, since the performance cost of offline Armory is negligible even on 20 years old machines. The builds with recent GCC has a all optimizations enabled and is meant for recent machines using online Armory, which is resource intensive.
HCP
legendary
Activity: 2086
Merit: 4361
Can anyone in the community clarify for me the following:

How does one correctly decide if a computer is compatible with gcc7.2 or gcc4.9? In my case, my Intel486 Laptop works great with gcc4.9. However, it does not work with gcc7.2.  In contrast, my Ubuntu desktop PC works great with gcc7.2. 
Most likely because your 486 is incredibly old... and perhaps your Ubuntu desktop PC is a newer chip? Possibly pentium class or higher? Huh Without knowing the specifics of your pc, it's difficult to answer. In any case, I've not found a definitive list of cpu/gcc version compatibility.


Quote
Also what does the acronym "NOASM" represent? I understand GCC (GNU Compiler Collection) is a compiler system produced by the GNU Project supporting various programming languages. However, Google could not identify for me what is the meaning of "NOASM".
It isn't "NOASM"... it's "No ASM"... as in "no inline assembly language". Inline ASM offers some performance benefits and coding shortcuts, but comes with some caveats... like CPU incompatibilities etc.

I would think that using various "-m options" could impact on things as well: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html

If the person compiling the application has enabled various instruction set extensions that are not supported by your particular CPU.
member
Activity: 65
Merit: 30
Try the noasm .deb

Goatpig,
Thank you for your post. I removed the "armory_0.96.5_amd64_gcc7.2.deb" installation from my Linux Mint laptop setup and installed the "noasm" version you mentioned. The result is my Armory now launches correctly!!!  Thanks for the help because now I am able to stick with using Linux Mint on my laptop. In my opinion, Linux Mint is a much nicer Linux Distro compared to Ubuntu Bionic Beaver.

Can anyone in the community clarify for me the following:

How does one correctly decide if a computer is compatible with gcc7.2 or gcc4.9? In my case, my Intel486 Laptop works great with gcc4.9. However, it does not work with gcc7.2.  In contrast, my Ubuntu desktop PC works great with gcc7.2. 

Also what does the acronym "NOASM" represent? I understand GCC (GNU Compiler Collection) is a compiler system produced by the GNU Project supporting various programming languages. However, Google could not identify for me what is the meaning of "NOASM".

Thank you again to Goatpig and Carlton for the help.
legendary
Activity: 3738
Merit: 1360
Armory Developer
Try the noasm .deb
member
Activity: 65
Merit: 30
Carlton,
Thank you for your post.

Sorry I forgot to mention I already installed the needed Python dependency for my Mint install. The code below shows my version check on my laptop running Linux Mint.  In short, it is the same version of Python  I'm running on my Ubuntu setup:

Code:
pc1@pc:~$ /usr/bin/python --version
Python 2.7.15+
pc1@pc:~$

Nevertheless, I tried to find the ArmoryQT.py using the "locate" command in the terminal. I got no hits.

The text below is copied from my /usr/bin folder location in my Mint setup. It shows armory files installed:

Code:
-rwxr-xr-x  1 root root         133 Dec 23  2018  armory*
-rwxr-xr-x  1 root root     4139592 Dec 23  2018  ArmoryDB*

My Home .armory folder location in my Mint setup is empty. Including the "database" folder:

Code:
pc1@pc:~/.armory$ ll
total 12
drwxrwxr-x  3 onlinem90 onlinem90 4096 Nov  9 22:55 ./
drwxr-xr-x 24 onlinem90 onlinem90 4096 Nov 12  2019 ../
drwxrwxr-x  2 onlinem90 onlinem90 4096 Nov  9 22:55 databases/
pc1@pc:~/.armory$

My question to anybody in the community. In the Windows world you have an Executable (exe) file which launches the app. In the Linux world what is the EXE file for Armory?  I would  like to know so I can try launching Armory directly from the terminal. I tried typing "armory" in the terminal and this did not launch the app. The code below shows the result I got:

Code:
pc1@pc:~/.armory$ cd /
pc1@pc:/$ armory
/home/pc1
Illegal instruction (core dumped)
pc1@pc:/$

Any advice that will be greatly appreciated that can help me figure out why my Armory setup in Mint laptop setup does not launch but works perfectly on my desktop Ubuntu setup.  Thanks in advance.





legendary
Activity: 3430
Merit: 3080
/usr/bin/armory isn't working, presumably the shell in Mint or possibly the install locations are different (and maybe it doesn't come with python2?)

so, find Armory folder, find ArmoryQt.py, then do python2 ArmoryQt.py

this may or may not work, depending on what the problem is. But you will get an error that tells you what the problem is.
member
Activity: 65
Merit: 30
Fellow Forum Members,
I had success installing Armory 0.96.5 on my Ubuntu Bionic Beaver which applies to my desktop online PC. For my online laptop I decided to use Linux Mint 19.2 Cinnamon Tina because I like how the GUI is designed to look like Microsoft Windows. I followed the same Armory installation procedures I performed for my desktop PC.

Nevertheless, in my Linux Mint setup  I can't get my Armory to launch when I click on the Armory Icon. Nothing happens. I also tried the terminal.  I typed in "armory" and nothing happens.

The first time I installed Armory in Mint  I used the "dpkg -i" command in the Terminal. At the end it the message said "Armory Installed Successfully".  But it does not launch using either a terminal or GUI approach.

For the second try I uninstalled Armory using Synaptic and then re-installed it using a GUI install approach by double clicking on the Armory deb file. This launched a GUI installer and it installed Armory a second time. The problem still remains. Armory still does not launch.

I would be very grateful if anybody in the community can post any opinions of what the problem can possibly be. Additionally, is anybody in this community running Armory using Linux Mint 19.2? If yes can you please post how you got it to work. Any help will be greatly appreciated. Thanks in advance.

Jump to: