Look for the -chardev parameter in the qemu-kvm manual page.
Qemu also supports binding the emulated serial port to a telnet server. Now if you reboot your system you should see that the kernel startup messages are send to both your serial terminal and NoVNC display.Īdditionally (quoting from a private email, edited for clarity): Note: if it seems this is not working, and if you have defined ttyS1, you can connect to itwith the command Grub2-mkconfig -output=/boot/grub2/grub.cfgĪnd enter enter a second time you should get a login prompt GRUB_CMDLINE_LINUX="quiet console=tty0 console=ttyS0,115200" Instruct grub2 to send the boot messages on the VGA display and on the serial port # in /etc/default/grub change the GRUB_CMDLINE_LINUX parameter to Reboot the VM, verify that the emulated serial port is there dmesg | grep ttyS You might consider creating the nf file as well, just as a backup in case you have a crash with ttyS0 start on stopped rc RUNLEVEL= stop on runlevel respawn exec /sbin/getty -L 115200 ttyS0 vt102 # ttyS0 - getty # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. # open /etc/pve/qemu-server/101.conf and add the following parameter at the end of fileĬonfiguration on the guest Configure the terminal if not presentĪs detailed in, check if you have the file /etc/init/nf. Once this is configured it will be possible to connect from the host (ie the server running pve) using a terminal emulation program, which is handily builtin in the Proxmox Qemu Manager.Ĭonfiguration on the host Add a virtual serial port to the VM Now we can also configure our VM to have an emulated serial port, and instruct the OS, to send a copy of the boot messages / start a login prompt on the emulated serial port.
NoVNC/ VNC Applet connects to your VM keyboard and VM VGA display and displays the stuff you would expect from a real PC on a VGA display with a locally attached keyboard. In proxmox things work exactly the same, but with emulated devices.
The requirements of the terminal emulation are quite low, so you could use HyperTerminal on a Windows PC, Minicom on Linux or even an old Atari ST with the appropriate program. If you connect to this serial port any computing device with a terminal emulation program, it will be possible to work on the Linux PC as if you were using the PC locally in text mode. We get then what is called a serial console It is also possible to send a copy of the boot messages, and start a login prompt on the serial port of the PC. For instance the Linux Kernel has a netconsole feature, to send the boot messages over the network to another Linux computer. Now it is perfectly fine to send the boot messages and start a login prompt on something else. (Actually it spawns multiple login prompts, you can switch between them with Ctrl-alt-F1, Ctrl-alt-F2, etc. This is called in Unix-speak the default console, or system console.ĭuring boot, the kernel sends its boot messages, like device detection, to this default console, and at the end of the boot processes, fires a "login: " prompt on this console.
When you start Unix/Linux on a PC, the default input device is the attached keyboard (PS/2 or USB), and the default output device is the available VGA /HDMI / Display port of the PC. you are familiar with xm console from Xen and you want to use a similar feature here.your keyboard layout is borked on the guest.
your guest freezes or kernel panics, you want to debug it, but it is impossible to capture all messages on VNC screen.you lost network access to the guest and VNC is either too slow for you or does not have the features you need (i.e.Starting serial terminal on interface serial0 (press control-O to exit) If you do a lot of work over ssh on your pve server you would maybe appreciate to connect to your running VMs
Note: This apply to qemu/kvm virtualization. Why would I need a serial terminal / serial console?