From owner-freebsd-arch@FreeBSD.ORG Tue Jan 7 02:35:58 2014 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 18111E24; Tue, 7 Jan 2014 02:35:58 +0000 (UTC) Received: from smtpauth3.wiscmail.wisc.edu (wmauth3.doit.wisc.edu [144.92.197.226]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CE2C91599; Tue, 7 Jan 2014 02:35:57 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from avs-daemon.smtpauth3.wiscmail.wisc.edu by smtpauth3.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) id <0MZ000200EZZ4U00@smtpauth3.wiscmail.wisc.edu>; Mon, 06 Jan 2014 20:35:56 -0600 (CST) X-Spam-PmxInfo: Server=avs-3, Version=6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2014.1.7.22714, SenderIP=0.0.0.0 X-Spam-Report: AuthenticatedSender=yes, SenderIP=0.0.0.0 Received: from wanderer.tachypleus.net (pool-72-66-107-173.washdc.fios.verizon.net [72.66.107.173]) by smtpauth3.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) with ESMTPSA id <0MZ000HTWF7TIE00@smtpauth3.wiscmail.wisc.edu>; Mon, 06 Jan 2014 20:35:55 -0600 (CST) Message-id: <52CB6809.7090808@freebsd.org> Date: Mon, 06 Jan 2014 21:35:53 -0500 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 To: Michael Dexter , Jilles Tjoelker Subject: Automatic enabling of serial console (was: [CFT] bsdinstall and zfsboot enhancements) References: <5275C597.6070702@freebsd.org> <97944047-D575-4E2E-B687-9871DFE058E3@fisglobal.com> <52769CFE.5080707@freebsd.org> <5281340E.8080009@callfortesting.org> <52813E53.20403@freebsd.org> <5281441E.7060806@freebsd.org> <529A6862.7060308@freebsd.org> <20131201123442.GA6818@stack.nl> <52C9C8C3.7050108@freebsd.org> <52CB3E01.8040605@callfortesting.org> In-reply-to: <52CB3E01.8040605@callfortesting.org> X-Enigmail-Version: 1.6 Cc: "freebsd-arch@freebsd.org" , Devin Teske , "Teske, Devin" , Peter Grehan , Current Current X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jan 2014 02:35:58 -0000 On 01/06/14 18:36, Michael Dexter wrote: > On 1/5/14 1:04 PM, Nathan Whitehorn wrote: >> On 12/01/13 07:34, Jilles Tjoelker wrote: >>> On Sat, Nov 30, 2013 at 04:36:18PM -0600, Nathan Whitehorn wrote: >>>> This took much longer than I'd anticipated, but the patch to init is >>>> attached. I chose not to make the changes to init rather than >>>> getttyent() and friends in libc, which I am open to revisiting. >>> lib/libpam/modules/pam_securetty/pam_securetty.c calls getttynam(3) and >>> will not allow root login on a "fake" TTY that getttynam() does not >>> know. This module is enabled by default for the "login" service. >>> >>> So it is probably better to patch libc rather than init. >> OK, here's a revised patch. This one is shorter and works by introducing >> an "auto" flag (ideas for names appreciated) that means "on" if the line >> is an active console and "off" otherwise. Note that the behavior is now: >> - ttys marked "off" stay off >> - ttys marked "on" stay on >> - ttys marked "auto" are enabled iff they are console devices >> - ttys not present in /etc/ttys stay off >> >> This behavior change is much easier to implement when doing it in libc >> for various structural reasons and allows the terminal type, etc. to be >> specified in the usual way. >> >>>> The behavior changes are as follows: >>>> If the "console" device in /etc/ttys in marked "on", instead of opening >>>> /dev/console, init will loop through the active kernel console devices, >>>> and for each will: >>>> 1. If the kernel console device is in /etc/ttys and marked "on", it >>>> already has a terminal and will be ignored. >>>> 2. If marked "off", that is an explicit statement that a console is not >>>> wanted and so it will be ignored. >>>> 3. If not present in /etc/ttys, init will run getty with whatever >>>> parameters "console" has. >>> This seems to make sense. >>> >>>> (3) is the main behavioral change. No changes in behavior will occur if >>>> /etc/ttys is not modified. If we turn on "console" by default, it will >>>> usually have no effect instead of trying to run multiple gettys, which >>>> is new. If we then also comment out the ttyu0 line, instead of marking >>>> it "off", the result will be the conditional presence of a login prompt >>>> on the first serial port depending on whether it is an active console >>>> device for the kernel. I believe this is the behavior we are going for. >>> The terminal type for the console entry should probably be changed to >>> something other than "unknown" to reduce annoyance. >>> >>>> Comments and test results would be appreciated. >>> As a preparatory patch, you could remove se_index and session_index from >>> init. They are only used to warn about a changed slot number in utmp(5) >>> which is irrelevant with utmpx. This noise warning would also appear >>> in most cases when changing from a "fake" console entry to a real line >>> in /etc/ttys. Also, if you do decide to fake ttys entries in init rather >>> than libc, the patch to init will be simpler. >>> >> With the new patch, this is indeed the case: no changes to init are >> necessary at all. This does not change any behavior unless explicitly >> requested in /etc/ttys, so unless there are any objections in the next >> couple days, I will commit it. >> -Nathan > Hello all, > > Not sure if everyone knows that Nathan posted a patched 11-current ISO: > > http://people.freebsd.org/~nwhitehorn/auto-console.iso > > I have fetched and booted to this with my "iso" mode in my scripts and > IT WORKS. Great! > Install from ISO and boot as normal. Only glitch which I > haven't seen for some time: The resulting guest console is shortened by > one line with this persistent string at the bottom: > > /boot/kernel/kernel text=0xf45a98 data= .... syms= ... Weird... hard to know what's going on there. > This persists after VM reboot, goes away with bhyveload and returns for > the next VM boot. > > Okay, a second glitch upon second boot. The root prompt reads: > > login: Jan 6