在 yocto/poky 中使用 SELinux

Mar*_*ark 4 openembedded yocto

设置:我正在运行 Ubuntu 16.04,我正在尝试构建一个包含来自 meta-selinux 的一些配方的映像。我试图遵循自述文件和其他帮助,但我很困惑。

这是我拥有的图层:

drwxrwxr-x 19 ubuntu ubuntu 4096 Oct  3 18:31 meta/
drwxrwxr-x 14 ubuntu ubuntu 4096 Oct  3 22:49 meta-openembedded/
drwxrwxr-x  5 ubuntu ubuntu 4096 Oct  3 18:31 meta-poky/
drwxrwxr-x  8 ubuntu ubuntu 4096 Oct  3 18:31 meta-selftest/
drwxrwxr-x 16 ubuntu ubuntu 4096 Oct  3 22:51 meta-selinux/
drwxrwxr-x  7 ubuntu ubuntu 4096 Oct  3 18:31 meta-skeleton/
drwxrwxr-x 15 ubuntu ubuntu 4096 Oct  3 22:19 meta-virtualization/
drwxrwxr-x  9 ubuntu ubuntu 4096 Oct  3 18:31 meta-yocto-bsp/
drwxrwxr-x  7 ubuntu ubuntu 4096 Oct  3 23:12 openembedded-core/
Run Code Online (Sandbox Code Playgroud)

我的 bblayers.conf 文件有:

# POKY_BBLAYERS_CONF_VERSION is increased each time  build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /yocto/poky/meta \
  /yocto/poky/meta-poky \
  /yocto/poky/meta-yocto-bsp \
  /yocto/poky/meta-openembedded/meta-python \
  /yocto/poky/meta-selinux \
  "
Run Code Online (Sandbox Code Playgroud)

当我尝试做一个bitbake core-image-minimal我得到:

ERROR: Layer 'meta-python' depends on layer 'openembedded-layer', but this layer is not enabled in your configuration
Run Code Online (Sandbox Code Playgroud)

所以,我将该层添加到 bblayers.conf。

BBLAYERS ?= " \
  /yocto/poky/meta \
  /yocto/poky/meta-poky \
  /yocto/poky/meta-yocto-bsp \
  /yocto/poky/meta-trio \
  /yocto/poky/meta-openembedded \
  /yocto/poky/meta-openembedded/meta-python \
  /yocto/poky/meta-selinux \
  "
Run Code Online (Sandbox Code Playgroud)

现在我明白了

ERROR: Unable to start bitbake server
ERROR: Last 10 lines of server log for this session (/yocto/poky/build/bitbake-cookerdaemon.log):
    return bb.parse.handle(fn, data, include)
  File "/yocto/poky/bitbake/lib/bb/parse/__init__.py", line 117, in handle
    return h['handle'](fn, data, include)
  File "/yocto/poky/bitbake/lib/bb/parse/parse_py/ConfHandler.py", line 134, in handle
    abs_fn = resolve_file(fn, data)
  File "/yocto/poky/bitbake/lib/bb/parse/__init__.py", line 140, in resolve_file
    raise IOError(errno.ENOENT, "file %s not found" % fn)
FileNotFoundError: [Errno 2] file /yocto/poky/meta-openembedded/conf/layer.conf not found
Run Code Online (Sandbox Code Playgroud)

我不知道该去哪里。meta-openebedded 是从 repo 克隆的,我没有删除错误消息提到的 /conf/layer.conf 。

Mar*_*ark 6

在我的 bblayers.conf 中,我应该有

/yocto/poky/meta-openembedded/meta-oe \
Run Code Online (Sandbox Code Playgroud)

代替

/yocto/poky/meta-openembedded \
Run Code Online (Sandbox Code Playgroud)