【问题标题】:(Yocto / OpenEmbedded) Enabling systemd's libcryptsetup(Yocto / OpenEmbedded) 启用 systemd 的 libcryptsetup
【发布时间】:2020-01-31 22:39:45
【问题描述】:

我正在尝试启用 systemd 的 libcryptsetup 模块,以便在启动时通过 crypttab 解密驱动器。似乎 crypttab 不存在,因为 systemd (216) 构建中缺少 systemd-cryptsetup-generator。

我尝试在 PACKAGECONFIG 中指定“cryptsetup”选项??语句并在构建中指定 --enable-libcryptsetup 作为参数,但该选项被 bitbake 使用的配置脚本禁用(它在我的启用语句之后自动附加 --disable-cryptsetup)

我怀疑这是因为 configure 检测到一些缺少的依赖项,因此我尝试指定 systemd 配方依赖于 cryptsetup 配方,但我以配方循环结束(cryptsetup 依赖于依赖于 systemd 的 lvm2,因此 cryptsetup 将无法构建在 systemd 构建之前)。

有没有人有任何建议或遇到类似的问题?谢谢!

【问题讨论】:

    标签: linux systemd yocto openembedded luks


    【解决方案1】:

    通过直接更改配方或 bbappend 或 local.conf 将“cryptsetup”添加到 PACKAGECONFIG,应该可以解决问题。您使用的是哪个版本的 OE,您能否粘贴您的更改,最好是在 log.do_configure 的开头,它显示配置选项是什么。

    如果您尝试直接在 EXTRA_OECONF 中启用它但没有删除它认为已禁用的 PACKAGECONFIG[cryptsetup] 行(因此为您添加 disabled 标志),您将看到 --enable --disable。

    【讨论】:

    • 嗨,这里是 log.do_configure:pastebin.com/F0zXt9J3。这是使用以下 systemd 配方构建的:pastebin.com/qV49d9v8。如您所见,EXTRA_OECONF 包含 --enable-libcryptsetup 但在 log.do_configure 中,指定此选项后,会自动附加 --disable-libcryptsetup。如果我添加到 PACKAGECONFIG ??= "xz" "cryptsetup",那么我在烘焙时在依赖循环中运行:pastebin.com/VEU6pZTY。据我了解,这是因为 cryptsetup 依赖于 lvm2 而 lvm2 依赖于 systemd => cryptsetup 不能在 systemd 之前构建。谢谢!
    • 所以我对你为什么得到 --enable --disable 的看法是正确的:当 PACKAGECONFIG 无论如何都会做同样的事情时,不要尝试自己在 EXTRA_OECONF 中放置选项。只需设置 PACKAGECONFIG="xz cryptosetup"。依赖周期听起来很合理,这可能是默认禁用 cryptsetup 的原因之一。您需要禁用 LVM2 的 systemd 支持,或者拥有一份 LVM2 配方的副本,该配方仅构建库而没有 systemd 支持,以便 systemd 链接。是的,依赖周期很痛苦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2020-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多