[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 2.2.16?

On Sun, Jul 02, 2000 at 01:55:50AM -0700, Joey Hess wrote:
> Randolph Chung wrote:
> >   modprobe: modprobe: Can't open dependencies file
> >   /lib/modules/2.2.17/modules.dep (No such file or directory)
> >  
> > I would have sworn we have seen this before and fixed it. It has something
> > to do with kmod or something.... someone on irc reported that booting with
> > init=/bin/sh still causes this message to show up, so it's probably not init
> > related. Have we changed anything recently that might cause this?
> > imo this needs to be fixed before we release 2.2.16
> I have seen the problem before. In fact, I wrestled with it when I was
> creating the boot-floppies build for slink and a half, and so was
> updating the boot-floppies to work with the 2.2 kernel. IIRC, the
> problem is that something in the boot sequence makes kmod try to load a
> module, and it cannot. 
> My nasty workaround was to insert code early in the boot to disable
> kmod. Randolph and I have dug around, and this used to be done in
> dbootstrap, and is now does as the first thing in /etc/init.d/rcS.
> Something is trying to load modules before that, and I have no idea
> what. It is quite possible it's always happening and the submitter
> just had a slow enough machine to see it. :-/

Hey, I represent that remark.

> I guess it's also possible that this line is not disabling kmod, but I
> can't see how.
>   echo "/bin/true" >/proc/sys/kernel/modprobe

Here is what I think is happening.  The kernel boots init (aka busybox).
One of the first things that init does is call console_init, which in
turn calls message to log the console it found.  Since we have compiled
busybox to be syslogd as well, it decides to use the syslog facility to
log the message.  This, I believe, causes the kernel (i.e., kmod) to try
and insert unix.o, which then fails due to some problem in /lib/modules.
Since all this happens before rcS is ever run, it doesn't have a chance
to disable kmod before the messages appear.  

I believe that the use of syslog causes modules to be loaded based on
the following information from linux/Documentation/Configure.help:

Unix domain sockets
  If you say Y here, you will include support for Unix domain sockets;
  sockets are the standard Unix mechanism for establishing and
  accessing network connections. Many commonly used programs such as
  the X Window system and syslog use these sockets even if your
  machine is not connected to any network. Unless you are working on
  an embedded system or something similar, you therefore definitely
  want to say Y here.

  However, the socket support is also available as a module ( = code
  which can be inserted in and removed from the running kernel
  whenever you want). If you want to compile it as a module, say M
  here and read Documentation/modules.txt. The module will be called
  unix.o. If you try building this as a module and you have said Y to
  "Kernel module loader support" above, be sure to add 'alias net-pf-1
  unix' to your /etc/modules.conf file. Note that several important
  services won't work correctly if you say M here and then neglect to
  load the module.

  Say Y unless you know what you are doing.


Reply to: