1

Attempting to build a yocto image using the "thud" release, bitbake fails on building the version of u-boot that comes with the meta-gumstix thud branch, which is 2016.03 (which seems antique?).

The error I'm seeing is regarding conflicting types, e.g.

ERROR: u-boot-v2016.03+gitAUTOINC+df61a74e68-r0 do_compile: oe_runmake failed 
…
/home/kwisatz/yocto-new/build/tmp/work/overo-poky-linux-gnueabi/u-boot/v2016.03+gitAUTOINC+df61a74e68-r0/recipe-sysroot-native/usr/include/libfdt_env.h:71:30: error: conflicting types for 'fdt64_t'                                                                                                                        
 typedef uint64_t FDT_BITWISE fdt64_t;           

Searching the Internet for that, one quickly comes across a range of threads explaining that the problem is the libfdt-dev.h header that comes with the dtc package. Some recommend to blacklist or uninstall the dtc package, but from what I see, it's explicitly required by the u-boot recipe in the gumstix layer for yocto:

DEPENDS += "dtc-native"

See also https://patchwork.openembedded.org/patch/147816/ However, in the thread linked to above, we're talking versions 2018.01 and 2018.03, not 2016.03

The poky layer for thud brings u-boot 2018.07 which builds fine, but with that one, my overo (Airstorm-Y) won't boot anymore:

Booting from nand with DTS...
UBI: attaching mtd1 to ubi0
UBI: scanning is finished
UBI: attached mtd1 (name "mtd=4", size 1013 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 129024 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 512
UBI: VID header offset: 512 (aligned 512), data offset: 2048
UBI: good PEBs: 8108, bad PEBs: 0, corrupted PEBs: 0
UBI: user volume: 1, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1485359018
UBI: available PEBs: 0, total reserved PEBs: 8108, PEBs reserved for bad PEB handling: 160
** File not found /boot/omap3-overo-storm-tobi.dtb **
Loading file '/boot/zImage' to addr 0x82000000 with size 5097744 (0x004dc910)...
Done
Kernel image @ 0x82000000 [ 0x000000 - 0x4dc910 ]
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree

I'm not entirely sure if this boot problem is related to the u-boot build or to the kernel image that I've built (see my previous thread)?

Any tips on how I could solve this issue? Is there a more recent version of u-boot in a gumstix layer for yocto that I haven't discovered just yet, or do you have any other tips on how I could get a working yocto image for my overo?

P.S. Note that during the build, I'm also seeing these warning, but I don't think there's an actual problem here:

WARNING: u-boot-v2016.03+gitAUTOINC+df61a74e68-r0 do_patch:                                                                                                                                                                                                                                                                    
Some of the context lines in patches were ignored. This can lead to incorrectly applied patches.                                                                                                                                                                                                                               
The context lines in the patches can be updated with devtool:                                                                                                                                                                                                                                                                  

    devtool modify <recipe>                                                                                                                                                                                                              
    devtool finish --force-patch-refresh <recipe> <layer_path>                                                                                                                                  

Then the updated patches and the source tree (in devtool's workspace)                                                                                                                                     
should be reviewed to make sure the patches apply in the correct place                                                                                                                                                                                                                                                         
and don't introduce duplicate lines (which can, and does happen                                                                                                                                                                                                                                                                
when some of the context is ignored). Further information:                                                                                                                                                                                                                                                                     
http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148675.html                                                                                                                                                                                                                                               
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10450                                                                                                                                                                                                                                                                        
Details:                                                                                                                                                                                                                                                                                                                       
Applying patch 0006-duovero-Read-eeprom-over-i2c.patch                                                                                                                                                                                                        
patching file board/gumstix/duovero/duovero.c                                                                                                                                                                                                                                                                                  
patching file include/configs/duovero.h                                                                                                                                                                                                                                                                                        
Hunk #2 succeeded at 50 with fuzz 2 (offset -4 lines).                                                                                                                                                                                                                                                                         

Now at patch 0006-duovero-Read-eeprom-over-i2c.patch            
[…]
draison
  • 11
  • 1
  • 3

2 Answers2

0

If you're looking for a new (development, not stable) image for the Overo I would recommend the Warrior branch

https://github.com/gumstix/yocto-manifest/tree/warrior

It has been tested and confirmed working for the Overo. The Thud branch was added to our repo to add support for the Raspberry Pi CM3+. For an older (stable) image, I would recommend Morty

https://github.com/gumstix/yocto-manifest/tree/morty

Thanks.

acsmith
  • 16
  • Thanks. In the end, I managed to solve my immediate concern by using an older `fido` image, installing build tools using `smart` and building the package that I wanted to re-build directly on the overo. I also tried building a `warrior` image, but in the end, I ran out of disk-space for that one. – draison Dec 01 '19 at 21:33
0

At least for me, with the same issue, i just removed

DEPENDS += "dtc-native"

and build completed.

  • Build completion hasn't been the issue, but actually making the overo boot using the resulting image. I refrained from removing the dependency on `dtc-native` though since the gumstix layer explicitly added it to the `u-boot` recipe, and I thus assumed it's actually required ;) – draison Jan 15 '20 at 12:40
  • dtc may be installed native but also can be compiled with u-boot. I was adding a different u-boot recipe-set, so dtc built by u-boot worked. – Angelo Dureghello Jan 17 '20 at 19:25