Testing #460

Review BananaPi as replacement for RaspberryPi

Added by Hammel over 5 years ago. Updated about 5 years ago.

Status:In ProgressStart date:24 Jul 2015
Priority:NormalDue date:
Assignee:Hammel% Done:


Category:09 - Testing
Target version:2.0 - Harkonnen
Severity:03 - Medium


The issue with oxmplayer not playing through ALSA is enough to have me review alternatives. There are a few to look at (and there are others beyond these). The two that look like the best options are the BananaPi and the OdroidC1. The former is mostly plug-compatible and could probably be used with just an updated toolchain. The latter is a different board but has more horsepower (quad-core).

Some notes that will be helpful.
  • Raspberry Pi 2 - a quad-core version that may just work with my images, based on my research on toolchains for it.
    1. Main diff: BCM2835 (single core ARMv6) to BCM2836 (quad core ARMv7)
      • See https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#ARM-Options
      • See http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491g/CIHGEBDH.html
         (armv6zk) Architecture level
         (arm1176jzf-s) Emit assembly for CPU   
         (arm1176jzf-s) Tune for CPU 
         (vfp) Use specific FPU

         (armv7-a) Architecture level (re: march)   
         (generic-armv7-a) Emit assembly for CPU (re: mcpu, which is the same as mtune for arm)
         (generic-armv7-a) Tune for CPU (re: mtune)
         (vfpv4) Use specific FPU

        It may be possible to use other settings if using the Linaro gcc releases. These should be applicable to use standard GNU GCC releases. The kernel config (for 3.14) doesn't offer any options that address this specific change so they can stay as they are.
  • The BananaPi toolchain config
    • And the blog that pointed me there
  • There are no easily found docs on setting up the toolchain build for the Odroid.

Related issues

Related to PiBox - Action Item #511: Port PiBox to Raspberry Pi 2 Closed 19 Mar 2016


#1 Updated by Hammel over 5 years ago

  • Description updated (diff)

#2 Updated by Hammel over 5 years ago

  • Description updated (diff)

#3 Updated by Hammel over 5 years ago

  • Description updated (diff)

#4 Updated by Hammel over 5 years ago

  • Description updated (diff)
  • Status changed from New to In Progress
  • % Done changed from 0 to 10

Testing Crosstool-NG build with updated Raspberry Pi 2 configs on feynman.

#5 Updated by Hammel over 5 years ago

GCC 4.7.3 errors with:

[ALL ] Unknown CPU used in --with-cpu=cortex-7

There are two linaro versions I can try with Crosstoo-NG 1.19:
  • linaro-4.7-2013.06-1
  • linaro-4.8-2013.06-1

There are also two new Crosstool-NG releases: 1.20 and 1.21 (now available via git from GitHub).

I'll try the 4.7 version first, then 4.8 before rev'ing the Crosstool-NG release itself.

That was a typo. It should have been cortex-a7, not cortex-7. Fixed and retrying without switching GCC versions.

#6 Updated by Hammel over 5 years ago

  • Description updated (diff)

#7 Updated by Hammel over 5 years ago

cpu/tune values of cortex-a7 don't work with the default 4.7.3 GCC. Now trying them as generic-armv7-a instead.

#8 Updated by Hammel over 5 years ago

That worked. The cross tool chain builds successfully. It's not clear if it works, but this is enough to have me order a Pi 2 for testing.

I'll start a rebuild of everything else now using that toolchain. This is all being done on feynman (CentOS 6.5) just to verify the build works.

#9 Updated by Hammel over 5 years ago

  • Description updated (diff)

#10 Updated by Hammel over 5 years ago

  • % Done changed from 10 to 20

Ordered a RPi 2 Model B from Amazon last night. Should be here Wednesday. I need to mark each board I have for easy identification of which model it is.

Build of all packaging of dev platform is complete and ready for testing.

#11 Updated by Hammel about 5 years ago

  • % Done changed from 20 to 30

Firmware has changed a little for the RPI 2. You now need to include something else beyond just bootcode.bin and start.elf. It may be the new dtb files or one of the other .elf or .dat files.

I tried adding just the fixup.dat but that wasn't enough. So I copied all the firmware to the boot partition and it booted. It isn't clear which piece is required but one way to find out is to remove each bit one at a time and seen when it stops booting.

#12 Updated by Hammel about 5 years ago

The next step is to build all the opkgs and install them, then try mplayer. However, since I've already pushed changes to pnc (re: bui-network-config updated) and piboxd to use libpibox I will need to rebuild the rootfs for the Pi2 first.

I will need to add a switch to the build to grab the extra firmware stuff when building for Pi2. Something like HW=pi2.

Also available in: Atom PDF