Arm compilations give a "Illegal instruction" on a Raspberry Pi 2 #8924

issue jdevora opened this issue on October 15, 2016
  1. jdevora commented at 12:57 PM on October 15, 2016: none

    I have a Raspberry Pi 2 running Raspbian

    My understating is that I should be able to run the ARM 32 bits compilation on it.

    I follow those steps but at the end it will throw an Illegal Instruction error.

    $ wget https://bitcoin.org/bin/bitcoin-core-0.13.0/SHA256SUMS.asc
    $ wget https://bitcoin.org/bin/bitcoin-core-0.13.0/bitcoin-0.13.0-arm-linux-gnueabihf.tar.gz
    $ sha256sum bitcoin-0.13.0-arm-linux-gnueabihf.tar.gz|grep -f SHA256SUMS.asc
      7c657ec6f6a5dbb93b9394da510d5dff8dd461df8b80a9410f994bc53c876303  bitcoin-0.13.0-arm-linux-gnueabihf.tar.gz
    $ tar -zxf bitcoin-0.13.0-arm-linux-gnueabihf.tar.gz
    $ bitcoin-0.13.0/bin/bitcoind
      Illegal instruction
    
    $ lsb_release -a
     No LSB modules are available.
     Distributor ID: Raspbian
     Description:    Raspbian GNU/Linux 8.0 (jessie)
     Release:        8.0
     Codename:       jessie
    $ uname -a
     Linux raspberrypi 4.1.7+ [#817](/bitcoin-bitcoin/817/) PREEMPT Sat Sep 19 15:25:36 BST 2015 armv6l GNU/Linux
    

    Was it never intended to work on a Raspberry Pi 2 or is there something missing on my part or at the compilation options?

  2. mruddy commented at 2:23 PM on October 15, 2016: contributor

    Quick question, are you sure that you're using a Raspberry Pi 2 Model B and not a Raspberry Pi Model B+? https://www.element14.com/community/docs/DOC-78141/l/identifying-your-model-of-raspberry-pi

    Your uname output shows armv6l and not armv7l. Raspberry Pi 1 used ARMv6.

    What does this show you: egrep -i 'model|hardware' /proc/cpuinfo?

    EDIT: @jdevora Also, maybe it's possible that you are using a Pi 2 and running a Raspbian that is built to target ARMv6 and that is causing your problem. I'm sure that the bitcoind binary is targeting ARMv7-A:

    readelf -A bitcoin-0.13.0/bin/bitcoind | egrep -i 'cpu_name|cpu_arch' Tag_CPU_name: "7-A" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Application

  3. jdevora commented at 5:33 PM on October 16, 2016: none

    Sorry, my mistake, I inserted the SD card in my Pi B+ instead of the Pi 2.

  4. jdevora closed this on Oct 16, 2016

  5. laanwj commented at 1:58 PM on October 17, 2016: member

    Yes, the binary targets ARMv7. Should arguably have mentioned that in the release notes. It is also news to me that RPI1 was only ARMv6.

  6. mruddy commented at 11:59 AM on October 18, 2016: contributor

    @laanwj we could add a quick note to the 0.13.0 and/or 0.13.1 release notes. Something about the binaries being built for ARMv7-A and thus being able to be run on platforms backwards compatible to that architecture. I know we probably don't want to list all the products that might work, but giving the example of RasPi 2 & 3 vs RasPi 1 would probably be helpful to people.

  7. laanwj commented at 12:44 PM on October 18, 2016: member

    @mruddy Yes, that'd be a good idea

  8. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-21 18:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me