Bug 9326

Summary: Odroid-C2 build results in non-bootable image
Product: buildroot Reporter: gahabana
Component: Outdated packageAssignee: unassigned
Status: RESOLVED FIXED    
Severity: critical CC: buildroot, gahabana
Priority: P4    
Version: 2016.08   
Target Milestone: ---   
Hardware: Other   
OS: Linux   
Host: Target:
Build:

Description gahabana 2016-10-02 01:05:30 UTC
Building default image for Odroid-C2":

make odroidc2_defconfig
make menuconfig
make

burn resulting 'sdcard.img' to SD-card and image can not be booted. Light on the board/Odroid stays blue and does not start to blink (kernel heart-beat never starts).
Comment 1 Erico Nunes 2016-10-04 22:17:04 UTC
I have tested odroidc2_defconfig with today's master (426a84c2fe) on my odroid-c2 and I can confirm that it isn't working out of the box with make odroidc2_defconfig && make.

By monitoring the serial I see that it loads u-boot fine but hangs when it boots the kernel, after the messages:
"Starting kernel ...

uboot time: 4167629 us"


I have debugged it a bit further though and found that:

- It works if you change the toolchain to a gcc 4.9.x version. Therefore, it's likely that this has stopped worked recently when we changed the default gcc version to 5.x for buildroot toolchains in commit e6ee58de3e.

- Bumping the odroid-c2 kernel to the HEAD of the hardkernel odroidc2-3.14.y branch and u-boot to a newer commit in the hardkernel odroidc2-v2015.01 branch (the HEAD doesn't build for me with gcc 5.x) doesn't seem to have the problem fixed.

So, it looks like the hardkernel branches have trouble with gcc 5.x and one way of "fixing" it would be to make odroidc2_defconfig default to gcc 4.9.x, what do you think?
As this is a vendor downstream kernel and u-boot, it's probably not worth to spend more time debugging it, we could do that and open an issue with them or just wait until upstream supports this board, which should happen eventually.
Comment 2 gahabana 2016-10-05 09:39:34 UTC
hi @Erico, 
great points - am travelling until weekend, but can confirm (remotely) that by changing the Toolchain to gcc-4.9, it builds just fine. I assume it will work.
Is there a possibility within buildroot to tell it that for Kernel and U-Boot it should use GCC < 5.0 and the rest of the packages can/could be built on 5.x (so that we keep older toolchain for Odroid-C2 kernel/uboot) and newer for packages ? Should be more compatible/tested down the road, but i am not sure how that could be added to package files ?

thank you !