Debian Jessieで自動ログインを設定するには?

Debian Jessieで自動ログインを設定するには?

私は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つの値linuxvt220Linuxコンソールについてカーネル/ブートローダが言うすべてから。最初の方法は実際の端末では機能せず、シリアルケーブルの端末エミュレータとリモートで一致しません。第二は、特に色に関しては正確ではないでしょう。 どちらもありません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-pauseagetty


リンクされたページでは、仮想コンソールで自動ログインを構成する方法について説明します。これは設定によって行われ、[email protected]使用されるコマンドラインはagetty若干異なります(オプションが欠落しているようです--keep-baud)。この場合、代わりにforを使用します。/etc/systemd/system/[email protected]/override.conftty1

持つAsk Ubuntuの回答systemd 構成のオーバーライドの詳細。


systemdの代わりにsysvinitを使用するシステムでは、シリアルポートに対応するラインを追加/変更する必要があります/etc/inittab

T0:23:respawn:/sbin/getty -L ttyAMA0 --autologin root 38400 vt100

関連情報