Bitcoin Forum
December 05, 2016, 04:56:31 PM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Bitcoin generation on ARM hardware  (Read 3050 times)
ih8censorship
Newbie
*
Offline Offline

Activity: 7


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.
1480956991
Hero Member
*
Offline Offline

Posts: 1480956991

View Profile Personal Message (Offline)

Ignore
1480956991
Reply with quote  #2

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

Activity: 574



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

15UFyv6kfWgq83Pp3yhXPr8rknv9m6581W
ih8censorship
Newbie
*
Offline Offline

Activity: 7


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: 574



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!

15UFyv6kfWgq83Pp3yhXPr8rknv9m6581W
ribuck
Donator
Legendary
*
Offline Offline

Activity: 826


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
Newbie
*
Offline Offline

Activity: 7


View Profile
February 27, 2011, 09:32:07 PM
 #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


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
Newbie
*
Offline Offline

Activity: 7


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


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

Bitcoin to prepaid phone credit - http://bitcointalk.org/index.php?topic=3620.0
(Italy preferred, but if you are from the rest of the world, PM me and we might find a deal!)
chromicant
Jr. Member
*
Offline Offline

Activity: 40


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
Newbie
*
Offline Offline

Activity: 7


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
Member
**
Offline Offline

Activity: 118


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:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!