在尝试使用" 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; 在互联网上搜索它,很快就会遇到一系列解释问题的线索,这些线索解释说问题出在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构建有关,还是与我构建的内核映像有关(参见我之前的线程)?
关于如何解决这个问题,有什么建议吗?有没有我还没有发现的适用于yocto的gumstix层中更新版本的u-boot,或者你有任何其他的技巧可以让我的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
[…]发布于 2019-11-30 02:39:11
如果你正在为Overo寻找一个新的(开发中的,而不是稳定的)图像,我会推荐Warrior分支
https://github.com/gumstix/yocto-manifest/tree/warrior
它已经被测试并确认在Overo上工作。Thud分支被添加到我们的存储库,以添加对Raspberry Pi CM3+的支持。对于较旧(稳定)的图像,我推荐Morty
https://github.com/gumstix/yocto-manifest/tree/morty
谢谢。
发布于 2020-01-15 03:27:57
至少对我来说,对于同样的问题,我刚刚删除了
依赖于+= "dtc-native“
并且构建完成。
https://stackoverflow.com/questions/59093849
复制相似问题