[SOLVED] VM Serial Console configuration

vguttmannq

New Member
Feb 18, 2026
2
0
1
So, I'm running into the same problem as people in these threads:
https://forum.proxmox.com/threads/s...ermjs-console-instead-of-novnc-console.75780/
https://forum.proxmox.com/threads/serial-terminal-vm-qemu.153574/
https://forum.proxmox.com/threads/unable-to-use-xterm-js.38863/


I have configured ttyS0 as the terminal to boot into in my VM, and qm code <vmid> works just fine. I've set serial0 as my display within the VM config. Meanwhile, xterm.js just constantly displays "Connecting..." and "Disconnecting... (Detecting migration...)", but the VM itself definitely works.

Any idea why this doesn't work, even with xterm.js (which should be capable of dealing with serial consoles)?
proxmox-ve: 9.1.0 (running kernel: 6.14.11-3-pve)
pve-manager: 9.1.5 (running version: 9.1.5/80cf92a64bef6889)
proxmox-kernel-helper: 9.0.4
proxmox-kernel-6.17.9-1-pve-signed: 6.17.9-1
proxmox-kernel-6.17: 6.17.9-1
proxmox-kernel-6.17.4-2-pve-signed: 6.17.4-2
proxmox-kernel-6.14.11-5-pve-signed: 6.14.11-5
proxmox-kernel-6.14: 6.14.11-5
proxmox-kernel-6.14.11-3-pve-signed: 6.14.11-3
proxmox-kernel-6.8: 6.8.12-15
proxmox-kernel-6.8.12-15-pve-signed: 6.8.12-15
proxmox-kernel-6.8.4-2-pve-signed: 6.8.4-2
ceph-fuse: 19.2.3-pve1
corosync: 3.1.9-pve2
criu: 4.1.1-1
frr-pythontools: 10.4.1-1+pve1
ifupdown2: 3.3.0-1+pmx12
intel-microcode: 3.20250812.1~deb13u1
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libproxmox-acme-perl: 1.7.0
libproxmox-backup-qemu0: 2.0.2
libproxmox-rs-perl: 0.4.1
libpve-access-control: 9.0.5
libpve-apiclient-perl: 3.4.2
libpve-cluster-api-perl: 9.0.7
libpve-cluster-perl: 9.0.7
libpve-common-perl: 9.1.7
libpve-guest-common-perl: 6.0.2
libpve-http-server-perl: 6.0.5
libpve-network-perl: 1.2.5
libpve-rs-perl: 0.11.4
libpve-storage-perl: 9.1.0
libspice-server1: 0.15.2-1+b1
lvm2: 2.03.31-2+pmx1
lxc-pve: 6.0.5-4
lxcfs: 6.0.4-pve1
novnc-pve: 1.6.0-3
proxmox-backup-client: 4.1.2-1
proxmox-backup-file-restore: 4.1.2-1
proxmox-backup-restore-image: 1.0.0
proxmox-firewall: 1.2.1
proxmox-kernel-helper: 9.0.4
proxmox-mail-forward: 1.0.2
proxmox-mini-journalreader: 1.6
proxmox-offline-mirror-helper: 0.7.3
proxmox-widget-toolkit: 5.1.5
pve-cluster: 9.0.7
pve-container: 6.1.1
pve-docs: 9.1.2
pve-edk2-firmware: 4.2025.05-2
pve-esxi-import-tools: 1.0.1
pve-firewall: 6.0.4
pve-firmware: 3.17-2
pve-ha-manager: 5.1.0
pve-i18n: 3.6.6
pve-qemu-kvm: 10.1.2-6
pve-xtermjs: 5.5.0-3
qemu-server: 9.1.4
smartmontools: 7.4-pve1
spiceterm: 3.4.1
swtpm: 0.8.0+pve3
vncterm: 1.9.1
zfsutils-linux: 2.4.0-pve1

balloon: 0
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 1
cpu: x86-64-v2-AES
efidisk0: NVM:vm-115-disk-0,efitype=4m,size=1M
ide2: NAS:iso/debian-preseed-new.iso,media=cdrom,size=944M
machine: q35
memory: 1024
meta: creation-qemu=10.1.2,ctime=1771421688
name: ldkubecp02
net0: virtio=BC:24:11:9D:F1:9A,bridge=vmbr1,firewall=1
numa: 0
ostype: l26
scsi0: NVM:vm-115-disk-1,iothread=1,size=50G
scsihw: virtio-scsi-single
serial0: socket
smbios1: uuid=420864a1-a17f-4434-aec2-1c6729afd15b
sockets: 1
tablet: 0
vga: serial0
vmgenid: c3a76452-7d96-46d4-9f4a-3beddb19810a
 
Last edited:
What does /etc/default/grub look like inside the VM? What is the output of cat /proc/cmdline inside the VM?
I added
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600 --stop=1"
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"
GRUB_GFXPAYLOAD_LINUX=text

to the grub config, /proc/cmdline gives me BOOT_IMAGE=/vmlinuz-6.12.63+deb13-amd64 root=/dev/mapper/ldkubecp02--vg-root ro console=ttyS0, and tty returns /dev/ttyS0

But in the meantime I found the problem. We have the whole cluster using one URL, and seemingly something broke there, since normal remote sessions also fail, as well as WebAuthn.
The cluster URL wasn't my decision, but in this case it's the cause of the problem, since the serial console works fine when going via an individual proxmox node.
 
Last edited: