This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM623:如何在最新的 AM62x SDK 中将 systemd 替换为 sysvinit?

Guru**** 2923960 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1650886/am623-how-can-i-replace-systemd-with-sysvinit-in-the-latest-am62x-sdk

器件型号: AM623

我们之前基于 SDK 09.00.00.03 开发了我们的系统 、现在计划迁移到最新的 SDK 12.00.00.07.04

在迁移过程中、我们发现最新的 SDK 似乎 默认使用 systemd。 虽然我们启用了 sysvinit 配置选项、但它们似乎没有生效。

我已启用以下两个选项、但 Build 仍会报告错误、指示 需要 systemd:

Arago_sysvinit?=“1“
init_manager =“sysvinit“
 
错误:无 RPROVIDES 'bus-broker'(但/my_Yocto_dir/oe-core/meta/recies-core/dbus/dbus_dbus_1.16.2.bb 权限打开或以其他方式要求)
已跳过 dbus-broker:使用 distro 'arago'、缺少所需的 distro_features:'systemd'
注意:运行时目标'bus-broker'是不可构建的、正在删除...
 
您能否告知 在 SDK 12.00.00.07.04 中是否需要额外的配置才能从 systemd 切换到 sysvinit?  
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Stephen:

    [引述 userid=“565320“ url=“~/support/processors-group/processors/f/processors-forum/1650886/am623-how-can-i-replace-systemd-with-sysvinit-in-the-latest-am62x-sdk
    Arago_sysvinit?=“1“
    init_manager =“sysvinit“
    [/报价]

    您能否将两个当前设置替换为 中的单个变量 local.conf

    #新变量—替换 arago_sysvinit
    arago_init_manager =“sysvinit“

    确保您不 INIT_MANAGER = "sysvinit" 会单独设置。

    此致、
    Vinu

    编辑:这不正确。 请通读该主题。 答复中给出了解决办法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它的工作原理、谢谢。

    我想了解的一点是为什么 ARAGO_INIT_MANAGER 需要设置。 我搜索了 Yocto 源代码、但找不到对此变量的任何引用。 相关的逻辑似乎仍然在使用 INIT_MANAGER

    您能解释一下如何 ARAGO_INIT_MANAGER 使用它以及为什么需要它吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Stephen:

    「我知道,我知道 ARAGO_INIT_MANAGER你想要我。

    有一个建议 ARAGO_INIT_MANAGERhttps://www.mail-archive.com/meta-arago@lists.yoctoproject.org/msg01469.html ),但后来去了 INIT_MANAGER 自己 ( https://www.mail-archive.com/meta-arago@lists.yoctoproject.org/msg01495.html )

    让我从我这边来尝试一下、然后就会回来。

    此致、
    Vinu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Stephen:

    我创建了一个层来解决问题。

    e2e.ti.com/.../meta_2D00_sysvinit_2D00_fixes.tar.gz

    1. 将图层解压缩到源目录

    2. 将以下内容添加到 local.conf 中
      arago_sysvinit =“1“

    3. 将图层添加到 bblayer.conf
      bitbake-layers add-layer ../sources/meta-sysvinit-fixes

    4. 再次重建映像
      bitbake -c cleanstate dbus
      bitbake tisdk-base-image

    这将解决错误并使 sysvinit 成为默认的 init 程序。

    此致、
    Vinu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vinu:

    感谢您的支持、之前的测试结果可能是由不完整的 Clean Build 导致的。 我将再次重建所有内容并进行检查。

    我还有一个问题。 之前、在 Kirkstone 版本上、我们使用了以下配置:

    INIT_MANAGER = "sysvinit"
    DISTRO_FEATURES:append = " systemd"

    但是、使用最新的 Yocto SDK 进行构建时、现在会报告以下错误:

    systemd was skipped: conflicting distro feature 'sysvinit' (in DISTRO_FEATURES)

    应该如何在新的 Yocto 版本中配置此项、以允许 sysvinit 和 systemd 相关特性正确共存?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Stephen:

    在 Kirkstone 中、init 管理器的选择比较松散。 sysvinit 和 systemd 都可以共存。

    但最近,这已经改变了,并明确提到了在《愤怒的迁移指南》

    “这意味着 systemd 和 sysvinit distro 功能不再能一起使用。

    建议用户完全切换到一个 init 管理器或另一个 init 管理器。“

    请参阅: https://docs.yoctoproject.org/next/migration-guides/migration-6.0.html#support-for-sysvinit-compatibility-in-systemd-was-dropped


    此致、
    Vinu