Bitcoin Forum

Bitcoin => Armory => Topic started by: Saltius on June 09, 2019, 10:18:28 AM



Title: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: Saltius on June 09, 2019, 10:18:28 AM
I use an old cellphone(armv7 cpu) for signing Armory tx. First I installed DeployLinux on it. Then I install Ubuntu 14.04 and serveral dependencies. I did not do crosscompile on desktop devices. I simply compiled the sources on the phone. The process looks successful and I created a wallet(A to refer for convinience). Since last year I have done several consolidations using this device for signing and it worked fine.
     Yesterday I created another wallet. I want to split my funds within two wallets. But when I signed that tx of sending funds from A to new wallet address, the program just crashed, and the terminal background(I didn't install after compiling so everytime I enter Armory through terminal) just show bus error and this is not even recorded in log.
      I tried several times changing addresses and amounts and I found if I sent my coins from wallet A addresses to others not belonging to wallet A, the signing process crashed with bus error. However if I sent from wallet A address to other wallet A addresses, the signing process turned out to be successful. That's exactly how I could be able to do consolidations last year.
      So any ideas about this odd issue? I tried both 0.96.4 and 0.96.5 and no luck.

BTW: Any tutorials about compiling Armory on arm linux devices? I found some but quite old are they.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: goatpig on June 09, 2019, 11:59:16 PM
Quote
So any ideas about this odd issue?

I'm going to assume you are using the phone as an offline signer. What versions of Armory is running on the online machine and the offline signer? You shouldn't mix and match versions in general.

Quote
BTW: Any tutorials about compiling Armory on arm linux devices? I found some but quite old are they.

I only cross compile. I'm guessing as long as you can get your hands on the arm v7 compiler suite (or make your own), you should be able to cross compile as well. I've tried to build right off of raspbian the one time and failed miserably. Cross compiling works too well to try for that again.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: Saltius on June 10, 2019, 11:58:48 AM
I'm going to assume you are using the phone as an offline signer. What versions of Armory is running on the online machine and the offline signer? You shouldn't mix and match versions in general.

The online machine is Armory0.96.5 + Core 18.0 on win7 64bit.

Quote
I only cross compile. I'm guessing as long as you can get your hands on the arm v7 compiler suite (or make your own), you should be able to cross compile as well. I've tried to build right off of raspbian the one time and failed miserably. Cross compiling works too well to try for that again.

I don't have a PC with a linux OS currently.I may try it later.

Besides, the kernel of firmware(may be latest for my phone though) on my old phone is so old that LinuxDeploy can only install unbuntu 14.04(later version not supported)on it.
I hope I may find another newer phone with later version Ubuntu to test later.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: goatpig on June 10, 2019, 11:13:39 PM
Unless you can get the code to spit some sort of log info, I can't fix this without looking at the issue in a debugger. I guess one idea would be to try and reproduce the issue in an Android VM, if that's even a thing.

Another idea would be to try to get an x86_64 docker container to run on your phone and run the regular linux release binaries.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: Saltius on June 13, 2019, 12:43:04 PM
Well,latest update.

I tested on a newer cellphone(actually an old Galaxy S4) and another RK3288 board.
I used LinuxDeploy to install Ubuntu 18.04 on the former one. The latter one came with a Ubuntu 16.04 and I updated it to 18.04.

I complied armory 0.96.5 on that RK3288 board successfully. Then I compressed and copied the whole directory to the phone on which I installed dependencies as well.

On the phone, I started armory only seeing disoriented texts and could not even find the button to agree EULA. I edited the ArmorySettings.txt in the .amrory folder to bypass EULA agreement but the main UI seemed totally broken with all buttons missing.

The arm board on the other hand, run armory flawlessly, no bus error at all when signing those tx I mentioned previously.
The only problem is that the board is used as my full node, lightning node and electrum personal server.

So I guess I need to test more on the phone.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: goatpig on June 13, 2019, 09:22:06 PM
This may have to do with CryptoPP optimizations then. Try updating the lib (it's just copied in the Armory repo).


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: Saltius on June 15, 2019, 01:20:54 PM
This may have to do with CryptoPP optimizations then. Try updating the lib (it's just copied in the Armory repo).

Tried updating libcrypto++9_5.6.1-6_armhf.deb(this seems to be the latest version for 14.04) on my original offline cellphone and no luck, still bus error.

While in the meantime I finally got rid of text and button disorientation on my Galaxy S4.
There seems to be some scale problems between armory and VNC output.
So I changed the LinuxDeploy settings by using X11 with XServerXSDL. And I set font scale to 0.4 in XSDL.
Then everything turned out to be fine as text and buttons showing up correctly.  And those transactions mentioned above could be signed properly.

If I have more time, I may change the system to 14.04 on my newer phone and test tx signing.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: goatpig on June 16, 2019, 01:32:35 PM
Quote
Tried updating libcrypto++9_5.6.1-6_armhf.deb

Updating the lib on your system won't do anything. As I mentioned previously, the CryptoPP source is copied as is in the armory repo, and statically linked to boot. It literally ignores what your system is carrying. You would need to pull the source from CryptoPP's repo, copy it over that source in the Armory repo (/cppForSwig/cryptopp) and build that to effectively update the lib.

This may not be relevant however, since your discovery suggests the issue has more to do with Qt4's interaction with the X server (or PyQt4 for that matter).


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: Saltius on June 16, 2019, 04:07:36 PM
Quote
Tried updating libcrypto++9_5.6.1-6_armhf.deb

Updating the lib on your system won't do anything. As I mentioned previously, the CryptoPP source is copied as is in the armory repo, and statically linked to boot. It literally ignores what your system is carrying. You would need to pull the source from CryptoPP's repo, copy it over that source in the Armory repo (/cppForSwig/cryptopp) and build that to effectively update the lib.

This may not be relevant however, since your discovery suggests the issue has more to do with Qt4's interaction with the X server (or PyQt4 for that matter).


Ok, I misunderstood thinking that being related to bus error.

I have spared some time installing ubuntu 14.04 on my Galaxy S4 through LinuxDeploy replacing 18.04 on which I could handle tx signing flawlessly.
Then came with all the needed dependencies and armory 0.96.5 compiled exactly by my original phone(Forgot to mention, it is a Samsung I717 aka. Galaxy Note AT&T variant).
Bus error show up again when signing certain transactions.

So at least I can conclude that the bus error issue has something to do with ubuntu14.04(armhf) installed by LinuxDeploy.

Anyway,it's quite a relief that I could still use a cellphone as offline signing device for armory.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: droark on June 16, 2019, 08:29:02 PM
As I mentioned previously, the CryptoPP source is copied as is in the armory repo, and statically linked to boot.

Not quite. The source was modified to add RFC 6979 support (and maybe some other, minor changes). Support is in the mainline now but in a modified form. Either way, you can't roll Crypto++ on your own; you have to use what's in the Armory repo.


Title: Re: Bus error when signing tx of sending coins to other Wallet.(Arm device)
Post by: goatpig on June 16, 2019, 10:24:16 PM
Oh right, forgot about that mod.