Bitcoin Forum
April 26, 2024, 08:10:37 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Bitcoin generation on ARM hardware  (Read 3430 times)
ih8censorship (OP)
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
February 27, 2011, 09:11:50 PM
 #1

So I've got a SheevaPlug And I'm wanting to set it up for bitcoin generation. I downloaded the latest sourcecode, installed various dependencies, and i ran "make -f makefile.unix bitcoind" and after it compiled 8 .o files it left me with this error:

Quote
g++ -c -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -D__WXGTK__ -DNOPCH -DFOURWAYSSE2 -DUSE_SSL -I"/usr/local/include/wx-2.9" -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" -msse2 -O3 -march=amdfam10 -o obj/sha256.o sha256.cpp
cc1plus: error: unrecognized command line option "-msse2"
sha256.cpp:1: error: bad value (amdfam10) for -march= switch
make: *** [obj/sha256.o] Error 1

Anyone know how to fix this one? I'm not real familiar with compiling for ARM yet, though it seems its trying to compile for an AMD compatible processor which the sheevaplug doesn't have.
1714162237
Hero Member
*
Offline Offline

Posts: 1714162237

View Profile Personal Message (Offline)

Ignore
1714162237
Reply with quote  #2

1714162237
Report to moderator
1714162237
Hero Member
*
Offline Offline

Posts: 1714162237

View Profile Personal Message (Offline)

Ignore
1714162237
Reply with quote  #2

1714162237
Report to moderator
1714162237
Hero Member
*
Offline Offline

Posts: 1714162237

View Profile Personal Message (Offline)

Ignore
1714162237
Reply with quote  #2

1714162237
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714162237
Hero Member
*
Offline Offline

Posts: 1714162237

View Profile Personal Message (Offline)

Ignore
1714162237
Reply with quote  #2

1714162237
Report to moderator
1714162237
Hero Member
*
Offline Offline

Posts: 1714162237

View Profile Personal Message (Offline)

Ignore
1714162237
Reply with quote  #2

1714162237
Report to moderator
1714162237
Hero Member
*
Offline Offline

Posts: 1714162237

View Profile Personal Message (Offline)

Ignore
1714162237
Reply with quote  #2

1714162237
Report to moderator
error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
February 27, 2011, 09:15:36 PM
 #2

Um, take out the -msse2 and -mamdfam10 switches and replace them with something more appropriate? You aren't on an Intel chip there Smiley

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
ih8censorship (OP)
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
February 27, 2011, 09:20:18 PM
 #3

Any idea on where to look for what to replace them with? That's kindof what I was thinking too, but I figured i'd post here so the community was aware of the issue.
error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
February 27, 2011, 09:22:58 PM
 #4

Any idea on where to look for what to replace them with? That's kindof what I was thinking too, but I figured i'd post here so the community was aware of the issue.

I suspect that you don't compile much stuff? This sort of thing would be in the makefile.

Oh, you'll have to take out the -DFOURWAYSSE2 as well, since you can't run that without... SSE2!

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
ribuck
Donator
Hero Member
*
Offline Offline

Activity: 826
Merit: 1039


View Profile
February 27, 2011, 09:28:48 PM
 #5

Any idea on where to look for what to replace them with?

You could maybe ask doublec. He's the only person I know who has compiled bitcoind for an ARM device:
http://bitcointalk.org/index.php?topic=2125.0
ih8censorship (OP)
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
February 27, 2011, 09:32:07 PM
Last edit: February 27, 2011, 10:11:52 PM by ih8censorship
 #6

well I compile stuff, i just don't have much experience with ARM specifics. What's the thought? take out the intel stuff without replacing it with something arm specific then? Seems easy enough.

I'll look into that ribuck Smiley

**edit**

took out all the amd/intel stuff and replaced it with nothing to see if that will work. seems I need to actually compile some of boost.
Quote
g++ -c -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -D__WXGTK__ -DNOPCH -DUSE_SSL -I"/usr/local/include/wx-2.9" -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" -O3 -o obj/sha256.o sha256.cpp
g++ -O2 -Wno-invalid-offsetof -Wformat -g -D__WXDEBUG__ -D__WXGTK__ -DNOPCH -DUSE_SSL -I"/usr/local/include/wx-2.9" -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9" -o bitcoind obj/nogui/util.o obj/nogui/script.o obj/nogui/db.o obj/nogui/net.o obj/nogui/irc.o obj/nogui/main.o obj/nogui/rpc.o obj/nogui/init.o cryptopp/obj/sha.o cryptopp/obj/cpu.o obj/sha256.o -Wl,-Bstatic -l boost_system-mt -l boost_filesystem-mt -l boost_program_options-mt -l boost_thread-mt -l db_cxx -l ssl -l crypto -Wl,-Bdynamic -l gthread-2.0 -l z -l dl
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
/usr/bin/ld: cryptopp/obj/sha.o: Relocations in generic ELF (EM: 3)
cryptopp/obj/sha.o: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make: *** [bitcoind] Error 1
doublec
Legendary
*
Offline Offline

Activity: 1078
Merit: 1005


View Profile
February 27, 2011, 10:19:57 PM
 #7

