目前,我正致力于使用morty分支为beaglebone black创建一个yocto图像。我遵循教程here,大部分成功。在某些时候,我遇到了以下错误:
网址提取失败:“http://www.lartmaker.nl/lartware/port/devmem2.c”。校验和不匹配! 文件:'/ home /user/bbb/downloads/devmem2.c'当有be12c0132a1ae118cbf5e79d98427c1d时,有md5校验和e23f236e94be4c429aa1ceac0f01544b [...]
我做了一些研究,发现这个问题是已知的,并且用this commit修复到meta-openembedded repo--它是因为devmem2代码的变化而发生的。
随着对主分支的修复提交,我决定覆盖我devmem2.bb
的本地morty副本。
这样做很好,我能够使用bitbake qt5-image
从命令行下载和编译我的图像。
这样做之后,我决定给Toaster一个机会。我将所需的层添加到新的Toaster项目并运行qt5-image
的构建(它是元bbb层的一部分)。但是,我遇到了和以前一样的错误,因为Toaster下载了自己的存储库副本。我试着像以前一样做,覆盖devmem2.bb
- 没有成功,因为Toaster从VCS中检出当前版本,因此还原我的更改。
现在,我想知道的是什么是正确的行动方式,或者我的选择是什么?
Openembedded advises在校验和错误的情况下写入邮件列表。但我对此犹豫不决,因为它不再是一个开放的问题而且我不知道我在做什么。但手动覆盖食谱是危险的,感觉完全错误;甚至在工作的时候。
显然,我仍然是yocto的新手,甚至是Toaster的新手,所以这个问题可能是初学者错误(非常确定,实际上)。
答案 0 :(得分:1)
分支Krogoth中的配方devmem2.bb
已损坏,因为镜像http://www.lartmaker.nl/lartware/port/devmem2.c不可用。
解决此问题最简洁的方法是创建另一个图层。
将meta-openembedded/meta-oe/recipes-support/devmem2
复制到meta-newlayer/recipes-support/devmem2
。
在meta-newlayer/recipes-support/devmem2/devmem2.bb
中重命名devmem2.bbapend
并将其中的所有内容替换为:
SUMMARY = "Simple program to read/write from/to any location in memory"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://devmem2.c;endline=28;md5=dd68f2b0a5184b3db3dc25c99e0bd0cd"
PR = "r7"
SRC_URI = "https://raw.githubusercontent.com/radii/devmem2/master/devmem2.c \
file://devmem2-fixups-2.patch;apply=yes;striplevel=0"
S = "${WORKDIR}"
CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
do_compile() {
${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
}
do_install() {
install -d ${D}${bindir}
install devmem2 ${D}${bindir}
}
SRC_URI[md5sum] = "be12c0132a1ae118cbf5e79d98427c1d"
SRC_URI[sha256sum] = "ec382c90af3ef2f49695ff14a4d6521e58ac482c4e29d6c9ebca8768f699c191"
这解决了我的问题。