Ubuntu 20 LTS。如何调整 [email protected] 超时?

Ubuntu 20 LTS。如何调整 [email protected] 超时?

我在 QEMU 下运行 Ubuntu 20.04 的 ARM64 版本。约 50% 的时间里,启动过程会报告以下情况:

[ TIME ] Timed out waiting for device /dev/ttyAMA0.
[DEPEND] Dependency failed for Serial Getty on ttyAMA0.

这意味着 QEMU 终端中没有登录提示。然后需要 SSH 访问才能手动启动守护进程:

$ sudo systemctl start [email protected]

我该如何解决这个问题?在哪里/如何设置更长的超时值?

非常感谢。

[新增] 查看https://github.com/g40/qemu-arm64获取一整套脚本来重现该问题

答案建议这里对于 Centos 不起作用。

系统详细信息如下。

$ sudo systemctl show [email protected] | grep ^Tim 
TimeoutStartUSec=1min 30s
TimeoutStopUSec=1min 30s
TimeoutAbortUSec=1min 30s
TimeoutCleanUSec=infinity

$ lsb_release -a && uname -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal
Linux miniarm64 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 18:07:25 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

$ qemu-system-aarch64 --version
QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.19)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

答案1

下午好,我自己也遇到过类似的问题。事实上,systemd 没有等待设备初始化完成,因此取消了 ttyAMA0 上 getty 的初始化。因此,首先我们需要配置设备本身,而不是 getty。一般来说,这个问题很容易解决,首先我想参考官方 systemd 文档

设备单元以其控制的 /sys/ 和 /dev/ 路径命名。例如:设备 /dev/sda5 在 systemd 中显示为 dev-sda5.device。

如你所见,你需要为特定设备(ttyAMA0)创建一个配置;对于我的发行版,我创建了一个文件/usr/lib/systemd/system/dev-ttyAMA0.device内容如下:

[Unit]
Description=Serial device ttyAMA0
DefaultDependencies=no
Before=sysinit.target
JobTimeoutSec=infinity

查看更多

我希望我的解决方案能够帮助你。

相关内容