Support the special terminal on first serial line on a S/390(x) which
is due legacy reasons a block terminal of type 3270 or higher.  Whereas
the second serial line on a S/390(x) is a real character terminal which
is compatible with VT220.

---
 agetty.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

--- term-utils/agetty.c
+++ term-utils/agetty.c	2013-11-29 11:57:11.000000000 +0000
@@ -49,6 +49,10 @@
 #  ifndef DEFAULT_VCTERM
 #    define DEFAULT_VCTERM "linux"
 #  endif
+#  if defined (__s390__) || defined (__s390x__)
+#    define DEFAULT_TTYS0  "ibm327x"
+#    define DEFAULT_TTYS1  "vt220"
+#  endif
 #  ifndef DEFAULT_STERM
 #    define DEFAULT_STERM  "vt102"
 #  endif
@@ -983,6 +987,20 @@ static void open_tty(char *tty, struct t
 	if (tcgetattr(STDIN_FILENO, tp) < 0)
 		log_err(_("%s: failed to get terminal attributes: %m"), tty);
 
+#if defined (__s390__) || defined (__s390x__)
+	if (!op->term) {
+	        /*
+		 * Special terminal on first serial line on a S/390(x) which
+		 * is due legacy reasons a block terminal of type 3270 or
+		 * higher.  Whereas the second serial line on a S/390(x) is
+		 * a real character terminal which is compatible with VT220.
+		 */
+		if (strcmp(op->tty, "ttyS0") == 0 || strncmp(op->tty, "3270/tty", 8) == 0)
+			op->term = DEFAULT_TTYS0;
+		else if (strcmp(op->tty, "ttyS1") == 0)
+			op->term = DEFAULT_TTYS1;
+	}
+#endif
 	/*
 	 * Detect if this is a virtual console or serial/modem line.
 	 * In case of a virtual console the ioctl TIOCMGET fails and