私のデバイスでいくつかのgettyを無効にするには/dev/ttyAMA0
。これは素晴らしい作品です。だからgettyを有効にしました。効果もとても良いです。systemctl mask [email protected]
ttyUSB1
systemctl enable [email protected]
[email protected]
だから私の質問は:aとaの間に違いがありますか[email protected]
?
答え1
2つのユニット(またはユニットテンプレート)の違いを見るには、ファイル間の違いを見てください。[Eメール保護]そして[Eメール保護]、/lib/systemd/system
システムで見つけることができます。
(ここにリンクされているファイルは、執筆時点で最新バージョンのsystemd v239にあるファイルを指します。これらのファイルにはm4マクロが含まれていてインストール前に処理しましたが、これはm4処理によって導入されたマイナーな変更であるため、 )
いくつかの違いがありますが、最大の違いはExecStart=
各ユニットが呼び出すコマンドです。
単位[Eメール保護]次のコマンドを呼び出します。
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
しかし、[Eメール保護]次のコマンドを呼び出します。
ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM
このコマンドは次の目的で使用されます。[Eメール保護]agetty
パラメータを渡して--keep-baud
シリアルポート速度を設定します。ある意味では、[Eメール保護]シリアルポートでは動作しますが、シリアルポートが正しく設定されていないため、正しく動作しない場合や正しく設定した場合よりも遅くなることがあります。
一方、[Eメール保護]agetty
ユーザーがログアウトした後、コンソール画面が消去されないように引数を渡します--noclear
(通常は最小tty0で構成されています)。
ユニットファイルとの追加の違い:
- [Eメール保護]udevデバイスをシリアルポート()にバインドするため、デバイスが
BindsTo=dev-%i.device
リムーバブルデバイス(USBなど)の場合、デバイスを取り外すかプラグを抜くとsystemdはgettyを停止します。 - [Eメール保護]tty0があることを確認して(
ConditionPathExists=/dev/tty0
)カーネルでローカルコンソールサポートが無効になっている場合、ローカルコンソールは作成されません。 - [Eメール保護]
UnsetEnvironment=LANG LANGUAGE LC_...
ローカライズは、ローカルコンソールでサポートされていないか、正しくサポートされていないため、ロケール変数()を設定しないことがよくあります。
ttyAMA0をブロックしてttyUSB1を有効にする特定のケースでは、ttyUSB1はシリアルポート(少なくとも1つをエミュレートする)なので、以下を使用してください。[Eメール保護]より適切になります。
しかし、、getty @を有効にする[Eメール保護]@ttyAMA0をブロックすることはこれを達成する最善の方法ではありません。
systemdはカーネル、通常はカーネルconsole=
コマンドラインの引数からコンソール設定を取得します(これは次のように行われます)。systemd-getty-generator詳細については、該当するマニュアルを参照してください。 )これを行うには、カーネルコマンドラインでコンソールを設定するだけです(console=ttyUSB1
たとえば、ローカルコンソールも含めることができますが、パラメータを使用するなどtty0
)。これにより、systemdは正しい操作を実行します。
見てsystemdのシリアルコンソールサポートに関するこのブログ投稿詳細については。