私の組み込みシステムでは、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/[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
起動中です。
「コンソール」サービス(以前のバージョンと同じ状態)を終了すると、ログインでき、最終的にコンソールが機能します。
コンソールサービスが起動しないようにbuildrootまたはsystemdをどのように設定しますか?
答え1
問題は、BR2_TARGET_GENERIC_GETTY_PORTがbuildroot 2018.05の「コンソール」に設定されていることです。 buildroot 2019.02.9で 'ttyS0'を介して変更する必要があります。