Review BananaPi as replacement for RaspberryPi
|Status:||In Progress||Start date:||24 Jul 2015|
|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.
- 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.
#5 Updated by Hammel almost 4 years ago
GCC 4.7.3 errors with:
There are two linaro versions I can try with Crosstoo-NG 1.19:
[ALL ] Unknown CPU used in --with-cpu=cortex-7
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.
#8 Updated by Hammel almost 4 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.
#11 Updated by Hammel almost 4 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 almost 4 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.