web-dev-qa-db-ja.com

console-getty.serviceが開始しないようにするにはどうすればよいですか?

私の組み込みシステムでは、Linuxカーネル4.19.102とsystemd240を使用しています。すべてがbuildroot2019.02.9を使用して生成されます。

デバイスのシリアルポートを使用してコンソールを出力します。

bootargs = "console=ttyS0,115200";

私が使用した以前のバージョンでは、コンソール側(buildroot 2018.05、kernel 4.16.y、systemd 237)ですべて問題ありませんでした。私は次のファイルを持っていました:/etc/systemd/system/getty.target.wants/[email protected]起動していた/sbin/getty -L ttyS0 115200 vt100

これで、コンソールは通常の開始メッセージを出力してから、ログメッセージを2回出力します。

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」サービスが2回開始されていることを確認しました。

# 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はまだ開始されています。

'console'サービスを強制終了すると(以前のバージョンと同じ状態になるため)、ログインでき、コンソールは最終的に正常になります。

コンソールサービスが開始されないようにbuildrootまたはsystemdを構成するにはどうすればよいですか?

1
grorel

問題は、BR2_TARGET_GENERIC_GETTY_PORTがbuildroot2018.05の「コンソール」に設定されていたことです。 buildroot2019.02.9で「ttyS0」によって変更する必要があります。

3
grorel