20.16.17. Host Physical Machine Interface A character device presents itself to the host physical machine as one of the following types: Table 20.23. Character device elements Parameter Description XML snippet Domain logfile Disables all input on the character device, and sends output into the virtual machine's logfile Device logfile A file is opened and all data sent to the character device is written to the file. Virtual console Connects the character device to the graphical framebuffer in a virtual console. This is typically accessed via a special hotkey sequence such as "ctrl+alt+3" Null device Connects the character device to the void. No data is ever provided to the input. All data written is discarded. Pseudo TTY A Pseudo TTY is allocated using /dev/ptmx . A suitable client such as virsh console can connect to interact with the serial port locally. NB Special case NB special case if <console type='pty'> , then the TTY path is also duplicated as an attribute tty='/dev/pts/3' on the top level <console> tag. This provides compat with existing syntax for <console> tags. Host physical machine device proxy The character device is passed through to the underlying physical character device. The device types must match, eg the emulated serial port should only be connected to a host physical machine serial port - do not connect a serial port to a parallel port. Named pipe The character device writes output to a named pipe. See pipe(7) man page for more info. TCP client/server The character device acts as a TCP client connecting to a remote server. Or as a TCP server waiting for a client connection. Alternatively you can use telnet instead of raw TCP. In addition, you can also use telnets (secure telnet) and tls. UDP network console The character device acts as a UDP netconsole service, sending and receiving packets. This is a lossy service. UNIX domain socket client/server The character device acts as a UNIX domain socket server, accepting connections from local clients.

Commands:
<devices> <console type='stdio'> <target port='1'/> </console> </devices>
<devices> <serial type="file"> <source path="/var/log/vm/vm-serial.log"/> <target port="1"/> </serial> </devices>
<devices> <serial type='vc'> <target port="1"/> </serial> </devices>
<devices> <serial type='null'> <target port="1"/> </serial> </devices>
<devices> <serial type="pty"> <source path="/dev/pts/3"/> <target port="1"/> </serial> </devices>
<devices> <serial type="dev"> <source path="/dev/ttyS0"/> <target port="1"/> </serial> </devices>
<devices> <serial type="pipe"> <source path="/tmp/mypipe"/> <target port="1"/> </serial> </devices>
<devices> <serial type="tcp"> <source mode="connect" host="0.0.0.0" service="2445"/> <protocol type="raw"/> <target port="1"/> </serial> </devices>
<devices> <serial type="tcp"> <source mode="bind" host="127.0.0.1" service="2445"/> <protocol type="raw"/> <target port="1"/> </serial> </devices>
<devices> <serial type="tcp"> <source mode="connect" host="0.0.0.0" service="2445"/> <protocol type="telnet"/> <target port="1"/> </serial> <serial type="tcp"> <source mode="bind" host="127.0.0.1" service="2445"/> <protocol type="telnet"/> <target port="1"/> </serial> </devices>
<devices> <serial type="udp"> <source mode="bind" host="0.0.0.0" service="2445"/> <source mode="connect" host="0.0.0.0" service="2445"/> <target port="1"/> </serial> </devices>
<devices> <serial type="unix"> <source mode="bind" path="/tmp/foo"/> <target port="1"/> </serial> </devices>