Subject: Null console (was: Re: Help me defend NetBSD's honor!)
To: Perry E. Metzger <perry@piermont.com>
From: Quentin Garnier <netbsd@quatriemek.com>
List: current-users
Date: 03/10/2003 13:19:15
This is a multi-part message in MIME format.

--Multipart_Mon__10_Mar_2003_13:19:15_+0100_08837200
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit

Le 09 Mar 2003 10:57:59 -0500
Perry E. Metzger a écrit :
> 
> Martin Husemann <martin@duskware.de> writes:
> > On Sun, Mar 09, 2003 at 05:01:10AM -0600, Peter Seebach wrote:
> > > Unfortunately, the 4521 only has one physical serial port.
> > 
> > I didn't try but shouldn't it be a no brainer to add a new /dev/null
> > cnattach to sys/arch/x86/x86/consinit.c, enabled by a config option?
> 
> Not even any need to do that -- we should simply create an option that
> replaces the consinit() in init_main.c:main() with a call that
> initializes the function pointers to dummys. Then it will be MI and
> all ports can have the functionality.
> 
> Shouldn't take more than ten minutes to write.

FWIW, here's a patch. It actually took a lot more that 10 minutes, because
if the kernel part is indeed trivial, when init starts it needs some kind
of tty emulation (TIOCSCTTY for libutil's login_tty), and just returning 0
for that ioctl is not enough (setting s_ttyp to non NULL prevent a
segfault later when the very first process that init creates exits).

And you know, debugging with no console... Not easy.

I prefer to zero the nulltty struct at each TIOCSCTTY ioctl to avoid any
side effect from the garbage left by the previous controlling process.

To use the patch as it is, add 'options CONS_OVERRIDE' and 'options
CONSDEVNAME="\"null\""' (null or at least neither pc nor com). If it's
worth it, a 'NULLCONSOLE' option could be added that simply #ifdef out the
relevant code and keep only the call to nullcnattach().

Changing other consinit.c should be trivial, just make sure it's actually
/dev/null's dev_t you pass to nullcnattach().

-- 
Quentin Garnier - cube@cubidou.net
"Feels like I'm fiddling while Rome is burning down.
Should I lay my fiddle down and take a rifle from the ground ?"
Leigh Nash/Sixpence None The Richer, Paralyzed, Divine Discontents, 2002.

--Multipart_Mon__10_Mar_2003_13:19:15_+0100_08837200
Content-Type: application/octet-stream;
 name="diff"
Content-Disposition: attachment;
 filename="diff"
Content-Transfer-Encoding: base64

SW5kZXg6IG5ldHZpZGlhL3NyYy9zeXMvYXJjaC94ODYveDg2L2NvbnNpbml0LmMKZGlmZiAtYyBu
ZXR2aWRpYS9zcmMvc3lzL2FyY2gveDg2L3g4Ni9jb25zaW5pdC5jOjEuMS4xLjEgbmV0dmlkaWEv
c3JjL3N5cy9hcmNoL3g4Ni94ODYvY29uc2luaXQuYzoxLjEuMS4xLjIuMQoqKiogbmV0dmlkaWEv
c3JjL3N5cy9hcmNoL3g4Ni94ODYvY29uc2luaXQuYzoxLjEuMS4xCUZyaSBGZWIgMjggMTQ6Mjg6
NTkgMjAwMwotLS0gbmV0dmlkaWEvc3JjL3N5cy9hcmNoL3g4Ni94ODYvY29uc2luaXQuYwlNb24g
TWFyIDEwIDEyOjQzOjM5IDIwMDMKKioqKioqKioqKioqKioqCioqKiAzNiw0MSAqKioqCi0tLSAz
Niw0MiAtLS0tCiAgI2luY2x1ZGUgPHN5cy9kZXZpY2UuaD4KICAjaW5jbHVkZSA8bWFjaGluZS9i
dXMuaD4KICAjaW5jbHVkZSA8bWFjaGluZS9ib290aW5mby5oPgorICNpbmNsdWRlIDxkZXYvY29u
cy5oPgogIAogICNpbmNsdWRlICJ2Z2EuaCIKICAjaW5jbHVkZSAiZWdhLmgiCioqKioqKioqKioq
KioqKgoqKiogMTkzLDE5OCAqKioqCi0tLSAxOTQsMjAyIC0tLS0KICAJCXJldHVybjsKICAJfQog
ICNlbmRpZgorIAludWxsY25hdHRhY2gobWFrZWRldigyLDIpKTsKKyAJcmV0dXJuOworIAogIAlw
YW5pYygiaW52YWxpZCBjb25zb2xlIGRldmljZSAlcyIsIGNvbnNpbmZvLT5kZXZuYW1lKTsKICB9
CiAgCkluZGV4OiBuZXR2aWRpYS9zcmMvc3lzL2Rldi9jb25zLmMKZGlmZiAtYyBuZXR2aWRpYS9z
cmMvc3lzL2Rldi9jb25zLmM6MS4xLjEuMSBuZXR2aWRpYS9zcmMvc3lzL2Rldi9jb25zLmM6MS4x
LjEuMS40LjEKKioqIG5ldHZpZGlhL3NyYy9zeXMvZGV2L2NvbnMuYzoxLjEuMS4xCUZyaSBGZWIg
MjEgMTI6MjI6NTYgMjAwMwotLS0gbmV0dmlkaWEvc3JjL3N5cy9kZXYvY29ucy5jCU1vbiBNYXIg
MTAgMTI6NDA6MTEgMjAwMwoqKioqKioqKioqKioqKioKKioqIDc1LDgwICoqKioKLS0tIDc1LDg1
IC0tLS0KICBzdHJ1Y3QJY29uc2RldiAqY25fdGFiOwkvKiBwaHlzaWNhbCBjb25zb2xlIGRldmlj
ZSBpbmZvICovCiAgc3RydWN0CXZub2RlICpjbl9kZXZ2cDsJLyogdm5vZGUgZm9yIHVuZGVybHlp
bmcgZGV2aWNlLiAqLwogIAorIHN0cnVjdCBjb25zZGV2IG51bGxfY29uc29sZSA9IHsKKyAJTlVM
TCwgTlVMTCwgbnVsbGNuZ2V0YywKKyAJbnVsbGNucHV0YywgbnVsbGNucG9sbGMsCisgCU5VTEws
IE5PREVWLCBDTl9OT1JNQUwgfTsKKyAKICBpbnQKICBjbm9wZW4oZGV2LCBmbGFnLCBtb2RlLCBw
KQogIAlkZXZfdCBkZXY7CioqKioqKioqKioqKioqKgoqKiogMzg5LDM5NCAqKioqCi0tLSAzOTQs
NDIzIC0tLS0KICAJaW50IG9uOwogIHsKICAKKyB9CisgCisgaW50CisgbnVsbGNuZ2V0YyhkZXYp
CisgCWRldl90IGRldjsKKyB7CisgCWZvcig7Oyk7CisgCXJldHVybiAoMCk7CisgfQorIAorIHZv
aWQKKyBudWxsY25wdXRjKGRldiwgYykKKyAJZGV2X3QgZGV2OworIAlpbnQgYzsKKyB7CisgCisg
fQorIAorIHZvaWQKKyBudWxsY25hdHRhY2goZGV2KQorIAlkZXZfdCBkZXY7CisgeworIAludWxs
X2NvbnNvbGUuY25fZGV2ID0gZGV2OworIAljbl90YWIgPSAmbnVsbF9jb25zb2xlOwogIH0KICAK
ICB2b2lkCkluZGV4OiBuZXR2aWRpYS9zcmMvc3lzL2Rldi9jb25zLmgKZGlmZiAtYyBuZXR2aWRp
YS9zcmMvc3lzL2Rldi9jb25zLmg6MS4xLjEuMSBuZXR2aWRpYS9zcmMvc3lzL2Rldi9jb25zLmg6
MS4xLjEuMS40LjEKKioqIG5ldHZpZGlhL3NyYy9zeXMvZGV2L2NvbnMuaDoxLjEuMS4xCUZyaSBG
ZWIgMjEgMTI6MjI6NTYgMjAwMwotLS0gbmV0dmlkaWEvc3JjL3N5cy9kZXYvY29ucy5oCU1vbiBN
YXIgMTAgMTI6NDA6MTEgMjAwMwoqKioqKioqKioqKioqKioKKioqIDgxLDg2ICoqKioKLS0tIDgx
LDg5IC0tLS0KICB2b2lkCWNuYmVsbCBfX1AoKHVfaW50LCB1X2ludCwgdV9pbnQpKTsKICB2b2lk
CWNucmludCBfX1AoKHZvaWQpKTsKICB2b2lkCW51bGxjbnBvbGxjIF9fUCgoZGV2X3QsIGludCkp
OworIGludAludWxsY25nZXRjIF9fUCgoZGV2X3QpKTsKKyB2b2lkCW51bGxjbnB1dGMgX19QKChk
ZXZfdCwgaW50KSk7Cisgdm9pZAludWxsY25hdHRhY2ggX19QKChkZXZfdCkpOwogIAogIC8qIGNv
bnNvbGUtc3BlY2lmaWMgdHlwZXMgKi8KICAjZGVmaW5lCWRldl90eXBlX2NucHJvYmUobikJdm9p
ZCBuIF9fUCgoc3RydWN0IGNvbnNkZXYgKikpCkluZGV4OiBuZXR2aWRpYS9zcmMvc3lzL2Rldi9t
bS5jCmRpZmYgLWMgbmV0dmlkaWEvc3JjL3N5cy9kZXYvbW0uYzoxLjEuMS4xIG5ldHZpZGlhL3Ny
Yy9zeXMvZGV2L21tLmM6MS4xLjEuMS40LjMKKioqIG5ldHZpZGlhL3NyYy9zeXMvZGV2L21tLmM6
MS4xLjEuMQlGcmkgRmViIDIxIDEyOjIyOjU2IDIwMDMKLS0tIG5ldHZpZGlhL3NyYy9zeXMvZGV2
L21tLmMJTW9uIE1hciAxMCAxMzowMjowMyAyMDAzCioqKioqKioqKioqKioqKgoqKiogNTMsNTgg
KioqKgotLS0gNTMsNjIgLS0tLQogICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KICAjaW5jbHVkZSA8
c3lzL3Byb2MuaD4KICAKKyAjaW5jbHVkZSA8c3lzL3R0eS5oPgorIAorIHN0cnVjdCB0dHkgbnVs
bHR0eTsKKyAKICBkZXZfdHlwZV9pb2N0bChtbWlvY3RsKTsKICAKICBpbnQKKioqKioqKioqKioq
KioqCioqKiA3MSw3NiAqKioqCi0tLSA3NSw4NyAtLS0tCiAgCQlzd2l0Y2ggKGNtZCkgewogIAkJ
Y2FzZSBGSU9OQklPOgkvKiBXZSBuZXZlciBibG9jayBhbnl3YXkgKi8KICAJCQlyZXR1cm4gMDsK
KyAJCWNhc2UgVElPQ1NDVFRZOgorIAkJCWlmIChtaW5vcihkZXYpID09IERFVl9OVUxMKSB7Cisg
CQkJCW1lbXNldCgmbnVsbHR0eSwgMCwgc2l6ZW9mKHN0cnVjdCB0dHkpKTsKKyAJCQkJcC0+cF9z
ZXNzaW9uLT5zX3R0eXAgPSAmbnVsbHR0eTsKKyAJCQkJcmV0dXJuICgwKTsKKyAJCQl9CisgCQkJ
cmV0dXJuIEVPUE5PVFNVUFA7CiAgCQljYXNlIFRJT0NHUEdSUDoKICAJCWNhc2UgVElPQ1NQR1JQ
OgogIAkJCXJldHVybiBFTk9UVFk7Cg==

--Multipart_Mon__10_Mar_2003_13:19:15_+0100_08837200--