起動中にホストのシリアルデバイスが動作を停止する

起動中にホストのシリアルデバイスが動作を停止する

私はカーネル5.4.103-1-pveでProxmox 6.4を実行しています(フォーラムでこの質問をしましたが、運がありませんでした)。私のマザーボードにはCOMヘッダがあり、最近それを接続してシリアル経由で管理するために必要な機器を購入しました。ただし、システム起動後はシリアルポートは使用できません。ポートはにありますttyS0。 GRUBで設定しました(SSHが登場する前は、設定はシリアルでのみ行われ、システムの唯一のGPUはパススルー用にのみGRUBまたはLinuxで実際には使用されませんでした)。

GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200"

console=ttyS0,115200その後、カーネルコマンドラインに追加してLinux用に設定しました。ホストを起動すると、まずGRUBメニューが表示され、完全に対話できます。その後、一般的なロードのinitramfsメッセージが表示され、続いてほとんどの一般的なLinux起動プロセスが表示されます。ただし、「ログインサービス」に到達すると、出力がなくなり、端末と対話できなくなります。

...
         Starting Proxmox VE Login Banner...
         Starting Enable support fo…l executable binary formats...
[  OK  ] Reached target ZFS volumes are ready.
[  OK  ] Started Preprocess NFS configuration.
[  OK  ] Started Set console font and keymap.
[  OK  ] Started Create Volatile Files and Directories.
[  OK  ] Started Load AppArmor profiles.
[  OK  ] Started Proxmox VE firewall logger.
         Mounting Arbitrary Executable File Formats File System...
         Starting Raise network interfaces...
[   17.623601] Generic FE-GE Realtek PHY r8169-800:00: attached PHY driver [Generic FE-GE Realtek PHY] (mii_bus:phy_addr=r8169-800:00, irq=IGNORE)
         Starting Network Time Synchronization...
         Starting Update UTMP about System Boot/Shutdown...
         Starting RPC bind portmap service...
[  OK  ] Reached target NFS client services.
[  OK  ] Started Proxmox VE Login Banner.
[  OK  ] Started Commit Proxmox VE network changes.
[  OK     17.739718] r8169 0000:08:00.0 enp8s0: Link is Down
0m] Mounted Arbitrary Executable File Formats File System.
[  OK  ] Started    17.760897] 8021q: 802.1Q VLAN Support v1.8
1;39mRPC bind portmap service.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Started Enable support for…nal executable binary formats.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Reached target RPC Port Mapper.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting Proxmox VE LXC Syscall Daemon...
[  OK  ] Started D-Bus System Message Bus.
         Starting PVE Qemu Event Daemon...
[  OK  ] Started ZFS Event Daemon (zed).
         Starting System Logging Service...
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
         Starting LSB: The monitor UPS software....
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily man-db regeneration.
         Starting Login Service...
[  OK  ] Started Proxmox VE [   18.118065] softdog: initialized. soft_noboot=0 soft_margin=60 sec soft_panic=0 (nowayout=0)
watchdog multiplexer.
         Starting Kernel Samepage Merging (KSM) Tuning Daemon...
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Started Daily PVE download activities.
         Starting Self Monitoring a…g Technology (SMART) Daemon...
         Starting ZFS file system shares...
[  OK  ] Started Proxmox VE replication runner.
[  OK  ] Reached target Timers.
[  OK  ] Started FUSE filesy[   18.258047] new mount options do not match the existing superblock, will be ignored
stem for LXC.
         Starting Initialize hardware monitoring sensors...
[  OK  ] Started Proxmox VE LXC Syscall Daemon.
[  OK  ] Started System Logging Service.
[  OK  ] Started PVE Qemu Event Daemon.
[  OK  ] Started Kernel Samepage Merging (KSM) Tuning Daemon.
[  OK  ] Started ZFS file system shares.
[  OK  ] Reached target ZFS startup target.
[  OK  ] Started Initialize hardware monitoring sensors.
[  OK  ] Started Login Service.

SSH経由でログインすると、serial-getty@ttyS0サービスが実行されており、そのログにエラーや警告が表示されないことがわかります。繰り返しますが、dmesgシステムログにはこれに関するエラーはありません。サービスを再起動しても、シリアル端末はまだ機能しません。を実行すると、stty -a -F /dev/ttyS0起動中に正しい転送速度にもかかわらず、何らかの理由で転送速​​度が2400に設定されていることがわかります。手動で115200ボードに設定することもできますが、そうしてから端末のクライアント側に何も入力すると、文字が表示されるとすぐに2400に戻ります。ただし、手動でリセットしてから再起動すると、serial-getty@ttyS0115200ボードになり、対話型のままになります。

インターネットのどこにも解決策が見つかりません。おそらく私のGoogle-fuは十分に強力ではないかもしれませんが、ほとんどの人の経験とは対照的に、部分的に機能する同様の質問を見つけることは困難です。まったく動作しません。

編集する:

TelcoMのおかげで、この問題は今解決されました。ちなみに、デフォルトのExecStart行は次のようになります。

ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM

したがって、systemctl edit serial-getty@ttyS0次の行を実行して追加することで問題を解決しました。

[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- \\u' 115200 %I $TERM

答え1

serial-getty@ttyS0サービス定義がagetty実際のプロセスにどのオプションを指定するかを調べる必要があります。systemctl cat serial-getty@ttyS0質問の出力を実行して編集します。

そのExecStart行に--keep-baudオプションagetty(省略形で表示)が含まれている場合は、固定転送速度115200を目指しているように見えるため、-sオプションを調整するためにオーバーレイファイルを作成する必要があるかもしれません。agetty

ExecStartDebian 10のシリアルポートのデフォルトラインは次のようになっているため、非常に似た作業を実行する必要がありましたagetty

ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM

この特別なケースでは、オプションを/sbin/agetty -o '-p -- \\u' 57600 %I vt-utf8

(ハードウェアにはリモートコンソールプロセッサがあり、そのファームウェアは57600bpsでのみ動作します。このモードでは、キーボードレイアウトの問題なしでリモートコンソールプロセッサにSSHで接続し、仮想シリアルコンソールモードを有効にしてシリアルコンソールにアクセスできます(Javaベース仮想KVMコンソール)。

ExecStartサービスは複数の行を持つことができるので、必要に応じExecStart=変える代わりに既存の行次へ追加第二。だから、次の内容でファイルを作成しました。/etc/systemd/system/[email protected]/override.conf

[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- \\u' 57600 %I vt-utf8

あなたの場合、転送速度は明らかに115200ですが、同様のことを行う必要があるかもしれません。

関連情報