私が望むのは、私のPCをDEC vt320端末に接続し、Linuxコンソールを出力して端末にコマンドを入力し、画面に応答を送信できるようにすることです。 Telnetで接続したいのですが、シリアル接続する方法がわかりません。私のシリアル接続は/dev/ttyS0です。
答え1
Mint 19.3が使用されているように見えるsystemd
ので、Mintがsystemd
親ディストリビューション(Ubuntuと最終的にDebian)の設定を変更しない限り、次のコマンドを使用して作業を実行する必要があります。
ターミナルスタイルのログインアクセス用にシリアルポートをすぐに起動するには、次の手順を実行します。
sudo systemctl start serial-getty@ttyS0
再起動後も設定を維持するには、次の手順を実行します。
sudo systemctl enable serial-getty@ttyS0
最初のコマンドを実行すると、端末にログインプロンプトが表示されます。それ以外の場合は、ターミナルでEnterキーを1回または2回押します。端末が実行されているデータ転送速度を検出するのに役立ちます。
(シリアルポート速度とも呼ばれる)ボーレートただし、この用語はモデム接続とデジタル - アナログ変調に関連する同様の接続にのみ適用され、通常のデジタルデータ転送には適用されません。 )
シリアル接続端末の基本systemd
構成には、毎秒115200、38400、および9600ビットのシリアルポート速度の自動検出が含まれます。コマンドを使用してこれを確認できますsystemctl cat serial-getty@ttyS0
。そのシリアルポート用に自動的に生成されたデバイスファイルを出力します。とりわけ、端末管理の実際のプロセスを開始するには、次の行を含める必要があります。
ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM
自動シリアルポート速度検出が正しく機能しない場合、またはデフォルトリストに含まれていない速度値を指定したい場合は、1つを生成する必要があります。ファイルの上書きこのシステムサービスの場合:
sudo systemctl edit [email protected]
このコマンドはファイルを作成し(必要な場合)、エディタで開きます。
たとえば、シリアルポート速度検出を57600bpsにロックするには、オーバーレイファイルに次の3行を作成します。
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- \\u' 57600 %I $TERM
最初の行は[Service]
自動的に生成されたサービスファイルセクションの内容を上書きするように指定し、2行目はExecStart
別の行を追加するのではなくその行を上書きすることを指定し、3行目はExecStart
希望のポート速度を持つ新しい減ります。 /またはagetty
端末プロセスを管理するための追加オプション。
Unixの世界では、これらのプロセスの伝統的な名前はありgetty
、Linuxは一般的に改善されています(ㅏ代替/ㅏutobauding)シリアルポートバージョン:agetty
。
答え2
最も簡単な答えは、telcoMの答えに示されているように、シリアルデバイスでターミナルログインサービスを開始することです。これは変わりません。Linuxコンソール。 Linuxコンソールをシリアルデバイスに移動するのは簡単ですが、より多くの副作用があります。
console=ttyS0
カーネルコマンドラインでブートローダ(あなたの場合はGRUB)が提供するコマンドを使用するだけです。
systemdが提供するジェネレータはこれを確認し、serial-getty@ttyS0
自動的にサービスを有効にします。しかし、さらに、すべての実用的な快適カーネルと作成されたプログラムの出力は、/dev/console
DEC VT320に移動されます。
残念ながら、VT320はサポートしていない色。 (VT340には16個しかありません。)
これは不幸なことです。これは、多くのプログラムが/dev/console
環境が許す限り、.systemdパッケージを含むECMA-48カラーコントロールシーケンスをハードワイヤーするためです。プロセス#1、彼らは本を読みに行き、確かに含むTERM=dumb
。他のプログラムは通常、次の事項に基づいて異なる決定を下します。彼らだけプロセス環境、一部は端末に基づいて決定を下さない。タイプまったくそうではありません。なぜなら、著者は、プログラムの出力が真の白黒端末を備えたシリアルデバイスになることができるとは決して想像できなかったからです。
だからあなたは返品カーネルのコマンドライン仕様を確認する必要がありますTERM=dumb
。これはVT320の正しい説明ではなく、非常に不適切です。
追加読書
- https://unix.stackexchange.com/a/447098/5132
- https://unix.stackexchange.com/a/475043/5132
- ジョナサンデボインポラード(2018)。Linuxカーネル仮想端末デバイスのマニュアルページ。提案。
- ジョナサンデボインポラード(2018)。
linux-console
。スナックガイド。ソフトウェア。 - ジョナサンデボインポラード(2018)。
linux-vt
。スナックガイド。ソフトウェア。
- ジョナサンデボインポラード(2018)。