svn commit: r209467 - head/usr.sbin/sysinstall

Bruce Cran brucec at FreeBSD.org
Wed Jun 23 14:11:35 UTC 2010


Author: brucec
Date: Wed Jun 23 14:11:34 2010
New Revision: 209467
URL: http://svn.freebsd.org/changeset/base/209467

Log:
  When installing on a machine which doesn't have a VGA card installed, enable
  a getty on the serial port so that it's possible to login when the system is
  rebooted.
  
  PR: bin/23098
  Submitted by: Doug Ambrisko <ambrisko at whistle.com>
  Reviewed by: randi
  Approved by: rrs (mentor)
  MFC after: 1 month

Modified:
  head/usr.sbin/sysinstall/install.c

Modified: head/usr.sbin/sysinstall/install.c
==============================================================================
--- head/usr.sbin/sysinstall/install.c	Wed Jun 23 14:06:05 2010	(r209466)
+++ head/usr.sbin/sysinstall/install.c	Wed Jun 23 14:11:34 2010	(r209467)
@@ -877,6 +877,9 @@ installConfigure(void)
 int
 installFixupBase(dialogMenuItem *self)
 {
+	FILE *orig, *new;
+	char buf[1024];
+	char *pos;
 #if defined(__i386__) || defined(__amd64__)
     FILE *fp;
 #endif
@@ -895,6 +898,32 @@ installFixupBase(dialogMenuItem *self)
 	    fclose(fp);
 	}
 #endif
+
+	/* Fixup /etc/ttys to start a getty on the serial port.
+	  This way after a serial installation you can login via
+	  the serial port */
+
+	if (!OnVTY){
+	    if (((orig=fopen("/etc/ttys","r")) != NULL) &&
+		((new=fopen("/etc/ttys.tmp","w")) != NULL)) {
+		while (fgets(buf,sizeof(buf),orig)){
+		    if (strstr(buf,"ttyu0")){
+			if ((pos=strstr(buf,"off"))){
+			    *pos++='o';
+			    *pos++='n';
+			    *pos++=' ';
+			}
+		    }
+		    fputs(buf,new);
+		}
+		fclose(orig);
+		fclose(new);
+
+		rename("/etc/ttys.tmp","/etc/ttys");
+		unlink("/etc/ttys.tmp");
+	    }
+	}
+
 	
 	/* BOGON #2: We leave /etc in a bad state */
 	chmod("/etc", 0755);


More information about the svn-src-all mailing list