init: test for vt terminal with VT_OPENQRY,
 assume that anything else is TERM=vt102, not TERM=linux.
 (Serial console test is less correct)
 Tentatively closes bug 195.

function                                             old     new   delta
init_main                                            946     919     -27

diff --git a/init/init.c b/init/init.c
index 5c344cb..ce26428 100644
--- a/init/init.c
+++ b/init/init.c
@@ -14,6 +14,7 @@
 #include <paths.h>
 #include <sys/reboot.h>
 #include <sys/resource.h>
+#include <linux/vt.h>
 
 
 /* Was a CONFIG_xxx option. A lot of people were building
@@ -161,33 +162,9 @@
 	}
 }
 
-/* From <linux/serial.h> */
-struct serial_struct {
-	int	type;
-	int	line;
-	unsigned int	port;
-	int	irq;
-	int	flags;
-	int	xmit_fifo_size;
-	int	custom_divisor;
-	int	baud_base;
-	unsigned short	close_delay;
-	char	io_type;
-	char	reserved_char[1];
-	int	hub6;
-	unsigned short	closing_wait; /* time to wait before closing */
-	unsigned short	closing_wait2; /* no longer used... */
-	unsigned char	*iomem_base;
-	unsigned short	iomem_reg_shift;
-	unsigned int	port_high;
-	unsigned long	iomap_base;	/* cookie passed into ioremap */
-	int	reserved[1];
-	/* Paranoia (imagine 64bit kernel overwriting 32bit userspace stack) */
-	uint32_t bbox_reserved[16];
-};
 static void console_init(void)
 {
-	struct serial_struct sr;
+	int vtno;
 	char *s;
 
 	s = getenv("CONSOLE");
@@ -211,8 +188,9 @@
 	}
 
 	s = getenv("TERM");
-	if (ioctl(STDIN_FILENO, TIOCGSERIAL, &sr) == 0) {
-		/* Force the TERM setting to vt102 for serial console
+	if (ioctl(STDIN_FILENO, VT_OPENQRY, &vtno) != 0) {
+		/* Not a linux terminal, probably serial console.
+		 * Force the TERM setting to vt102
 		 * if TERM is set to linux (the default) */
 		if (!s || strcmp(s, "linux") == 0)
 			putenv((char*)"TERM=vt102");