【问题标题】:Trouble building u-boot for gumstix overo on yocto "thud" release在 yocto “thud” 版本上为 gumstix overo 构建 u-boot 时遇到问题
【发布时间】:2020-03-24 09:43:58
【问题描述】:

尝试使用“thud”版本构建 yocto 映像,bitbake 无法构建 meta-gumstix thud 分支附带的 u-boot 版本,即 2016.03(看起来很古老?)。

我看到的错误是关于冲突的类型,例如

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;           

在 Internet 上搜索它,很快就发现了一系列线程,这些线程解释了问题出在 dtc 包中的 libfdt-dev.h 标头。有些人建议将dtc 包列入黑名单或卸载,但据我所知,yocto 的 gumstix 层中的 u-boot 配方明确要求它:

DEPENDS += "dtc-native"

另见https://patchwork.openembedded.org/patch/147816/ 但是,在上面链接的线程中,我们说的是 2018.01 和 2018.03 版本,而不是 2016.03

thud 的 poky 层带来了 u-boot 2018.07,它构建得很好,但是有了那个,我的 overo (Airstorm-Y) 将不再启动:

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

我不完全确定这个引导问题是与 u-boot 构建有关还是与我构建的内核映像有关(请参阅我之前的帖子)?

关于如何解决此问题的任何提示?是否有更新版本的 u-boot 在 yocto 的 gumstix 层中,我还没有发现,或者你有任何其他提示我可以为我的 overo 获得一个工作 yocto 图像吗?

附:请注意,在构建过程中,我也看到了这些警告,但我认为这里没有实际问题:

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            
[…]

【问题讨论】:

    标签: yocto bitbake u-boot gumstix


    【解决方案1】:

    如果您正在为 Overo 寻找新的(开发中,不稳定的)图像,我会推荐 Warrior 分支

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

    它已经过测试并确认适用于 Overo。 Thud 分支已添加到我们的存储库中,以添加对 Raspberry Pi CM3+ 的支持。对于较旧(稳定)的图像,我会推荐 Morty

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

    谢谢。

    【讨论】:

    • 谢谢。最后,我设法通过使用较旧的fido 映像、使用smart 安装构建工具并构建我想直接在overo 上重新构建的包来解决我的直接问题。我还尝试构建一个warrior 图像,但最后,我的磁盘空间不足。
    【解决方案2】:

    至少对我来说,同样的问题,我刚刚删除了

    依赖 += "dtc-native"

    构建完成。

    【讨论】:

    • 构建完成不是问题,但实际上是使用生成的图像进行过度启动。我没有删除对 dtc-native 的依赖,因为 gumstix 层明确地将其添加到 u-boot 配方中,因此我认为它实际上是必需的;)
    • dtc 可以本地安装,也可以使用 u-boot 编译。我正在添加一个不同的 u-boot 配方集,所以 u-boot 构建的 dtc 起作用了。
    猜你喜欢
    • 1970-01-01
    • 2014-08-22
    • 2013-12-23
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多