YOCTO: "error: cannot run ssh: No such file or directory"

YOCTO: "error: cannot run ssh: No such file or directory"

我正在用 yocto 覆盆子制作食谱。我想从 git 的服务器获取一些文件。这是我的食谱:

DESCRIPTION = "test"
SECTION = "abc"
LICENSE = "CLOSED"
PR = "r0"

SRC_URI = 
"git://gerrit.g1.abc.corp:29418/cardlog;protocol=ssh;rev=master"
"
PACKAGE_ARCH = "${MACHINE_ARCH}"
S = "${WORKDIR}/git"
inherit pkgconfig cmake

do_install() {
install -d ${D}${base_bindir}
install -m 0755 cardlog ${D}${base_bindir}
}

我在 运行 bitbake 时收到此错误消息:

ERROR: abc-cardlog-1.0-r0 do_fetch: 
Fetcher failure: 
Fetch command export DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-j365B7zbUr,guid=20e178f2b82d0bb8e57068dc59e83e63"; 
export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export no_proxy="localhost,127.0.0.0/8,::1"; 
export NO_PROXY="localhost,127.0.0.0/8,::1"; 
export PATH="/home/abc-int/Desktop/yocto_r/build-rpi/tmp/sysroots-uninative/x86_64-linux/usr/bin:
/home/abc-int/Desktop/yocto_r/poky/scripts:
/home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi:
/home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/recipe-sysroot/usr/bin/crossscripts:
/home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/recipe-sysroot-native/usr/sbin:
/home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/recipe-sysroot-native/usr/bin:
/home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/recipe-sysroot-native/sbin:
/home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/recipe-sysroot-native/bin:
/home/abc-int/Desktop/yocto_r/poky/bitbake/bin:/home/abc-int/Desktop/yocto_r/build-rpi/tmp/hosttools"; 
export HOME="/home/abc-int"; git -c core.fsyncobjectfiles=0 ls-remote ssh://gerrit.g1.abc.corp:29418/cardlog  failed with exit code 128, output:

error: cannot run ssh: No such file or directory
fatal: unable to fork

ERROR: abc-cardlog-1.0-r0 do_fetch: Function failed: base_do_fetch
ERROR: Logfile of failure stored in: /home/abc-int/Desktop/yocto_r/build-rpi/tmp/work/raspberrypi-poky-linux-gnueabi/abc-cardlog/1.0-r0/temp/log.do_fetch.16941
ERROR: Task (/home/abc-int/Desktop/yocto_r/build-rpi/../poky/meta-abc/recipes-abc-cardlog/abc-cardlog/abc-cardlog.bb:do_fetch) failed with exit code '1'

我已经 运行 在另一个 yocto 项目中成功使用了这个食谱。我没问题,我的文件是从 git 下载成功的。

我已经将我的工作转移到了 rasbberrypi 开发板上。所以我创建了一个带有覆盆子层的新 yocto 项目。我已经添加了自己的图层。我试着用这个食谱复制一些文件,一切正常。

有什么建议吗?

我假设您使用的是 rocko。可能解决您问题的方法是将 rocko 分支的最新上游版本合并到您的 poky 目录中,例如通过执行 git pull.

我今天遇到了同样的问题,bitbake 找不到 ssh 的原因是自从 rocko 以来,OpenEmbedded 开发人员决定通过将 PATH 替换为包含指向 "approved" 的符号链接的目录来清理构建环境本机二进制文件。此已批准二进制文件列表由 meta/conf/bitbake.conf 中定义的 HOSTTOOLS 变量确定。有人不小心导致 ssh 从该列表中删除,该列表已被修复。