부팅 중에 호스트의 직렬 장치가 작동을 멈춤

부팅 중에 호스트의 직렬 장치가 작동을 멈춤

저는 커널 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이지만 비슷한 작업을 수행해야 할 수도 있습니다.

관련 정보