Trying to compile Reddcoin wallet on Odroid ARMv7

Hi Y’all,
It’s seems I’m the first trying to use an Odroid to run the wallet, but I really like challenges :slight_smile:

image

So, I’m following this doco: https://github.com/reddcoin-project/reddcoin/blob/master/doc/build-arm.md (which is based on a Pi)

I’ve installed all the dependencies, executed the autogen.sh and then, the ./configure command.

I needed to follow the Berkeley DB method, since I’m on Ubuntu 18.04, so ./configure returns this error:

configure: error: libdb_cxx headers missing

I was googling and found that there’s a requirement to have some dev packages. Tried adding them, and now ./configure ended with no error.

I guess this should be added to the documentation:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev

PS: I will continue trying to compile the wallet. Stay tuned for updates!

My next stepping rock was the make command. When I executed it, i received these errors:

image

After reading a while, it seems the -msse2 flag is meant to be used with Intel processors, so there’s nothing to do with the Odroid’s ARM.

What I do was to go to Makefile and src/Makefile and remove those flags where I could find them. (nano Makefile, Ctrl+W “msse2”, and then delete the flag)

However, after this, I’m still facing an issue:
image

It seems cpuid.h is not available… but from what I was reading, that file is used by g++ on i386 environments… any other have faced this issue?

Regarding the dependencies…

When compiling for v3.x it was notices that for some dependencies a specific version had to be used. This is from the Raspberry Pi code:

sudo apt-get update -y && sudo apt-get install -y libqt4-dev libprotobuf-dev libboost-thread1.62-dev libboost-program-options1.62-dev libboost-filesystem1.62-dev libboost-system1.62-dev

sudo apt-mark hold libqt4-dev libprotobuf-dev libboost-thread1.62-dev libboost-program-options1.62-dev libboost-filesystem1.62-dev libboost-system1.62-dev

And some specific packages installed:

wget https://github.com/cryptoBUZE/reddcoin/releases/download/rpi_raspbian_buster_v3.0.0/libssl1.0.0_1.0.1t-1%2Bdeb8u6_armhf.deb
wget https://github.com/cryptoBUZE/reddcoin/releases/download/rpi_raspbian_buster_v3.0.0/libssl-dev_1.0.1t-1%2Bdeb8u6_armhf.deb
wget https://github.com/cryptoBUZE/reddcoin/releases/download/rpi_raspbian_buster_v3.0.0/libprotobuf10_3.0.0-9_armhf.deb
sudo dpkg -i libssl1.0.0_1.0.1t-1+deb8u6_armhf.deb
sudo dpkg -i libssl-dev_1.0.1t-1+deb8u6_armhf.deb
sudo dpkg -i libprotobuf10_3.0.0-9_armhf.deb

 

You might want to try it again with these dependencies?

For Berkely DB, you could try the instructions on that from here: https://wiki.yavuzselim.nl/tech/tutorials/reddcoin-updated-staking-with-reddcoin-core-client-gui-wallet-on-a-raspberry-pi-model-3b/.

There is a part that describes “Download, unpack, configure, build and install Berkeley DB.”

Thanks for the reply.
I’ve tried adding those dependencies (and even adding libboost1.62-dev since it was necessary) but still the same issue about the header files from gcc:

I even went ahead and added those files manually to the /src folder, but I ended having more discrepancies, and issues.

Hm… It’s hard to help without having access to the device. :P.

Could you post the steps you’ve already taken? This makes it easier to understand where you are exactly in the compilation process (for everyone that reads it).

Could you also post the device you have? I would like to lookup the specs of it.

There you go: https://www.hardkernel.com/shop/odroid-u3/


Well… I’ve cloned the repo from here: https://github.com/reddcoin-project/reddcoin and then started completing the dependencies from here: hxxps://github.com/reddcoin-project/reddcoin/blob/master/doc/build-arm.md

I’ve completed all dependencies, and then executed the autogen and the configure commands as described on the doc.

When trying to make -j2 it initially throw me an error saying that there was an unrecognised option “-msse2”
Upon reading, that seems to be an intel-only instruction, and since I’m building for ARM, I’ve just deleted them from the ./Makefile and ./src/Makefile files.

After deleting these flags, I’ve tried make -j2 again, and failed one more time. This time it was requesting some header files that were not found. It started with cpuid.h and several others. I’ve downloaded and added them to the ./src folder.

After that, there are lots of errors.


From my POV, autogen.sh works fine, and so it does ./configure (with all the flags)

But for some reason, it seems the source is meant to be used in an intel processor.
However, the Raspberry Pi works, and there’s even a full image (based on debian) for the Pi.

I really believe it’s something related to the dependencies, but I’m now 100% sure.

Thanks in advance for all your help.

So, a processor with the ARMv7 architecture.
The newer Raspberry Pis (3B and up) have a processor with the ARMv8 architecture.

From what I’ve found, Raspbian was only available for 32-bit, thus built working for ARMv7.
Anyway, what I am saying with this is, the software that runs on let’s say a Raspberry Pi 3B should also run on your device.

 
 

Regarding the ‘msse2’ issues… I remember having this issue way back in 2018; I had solved it by commenting out the related parts in the code. See the changes on the top on this page. :P.

Can you try the following?

Run the ./configure with --enable-sse2=no added to it.

The tutorial I’ve linked to previously contains this:
sudo ./configure --disable-tests --enable-sse2=no

Could you run that, and after that sudo make (I’ve run it without the -j2 myself).

OK, That made the make commando to go a bit further, but I’m still facing some errors. At the beginning of the execution there were just warnings, but after a while, it started to throw errors everywhere:

I have found this: https://github.com/reddcoin-project/reddcoin/issues/103#issuecomment-457785193.

It’s about libssl, a newer version breaks stuff, apparently. (It’s in the list of the 4th post in this thread.)

 

Could you follow the instructions on that GitHub page?

 

By the way, I myself would start over again, and use the ReddPi code.
If the instructions on GitHub don’t work, would you mind starting over again?
I can post which commands I would execute, if you are open to try them out.