web-dev-qa-db-ja.com

シリアルアクセスを有効にするために `console`ブートパラメータを指定すると、システムがブートに失敗する

達成したいこと

USB-RS232アダプタを介してNAS(Debian Stretchを実行))にリモート端末でアクセスしたい。このマシンはヘッドレスであるはずなので、ブートも見たい。シリアルラインで処理します。

(それでも、この問題を評価するために、現在、HDMIポートに接続されている画面があります。)

私が取った行動

カーネル引数リストに_console=ttyUSB0_を追加しました。起動時に、これによりシステムがフリーズします。

ブート出力の最後の行は次のとおりです:(ブートローダーはextlinuxです)

_Loading /vmlinuz... ok
Loading /initrd.img...ok
Probing EDD (edd=off to disable)... ok
_

上記のカーネルパラメータを使用しない場合、マシンは問題なく起動しています。そこから、実行することで簡単にシリアル端末アクセスを実現できました

_systemctl enable [email protected]
systemctl start [email protected]
_

リモートサーバー上、および

_screen -F /dev/ttyUSB0 9600
_

私のローカルマシンで。したがって、USB-RS232アダプタは正しく機能しています。サーバーは Intel NUC 5CPYH with Braswellチップセットで、_Linux 4.9.0-4-AMD64_ debianカーネルを実行します。

私の質問

それを機能させるには、どのアクションを実行する必要がありますか?

№1を編集

ブートパラメータとして_console=tty0 console=ttyUSB0,9600n8_を指定すると、マシンは正常にブートしますが、それでもシリアルポートに接続できません。また、_systemctl status [email protected]_は、サービスがloadedおよびinactive (dead)であることを示しています。その時は稼働していると思っていたでしょう。

№2を編集

少し調べてみたところ、私のinitramfsに関連するカーネルモジュールが不足していることがわかりました。カーネルパラメーターとして_break=init_を指定することで、なんとかinitramfsシェルに入ることができ、_/dev/ttyUSB0_デバイスがないことがわかりました。

_cp210x_、_pl2303_、および_ftdi_sio_を_/etc/initramfs-tools/modules_に追加し、initramfsを再作成した後、initramfsシェルに_/dev/ttyUSB0_デバイスがあることを確認しました。

それでも、他のマシンから接続できませんでした。だから私はそのデバイスで手動でgettyを開始しようとしました:

_# /sbin/getty -L 9600 /dev/ttyUSB0 vt100
getty: setsid: Operation not permitted
# su root -c "/sbin/getty -L 9600 /dev/ttyUSB0 vt100"
sh: su: not found
_

だから私は今ここにいます。

1
Multisync

システムがフリーズしていません。 [〜#〜] all [〜#〜]出力をシリアルコンソールに送信しました。

コンソール引数をカーネルに渡すには、ローカルコンソールとシリアルインターフェイスの両方を含める必要があります。

TLDP-リモートシリアルコンソールHOWTO-第5章Linuxカーネルの構成 を参照してください。

図5-2。推奨されるカーネルパラメータ、ビデオカード付きPC

console=tty0 console=ttyS0,9600n8

カーネルメッセージは、最初の仮想端末とシリアルポートの両方に表示されます。 initシステムとシステムロガーからのメッセージは、最初のシリアルポートにのみ表示されます。これは、接続されているモニターを見ると少し混乱する可能性があります。マシンが起動してからハングしているように見えます。慌てる必要はありません。initシステムは起動しましたが、シリアルポートにメッセージを出力していますが、画面には何も出力していません。 gettyが構成されている場合、ログイン:プロンプトが最終的に接続されたモニターに表示されます。

ビデオカードのないPCの場合、このHOWTOはカーネルパラメータを提案します。

図5-3。推奨されるカーネルパラメータ、ビデオカードのないPC

console=ttyS0,9600n8

これらのパラメータは、ブートローダーによってブートカーネルに渡されます。次に、Linuxインストールで使用されるブートローダーを構成して、コンソールパラメーターをカーネルに渡します。

3
Rui F Ribeiro