首页 > 解决方案 > 将 sshd_config 文件替换为 Yocto 中的自定义文件

问题描述

我使用 Yocto Zeus 为我的开发板构建嵌入式 Linux。到目前为止,我需要用我的自定义替换 /etc/ssh/sshd_config 。

不幸的是,我找不到任何有用的信息。刚刚在网上找到了一些帮助。我创建了一个自定义层并添加了如下配方:

sources
  mylayer
    mylayer-recipes
      recipes-connectivity
        openssh
          openssh_%.bbappend
          openssh
            sshd_config

openssh_%.bbappend

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://sshd_config"

在此之后我尝试重建图像

bitbake core-image-minimal

但什么也没有发生。镜像中的 sshd_config 文件没有错误,也没有变化。

我做错了什么?其实我只想/etc/ssh/sshd_config用自定义的系统替换系统,没有别的。

标签: yocto

解决方案


好的,我终于解决了这个问题。事实证明,我没有遵循 *.bb 的完整路径,但只遵循顶级路径,尽管文档说“......这意味着您必须设置支持目录结构,其中将包含您的任何文件或补丁将包括从图层中。” 5.1.5. Using .bbappend Files节中。所以最终的文件夹结构如下所示:

sources
  mylayer
    mylayer-recipes          
        openssh
          openssh_%.bbappend
          openssh
            sshd_config <----- the file that replaces the original one

  poky
    recipes-connectivity
      openssh
        openssh_8.0p1.bb
        openssh
          sshd_config   <----- the original file
          ....

即我刚刚将文件夹添加opensshmylayer-recipes文件夹,现在可以按预期工作


推荐阅读