This is the makefile I used to build on the N900:

Code:
INCLUDEPATHS= \
 -I"/usr/local/include/wx-2.9" \
 -I"/home/user/src/db-4.8.30/build_unix" \
 -I"/usr/local/lib/wx/include/gtk2-unicode-debug-static-2.9"

# for wxWidgets 2.9.1, add -l Xxf86vm
WXLIBS= \
 -Wl,-Bstatic \
   -l wx_gtk2ud-2.9 \
 -Wl,-Bdynamic \
   -l gtk-x11-2.0 \
   -l SM

# for boost 1.37, add -mt to the boost libraries
LIBS= \
 -Wl,-Bstatic \
   -l boost_system \
   -l boost_filesystem \
   -l boost_program_options \
   -l boost_thread \
   -L /home/user/src/db-4.8.30/build_unix \
   -l db_cxx \
   -l ssl \
   -l crypto \
 -Wl,-Bdynamic \
   -l gthread-2.0 \
   -l z \
   -l dl

DEFS=-D__WXGTK__ -DNOPCH
DEBUGFLAGS=-g -D__WXDEBUG__
CFLAGS=-O2 -Wno-invalid-offsetof -Wformat $(DEBUGFLAGS) $(DEFS) $(INCLUDEPATHS)
HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
    script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h

OBJS= \
    obj/util.o \
    obj/script.o \
    obj/db.o \
    obj/net.o \
    obj/irc.o \
    obj/main.o \
    obj/rpc.o \
    obj/init.o \
    cryptopp/obj/sha.o \
    cryptopp/obj/cpu.o


all: bitcoin


obj/%.o: %.cpp $(HEADERS)
        g++ -c $(CFLAGS) -DGUI -o $@ $<

cryptopp/obj/%.o: cryptopp/%.cpp
        g++ -c $(CFLAGS) -O3 -o $@ $<

obj/sha256.o: sha256.cpp
        g++ -c $(CFLAGS) -O3 -o $@ $<

bitcoin: $(OBJS) obj/ui.o obj/uibase.o obj/sha256.o
        g++ $(CFLAGS) -o $@ $^ $(WXLIBS) $(LIBS)


obj/nogui/%.o: %.cpp $(HEADERS)
        g++ -c $(CFLAGS) -o $@ $<

bitcoind: $(OBJS:obj/%=obj/nogui/%) obj/sha256.o
        g++ $(CFLAGS) -o $@ $^ $(LIBS)


clean:
        -rm -f obj/*.o
        -rm -f obj/nogui/*.o
        -rm -f cryptopp/obj/*.o
        -rm -f headers.h.gch

I had to build boost, db-48.30 and libevent from source as they weren't available in the N900 repositories.
ih8censorship (OP)
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
February 28, 2011, 04:43:04 AM
 #8

Well, I've managed to compile the needed boost libs and get bitcoind compiled as well, however it is throwing an exception:
Quote
bitcoin server starting


************************
EXCEPTION: 11DbException
DbEnv::open: Invalid argument
bitcoin in AppInit()

terminate called after throwing an instance of 'DbException'
  what():  DbEnv::open: Invalid argument
Any thoughts on this one? I think im using version 4.7 of the db lib if i remember correctly, maybe its a version difference issue? unless im just starting it wrong without the right arguments or something.
bitk
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
February 28, 2011, 12:18:46 PM
 #9

Can I give you a harsh response?
An arm for mining? You know you are not getting any single penny out of it, don't you? Even with pooled mining...
chromicant
Newbie
*
Offline Offline

Activity: 40
Merit: 0


View Profile
February 28, 2011, 12:53:44 PM
 #10

I haven't tried with the bitcoin client on my BB-xM, but it should work there in headless mode. Are you using the SheevaPlug distribution, since I haven't messed with that much at all.

As for performance, my OMAP3 Cortex-A8 is getting about 270khash/sec unoptimized underclocked @ 800MHz, and looking at fixing the NEON code I have in my fork of jgarzik's miner at some point which should make things better.

However, the SheevaPlug is a Kirkwood (arm5te), and my Pogoplug is pushing 200kbit/sec. Not fast, nor is there any NEON to try SIMD tricks with...but the power usage for such light miners will allow for a trickle if you're in a pool.
ih8censorship (OP)
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
March 01, 2011, 02:34:53 AM
 #11

My intent is more academic than practical. and the "look what I can do" factor. haha.

I am using the default sheevaplug distro of ubuntu.

What exactly is a pool? Is it just multiple machines mining for the same owners address?
Beremat
Full Member
***
Offline Offline

Activity: 263
Merit: 100


YGOLD is a Defi platform


View Profile
March 02, 2011, 03:29:17 AM
 #12

My intent is more academic than practical. and the "look what I can do" factor. haha.

I am using the default sheevaplug distro of ubuntu.

What exactly is a pool? Is it just multiple machines mining for the same owners address?
Yes, and when a machine finds a block the 50BTC is distributed among the machines that submitted work. Overall the payout's the same, but in a pool you get payment over time instead of the 50BTC you'd get every time you find a block.

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!