3270 devices
The 3270 is the classic ‘green-screen’ console of the mainframes (see the IBM 3270 Wikipedia article).
The 3270 data stream is not implemented within QEMU; the device only provides
TN3270 (a telnet extension; see RFC 854
and RFC 1576) and leaves the heavy
lifting to an external 3270 terminal emulator (such as x3270) to make a
single 3270 device available to a guest. Note that this supports basic
features only.
To provide a 3270 device to a guest, create a x-terminal3270 linked to
a tn3270 chardev. The guest will see a 3270 channel device. In order
to actually be able to use it, attach the x3270 emulator to the chardev.
Example configuration
- Make sure that 3270 support is enabled in the guest’s Linux kernel. You need - CONFIG_TN3270and at least one of- CONFIG_TN3270_TTY(for additional ttys) or- CONFIG_TN3270_CONSOLE(for a 3270 console).
- Add a - tn3270chardev and a- x-terminal3270to the QEMU command line:- -chardev socket,id=ch0,host=0.0.0.0,port=2300,wait=off,server=on,tn3270=on -device x-terminal3270,chardev=ch0,devno=fe.0.000a,id=terminal0 
- Start the guest. In the guest, use - chccwdev -e 0.0.000ato enable the device.
- On the host, start the - x3270emulator:- x3270 <host>:2300 
- In the guest, locate the 3270 device node under - /dev/3270/(say,- tty1) and start a getty on it:- systemctl start serial-getty@3270-tty1.service - This should get you an additional tty for logging into the guest. 
- If you want to use the 3270 device as the Linux kernel console instead of an additional tty, you can also append - conmode=3270 condev=000ato the guest’s kernel command line. The kernel then should use the 3270 as console after the next boot.
Restrictions
3270 support is very basic. In particular:
- Only one 3270 device is supported. 
- It has only been tested with Linux guests and the x3270 emulator. 
- TLS/SSL is not supported. 
- Resizing on reattach is not supported. 
- Multiple commands in one inbound buffer (for example, when the reset key is pressed while the network is slow) are not supported.