3270 设备
3270 是大型机的经典“绿屏”控制台(参见 维基百科 IBM 3270 条目)。
QEMU 内部不实现 3270 数据流;此设备仅提供 TN3270(一种 telnet 扩展,参见 RFC 854 和 RFC 1576),并将主要处理工作交给外部 3270 终端模拟器(例如 x3270),从而为客户机提供单个 3270 设备。注意,这仅支持基本功能。
要向客户机提供 3270 设备,请创建连接到 tn3270 字符设备的 x-terminal3270。客户机将看到一个 3270 通道设备。要实际使用它,还需将 x3270 模拟器连接到该字符设备。
配置示例
确保客户机 Linux 内核已启用 3270 支持。需要
CONFIG_TN3270,以及CONFIG_TN3270_TTY(用于附加 TTY)或CONFIG_TN3270_CONSOLE(用于 3270 控制台)中的至少一个。在 QEMU 命令行中添加
tn3270字符设备和x-terminal3270:-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
启动客户机。在客户机中使用
chccwdev -e 0.0.000a启用该设备。在主机上启动
x3270模拟器:x3270 <host>:2300
在客户机的
/dev/3270/下找到 3270 设备节点(例如tty1),并在其上启动 getty:systemctl start serial-getty@3270-tty1.service
这样应当能获得一个额外的 TTY,用于登录客户机。
如果希望将 3270 设备用作 Linux 内核控制台,而不是额外的 TTY,还可以在客户机内核命令行后添加
conmode=3270 condev=000a。下次启动后,内核应当使用 3270 作为控制台。
限制
3270 支持非常基础。具体而言:
仅支持一个 3270 设备。
仅使用 Linux 客户机和 x3270 模拟器进行了测试。
不支持 TLS/SSL。
不支持重新连接时调整大小。
不支持单个入站缓冲区中的多条命令(例如网络较慢时按下复位键的情况)。