PuTTYコマンドラインからアクセスするDebianJessieを搭載したヘッドレスコンピューター(TS-7680)を持っています。コンピューターにはGUIがなく、コマンドラインからのみアクセスできます。一時的な停電が発生した場合に自動的に再起動する必要があるプログラムとともにフィールドに配置されます。
プログラムを自動的に実行する方法を知っています。しかし、ログインを通過するのに問題があります。コンピュータを起動するたびに、rootログインの入力を求められます。このコンピューターにはパスワードがありません。起動コードの後、次のようになります。
Debian GNU/Linux 8 ts7680 ttyAMA0
ts7680 login:
その時点で、root
と入力して、コマンドプロンプトroot@ts7680:~#
にアクセスする必要があります。
誰かが自動ログインする方法を知っていますか?私はずっとググってみましたが、答えが見つかりません。私は試しました この解決策 運がありません。
SystemdがttyAMA0
をPCのttyS0
と同じようにシリアルポートとして扱うと仮定すると、[email protected]
で開始されるコマンドを編集する必要があります。
(systemctl status serial-getty@ttyAMA0
がアクティブかどうかを確認できます。)
基本バージョンは/lib/systemd/system/[email protected]
にあり、その中にgettyを開始するコマンドがあります。
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
--autologin root
でagetty
を開始するためのサービスのオーバーライドファイルを作成します。ディレクトリ/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コンソールに対して言うものから を選択するだけです。最初のものは実際の端末には決して適切ではなく、シリアルケーブルを介して端末エミュレータとほぼ一致することすらありません。特に色に関しては、2番目は正しくない可能性があります。 どちらでもないは、正しい端末タイプがPuTTY
(またはPuTTY-256color
)であるPuTTYに一致します。そして、3番目もおそらくPuTTY
ではないでしょう。 Linux /dev/console
をシリアルターミナルとPuTTYにリダイレクトしていない限り、およびはコンソールターミナルタイプでブートローダーを適切に再構成しましたロックステップ。
したがって、最良の結果を得るには、そのオーバーライドファイルに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
オプション)。その場合、代わりに/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