Systemd
如何防止 console-getty.service 啟動?
在我的嵌入式系統上,我使用 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’ 進行更改。