私はPuttyコマンドラインからアクセスできるDebian Jessieがインストールされたヘッドレスコンピュータ(TS-7680)を持っています。コンピュータにはGUIがなく、コマンドラインからのみアクセスできます。一時的な停電が発生すると自動的に再起動するプログラムを搭載して現場に投入される予定だ。
私はプログラムを自動的に実行する方法を知っています。ところでログインできません。コンピュータを起動するたびに、ルートログインを要求するメッセージが表示されます。このコンピュータにはパスワードはありません。コードを起動すると、次のようになります。
Debian GNU/Linux 8 ts7680 ttyAMA0
ts7680 login:
root
この時点でコマンドプロンプトに入るには、次のように入力する必要があります。root@ts7680:~#
自動ログイン方法をご存知ですか?私はすべてを見ましたが、答えが見つかりませんでした。頑張ったこのソリューション不運。
答え1
systemdがttyAMA0
シリアルポートをPCと同じように処理すると仮定すると、ttyS0
編集が必要です[email protected]
。
systemctl status serial-getty@ttyAMA0
(アクティブとしてマークされていることを確認できます。)
デフォルトのバージョンは、gettyを起動するコマンドを見つける場所です。/lib/systemd/system/[email protected]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
サービスを開始するためのオーバーレイファイルの作成agetty
:--autologin root
ディレクトリを作成し、次のコンテンツでその中にファイルを呼び出します。/etc/systemd/system/[email protected]
override.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --keep-baud 115200,38400,9600 %I $TERM
systemctl edit [email protected]
これを行うのに役立ちます。
引数として渡される端末タイプは、agetty
シリアル端末の実際のタイプと一致する必要があります。これは長年にわたってsystemdのさまざまなアプローチのテーマでした。これはvt102
さまざまな方法でカーネル/ブートローダに組み込まれており(間接的に)継承されます。現在のアプローチ(2020年基準)は、意思決定方法がかなり複雑です。
しかし、結局は選択だけになるだろう3つの値linux
とvt220
Linuxコンソールについてカーネル/ブートローダが言うすべてから。最初の方法は実際の端末では機能せず、シリアルケーブルの端末エミュレータとリモートで一致しません。第二は、特に色に関しては正確ではないでしょう。 どちらもありませんPuTTYと一致し、正しい端末タイプはputty
(またはputty-256color
)です。 3つ目は、おそらくLinuxをシリアル端末とPuTTYにputty
リダイレクトしない限り、そうではありません。/dev/console
そして一貫したコンソール端末タイプを使用してブートローダを正しく再構成します。
TERM
したがって、最良の結果を得るには、対応するオーバーレイファイルにも環境変数を設定する必要があります。
Environment=TERM=putty-256color
その後、systemdを再ロードすると、新しい構成が適用されたことを確認できます。
# systemctl daemon-reload
# systemctl cat serial-getty\@ttyAMA0 | grep Exec
(最後の行に新しいコマンドを表示する必要がありますExecStart
。)
キーを押した後に自動的にログインするには、コマンドラインに-p
またはを追加します。--login-pause
agetty
リンクされたページでは、仮想コンソールで自動ログインを構成する方法について説明します。これは設定によって行われ、[email protected]
使用されるコマンドラインはagetty
若干異なります(オプションが欠落しているようです--keep-baud
)。この場合、代わりにforを使用します。/etc/systemd/system/[email protected]/override.conf
tty1
持つAsk Ubuntuの回答systemd 構成のオーバーライドの詳細。
systemdの代わりにsysvinitを使用するシステムでは、シリアルポートに対応するラインを追加/変更する必要があります/etc/inittab
。
T0:23:respawn:/sbin/getty -L ttyAMA0 --autologin root 38400 vt100