如何在 Yocto 启动时启用网络服务

How to enable networking service at boot in Yocto

我有一个基于 Yocto 的 OS,我在上面安装了启动网络所需的一切。

然而,每次启动时我都需要执行 systemctl start networking 来启动它。最初,该服务甚至被屏蔽了。我找到了如何取消屏蔽它,但找不到自动启动它的方法。

我不太了解 systemd,但 networking.service 位于 generator.late 文件夹中。据我了解,是后来生成的

如何启用它?

这取决于您是否只想在一台特定设备上启用该服务。如果是,那很简单:

systemctl enable networking

如果您也想立即启动服务,请附加参数--now

如果你想在你的所有设备上启用该服务(即它会在你所有来自构建的图像中自动启用),最好的方法是扩展配方,但请参阅下面的其他方法如何处理网络。例如,该过程在 NXP support 中进行了描述。

关于 networking.service 本身的一些注意事项:我假设您的 networking.service 来自 init-ifupdown 食谱。如果是,是否有任何理由在带有 systemd 的系统中使用旧的 SysV 初始化脚本来处理网络配置?该服务由 systemd-sysv-generator 从 SysV 初始化脚本生成。所以我建议尝试其他网络服务,例如 systemd 的原生 "systemd-networkd"、"NetworkManager" 或 "connman"。最佳选择取决于嵌入式 systemd 的类型。这些服务与 systemd 集成得更好。

有关激活或启用服务的更多信息:https://unix.stackexchange.com/questions/302261/systemd-unit-activate-vs-enable