【发布时间】: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