尝试在我的目标Intel
平台中添加一个新的包,并使用Yocto
构建系统。新包是intel-cmt-cat
,其源代码取自这里。在查看了示例之后,我创建了我的简单食谱文件:
% cat intel-cmt-cat_4.1.0.bb
SUMMARY = "Short summary"
DESCRIPTION = "Short description."
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c63eb1250e8724441150d665efe12012"
SRC_URI = "git://github.com/intel/intel-cmt-cat.git;protocol=https"
SRCREV = "30fadea5cb82ff99f56e46172c7d20fdb24b2338"
S = "${WORKDIR}/git"
没有什么奇怪的事情,而且应该可以工作,但是它失败了(我删除了冗长的dnf命令,使其简短):
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: myimage-1.0-r0 do_rootfs: Could not invoke dnf.
dnf -v --rpmverbosity=info -y -c dnf.conf package1 package2 ... intel-cmt-cat
...
repo: using cache for: oe-repo
not found other for:
not found modules for:
not found deltainfo for:
not found updateinfo for:
oe-repo: using metadata from Thu 04 Mar 2021 07:12:38 PM UTC.
No module defaults found
No match for argument: intel-cmt-cat
Error: Unable to find a match
...
ERROR: Function failed: do_rootfs
在我看来,do_rootfs()
函数正在失败。我检查了build目录,可以看到源已经被获取和构建了。然而,后面的步骤失败了:正如您所看到的,它无法找到我的包(据我所知)。
我做错了什么?
发布于 2021-03-08 22:33:40
在阅读了yoctoproject.org的手册之后,我想出了以下方法:
SUMMARY = "Short summary"
DESCRIPTION = "Short description."
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c63eb1250e8724441150d665efe12012"
SRC_URI = "git://github.com/intel/intel-cmt-cat.git;protocol=https"
SRCREV = "30fadea5cb82ff99f56e46172c7d20fdb24b2338"
S = "${WORKDIR}/git"
TARGET_CC_ARCH += "${LDFLAGS}"
do_compile() {
oe_runmake PREFIX=/usr
}
do_install() {
oe_runmake PREFIX=${D}/usr NOLDCONFIG=y install
rm -rf ${D}/usr/man
rm -rf ${D}/usr/include
}
INSANE_SKIP_${PN} += "already-stripped"
FILES_${PN} += "${libdir}/libpqos* ${bindir}/pqos* ${bindir}/rdtset"}
英特尔-cat不使用cmake
,只是好的老make
和Makefile.
我只依赖于包的LDFLAGS
,并且不会在配方中传递任何内容,因此在构建过程中会导致错误:
精灵二进制没有GNU_HASH:..。
为了解决这个问题,添加TARGET_CC_ARCH
指令。
当我想传递不同的oe_runmake值(默认值是/usr/ PREFIX
)时,我显式地调用了NOLDCONFIG=y;接下来,在do_install中,我传递的是NOLDCONFIG=y,如果生成的二进制文件尚未被删除,它将不会调用ldconfig
,最后跳过检查(通过指令INSANE_SKIP)。这是因为Makefile已经调用了install -s ...
,而我不想修补Makefile等等。
https://stackoverflow.com/questions/66482099
复制相似问题