Ouch, no kerneld...

Kirk Petersen (kirk@eidolon.speakeasy.org)
Fri, 12 Dec 1997 13:12:59 -0800 (PST)

> I think init is somehow messed up (in the most technical terms, of
> course). I get the Ouch, no kerneld for message 2147418113 as soon as the
> runlevel changed to multiuser. I also tried init S and instead of going
> to single user, the machine rebooted.

Here is the source of the problem:

- the kernel boots (unix domain sockets configured as a module)
- at some point kerneld is started
- while kerneld is starting, it tries to spit out some
messages to syslogd (via unix domain sockets)
- the kernel realizes it doesn't have unix domain sockets
and tells kerneld to load it
- since kerneld is just starting, it isn't quite ready to
load modules yet
- the kernel spits out that "ouch" message because kerneld
isn't ready to accept messages yet
- kerneld gets an error during the attempt to communicate
with syslogd, but just continues on
- kerneld then settles into the wait-for-a-message-from-the-kernel
loop and then it is safe
- kerneld is asked to load unix domain sockets when syslogd

The way to remove that annoying "ouch" message would be to modify
kerneld so that it doesn't communicate with syslogd until it is ready to
accept messages from the kernel. Which makes sense, as kerneld shouldn't
assume anything about which modules are in the kernel until it is prepared
to do something about it.
I'll try to get this worked out with the kerneld maintainer in the
next few weeks. It really should be fixed before 2.2 comes out.

Kirk Petersen