Systemd

如何防止 console-getty.service 啟動?

  • February 12, 2020

在我的嵌入式系統上,我使用 linux 核心 4.19.102 和 systemd 240。一切都是使用 buildroot 2019.02.9 生成的。

我使用設備的串列埠輸出控制台。

bootargs = "console=ttyS0,115200";

使用我使用的先前版本,控制台方面的一切都很好(buildroot 2018.05,核心 4.16.y 和 systemd 237)。我有以下文件:/etc/systemd/system/getty.target.wants/serial-getty@console.service正在啟動/sbin/getty -L ttyS0 115200 vt100

現在,控制台列印通常的啟動消息,然後列印日誌消息兩次:

Welcome to MyDevice
MyDevice login:
Welcome to MyDevice
MyDevice login:

當我嘗試使用以“r”開頭的長密碼登錄時,我得到如下資訊:

Welcome to MyDevice
MyDevice login:
Welcome to MyDevice
MyDevice login: root
Password: r
Login incorrect
MyDevice login:

我希望可以使用 SSH 登錄。我已經看到在這個版本中“getty”服務啟動了兩次:

# ps | grep getty
 988 root     /sbin/getty -L ttyS0 115200 vt100
1002 root     /sbin/getty -L console 115200 vt100
1117 root     grep getty

/etc 文件現在是:/etc/systemd/system/getty.target.wants/console-getty.service正在啟動/sbin/getty -L console 115200 vt100/sbin/getty -L ttyS0 115200 vt100仍在啟動。

當我殺死“控制台”服務(與以前的版本處於相同狀態)時,我可以登錄並且控制台終於好了。

如何配置 buildroot 或 systemd 以阻止控制台服務啟動?

問題是 BR2_TARGET_GENERIC_GETTY_PORT 在 buildroot 2018.05 的“控制台”上設置。它需要在 buildroot 2019.02.9 中通過 ’ttyS0’ 進行更改。

引用自:https://unix.stackexchange.com/questions/566959