Bitcoin Forum
November 06, 2024, 02:18:16 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bus error when signing tx of sending coins to other Wallet.(Arm device)  (Read 264 times)
Saltius (OP)
Member
**
Offline Offline

Activity: 166
Merit: 16


View Profile
June 09, 2019, 10:18:28 AM
Last edit: June 09, 2019, 11:49:40 AM by Saltius
Merited by Lucius (1)
 #1

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.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
June 09, 2019, 11:59:16 PM
 #2

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.

Saltius (OP)
Member
**
Offline Offline

Activity: 166
Merit: 16


View Profile
June 10, 2019, 11:58:48 AM
 #3

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.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
June 10, 2019, 11:13:39 PM
 #4

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.

Saltius (OP)
Member
**
Offline Offline

Activity: 166
Merit: 16


View Profile
June 13, 2019, 12:43:04 PM
 #5

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.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
June 13, 2019, 09:22:06 PM
 #6

This may have to do with CryptoPP optimizations then. Try updating the lib (it's just copied in the Armory repo).

Saltius (OP)
Member
**
Offline Offline

Activity: 166
Merit: 16


View Profile
June 15, 2019, 01:20:54 PM
 #7

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.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
June 16, 2019, 01:32:35 PM
 #8

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).

Saltius (OP)
Member
**
Offline Offline

Activity: 166
Merit: 16


View Profile
June 16, 2019, 04:07:36 PM
 #9

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.
droark
Sr. Member
****
Offline Offline

Activity: 525
Merit: 282


View Profile WWW
June 16, 2019, 08:29:02 PM
 #10

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.
goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3752
Merit: 1364

Armory Developer


View Profile
June 16, 2019, 10:24:16 PM
 #11

Oh right, forgot about that mod.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!