2003-09-18 07:28:43

by Rob Landley

[permalink] [raw]
Subject: Make modules_install doesn't create /lib/modules/$version

I've installed -test3, -test4, and now -test5, and each time make
modules_install died with the following error:

Kernel: arch/i386/boot/bzImage is ready
sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
/lib/modules/2.6.0-test5 is not a directory.
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2

I had to create the directory in question by hand, and then run it again, at
which point it worked.

Am I the only person this is happening for? (Bog standard Red Hat 9 system
otherwise. With Rusty's modutils...)

Rob


2003-09-18 16:21:59

by Randy.Dunlap

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]> wrote:

| I've installed -test3, -test4, and now -test5, and each time make
| modules_install died with the following error:
|
| Kernel: arch/i386/boot/bzImage is ready
| sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
| /lib/modules/2.6.0-test5 is not a directory.
| mkinitrd failed
| make[1]: *** [install] Error 1
| make: *** [install] Error 2
|
| I had to create the directory in question by hand, and then run it again, at
| which point it worked.
|
| Am I the only person this is happening for? (Bog standard Red Hat 9 system
| otherwise. With Rusty's modutils...)

Yes, I see that also.
Just running 'depmod -e -F System.map-260t5 -v 2.6.0-test5' prints:
FATAL: Could not open /lib/modules/2.6.0-test5/modules.dep.temp for writing:
No such file or directory

--
~Randy

2003-09-18 17:56:10

by Sam Ravnborg

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Thu, Sep 18, 2003 at 03:21:40AM -0400, Rob Landley wrote:
> I've installed -test3, -test4, and now -test5, and each time make
> modules_install died with the following error:
>
> Kernel: arch/i386/boot/bzImage is ready
> sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
> /lib/modules/2.6.0-test5 is not a directory.
> mkinitrd failed
> make[1]: *** [install] Error 1
> make: *** [install] Error 2
>
> I had to create the directory in question by hand, and then run it again, at
> which point it worked.

I usually do:
make install
make modules_install

The first step creates the directory for me. (RH 8.0).

Sam

2003-09-19 02:44:56

by Rusty Russell

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

In message <[email protected]> you write:
> On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]> wrote:
>
> | I've installed -test3, -test4, and now -test5, and each time make
> | modules_install died with the following error:
> |
> | Kernel: arch/i386/boot/bzImage is ready
> | sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
> | /lib/modules/2.6.0-test5 is not a directory.

Looks like arch/i386/boot/install.sh is calling ~/bin/installkernel or
/sbin/installkernel, which is not creating the directory.

Should depmod create the directory? It can, of course, but AFAICT the
old one didn't.

Maybe a RedHat issue?

Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

2003-09-19 05:51:46

by Martin Schlemmer

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Fri, 2003-09-19 at 04:25, Rusty Russell wrote:
> In message <[email protected]> you write:
> > On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]> wrote:
> >
> > | I've installed -test3, -test4, and now -test5, and each time make
> > | modules_install died with the following error:
> > |
> > | Kernel: arch/i386/boot/bzImage is ready
> > | sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
> > | /lib/modules/2.6.0-test5 is not a directory.
>
> Looks like arch/i386/boot/install.sh is calling ~/bin/installkernel or
> /sbin/installkernel, which is not creating the directory.
>
> Should depmod create the directory? It can, of course, but AFAICT the
> old one didn't.
>
> Maybe a RedHat issue?
>

Likely, it works fine here with the one we are using
from debianutils.


Regards,

--
Martin Schlemmer


2003-09-19 08:43:24

by Bas Mevissen

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

Rob Landley wrote:

> I've installed -test3, -test4, and now -test5, and each time make
> modules_install died with the following error:
>
> Kernel: arch/i386/boot/bzImage is ready
> sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
> /lib/modules/2.6.0-test5 is not a directory.
> mkinitrd failed
> make[1]: *** [install] Error 1
> make: *** [install] Error 2
>
> I had to create the directory in question by hand, and then run it again, at
> which point it worked.
>
> Am I the only person this is happening for? (Bog standard Red Hat 9 system
> otherwise. With Rusty's modutils...)
>

I didn't see that here with Red Hat 9 system and 2.6.0-test3.

Maybe you can greb the used scripts to see which one does make (or test
the existence of) the directory.

I now use the modutils package from rawhide. It also handles the
creation of the new /etc/modprobe.conf file.

Bas.



2003-09-19 09:11:15

by Mikael Pettersson

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

Martin Schlemmer writes:
> On Fri, 2003-09-19 at 04:25, Rusty Russell wrote:
> > In message <[email protected]> you write:
> > > On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]> wrote:
> > >
> > > | I've installed -test3, -test4, and now -test5, and each time make
> > > | modules_install died with the following error:
> > > |
> > > | Kernel: arch/i386/boot/bzImage is ready
> > > | sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
> > > | /lib/modules/2.6.0-test5 is not a directory.
> >
> > Looks like arch/i386/boot/install.sh is calling ~/bin/installkernel or
> > /sbin/installkernel, which is not creating the directory.
> >
> > Should depmod create the directory? It can, of course, but AFAICT the
> > old one didn't.
> >
> > Maybe a RedHat issue?
> >
>
> Likely, it works fine here with the one we are using
> from debianutils.

So how come it's never been a problem on my RH boxes?
(Currently RH9 + module-init-tools but none of Arjan's .rpms)

I basically do
make bzImage modules |& tee /tmp/log
grep Warning /tmp/log
su
make modules_install
make install

Creating the /lib/modules/<version> directory is the kernel's
job, not installkernel (it's never done that before).

2003-09-19 16:12:15

by Martin Schlemmer

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Fri, 2003-09-19 at 11:10, Mikael Pettersson wrote:
> Martin Schlemmer writes:
> > On Fri, 2003-09-19 at 04:25, Rusty Russell wrote:
> > > In message <[email protected]> you write:
> > > > On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]> wrote:
> > > >
> > > > | I've installed -test3, -test4, and now -test5, and each time make
> > > > | modules_install died with the following error:
> > > > |
> > > > | Kernel: arch/i386/boot/bzImage is ready
> > > > | sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage System.map ""
> > > > | /lib/modules/2.6.0-test5 is not a directory.
> > >
> > > Looks like arch/i386/boot/install.sh is calling ~/bin/installkernel or
> > > /sbin/installkernel, which is not creating the directory.
> > >
> > > Should depmod create the directory? It can, of course, but AFAICT the
> > > old one didn't.
> > >
> > > Maybe a RedHat issue?
> > >
> >
> > Likely, it works fine here with the one we are using
> > from debianutils.
>
> So how come it's never been a problem on my RH boxes?
> (Currently RH9 + module-init-tools but none of Arjan's .rpms)
>
> I basically do
> make bzImage modules |& tee /tmp/log
> grep Warning /tmp/log
> su
> make modules_install
> make install
>
> Creating the /lib/modules/<version> directory is the kernel's
> job, not installkernel (it's never done that before).

Yes, OK, so I have not checked =) I just reacted on if
installkernel form non RH misbehave or not.

So what have you tried up to now ? Does there even
exist a /lib/modules/2.6.0-test5 ? If so, is it an file/something
else ? What happens if you create it manually beforehand ?

Else have a look at scripts/Makefile.modinst and maybe add
a few @echo's. I have not looked that closely at the build
system yet.


--
Martin Schlemmer


2003-09-19 19:07:44

by Rob Landley

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Thursday 18 September 2003 22:25, Rusty Russell wrote:
> In message <[email protected]> you write:
> > On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]> wrote:
> > | I've installed -test3, -test4, and now -test5, and each time make
> > | modules_install died with the following error:
> > |
> > | Kernel: arch/i386/boot/bzImage is ready
> > | sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage
> > | System.map "" /lib/modules/2.6.0-test5 is not a directory.
>
> Looks like arch/i386/boot/install.sh is calling ~/bin/installkernel or
> /sbin/installkernel, which is not creating the directory.
>
> Should depmod create the directory? It can, of course, but AFAICT the
> old one didn't.
>
> Maybe a RedHat issue?
>
> Rusty.

Okay, I traced through all this. The directory is never explicitly created;
Red Hat's /sbin/installkernel calls /sbin/new-kernel-pkg, and deep in the
bowels of that there's a call to depmod:

doDepmod() {
[ -n "$verbose" ] && echo "running depmod for $version"
depmod -ae -F /boot/System.map-$version $version
}

And I had the old depmod because rusty's modutils installed themselves in
/usr/local/bin, and I fixed things up by hand (missing depmod). I just did a
reinstall of rusty's modutils with --prefix=/ and we'll see if that fixes
things on the next kernel upgrade.

It's still kind of a nasty side effect if you ask me. I thought depmod was
run AFTER the modules were installed, not to create the directory for them to
install into. (My chances of figuring this one out on my own in a finite
amount of time were pretty low.)

Rob

2003-09-19 19:19:50

by Rob Landley

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Friday 19 September 2003 12:01, Martin Schlemmer wrote:
> On Fri, 2003-09-19 at 11:10, Mikael Pettersson wrote:
> > Martin Schlemmer writes:
> > > On Fri, 2003-09-19 at 04:25, Rusty Russell wrote:
> > > > In message <[email protected]> you write:
> > > > > On Thu, 18 Sep 2003 03:21:40 -0400 Rob Landley <[email protected]>
wrote:
> > > > > | I've installed -test3, -test4, and now -test5, and each time
> > > > > | make modules_install died with the following error:
> > > > > |
> > > > > | Kernel: arch/i386/boot/bzImage is ready
> > > > > | sh arch/i386/boot/install.sh 2.6.0-test5 arch/i386/boot/bzImage
> > > > > | System.map "" /lib/modules/2.6.0-test5 is not a directory.
> > > >
> > > > Looks like arch/i386/boot/install.sh is calling ~/bin/installkernel
> > > > or /sbin/installkernel, which is not creating the directory.
> > > >
> > > > Should depmod create the directory? It can, of course, but AFAICT
> > > > the old one didn't.
> > > >
> > > > Maybe a RedHat issue?
> > >
> > > Likely, it works fine here with the one we are using
> > > from debianutils.
> >
> > So how come it's never been a problem on my RH boxes?
> > (Currently RH9 + module-init-tools but none of Arjan's .rpms)
> >
> > I basically do
> > make bzImage modules |& tee /tmp/log
> > grep Warning /tmp/log
> > su
> > make modules_install
> > make install
> >
> > Creating the /lib/modules/<version> directory is the kernel's
> > job, not installkernel (it's never done that before).
>
> Yes, OK, so I have not checked =) I just reacted on if
> installkernel form non RH misbehave or not.

The kernel isn't doing it. A script called from installkernel (in Red Hat 9)
calls depmod, which has to be Rusty's new depmod or it doesn't create the
directory. This means depmod is running against the OLD modules.

I've been bitten by this before, by the way. I switched from an accidental
SMP kernel to a UP kernel on my laptop, and the install complained about
unresolved SMP symbols in the modules. (This is how I got in the habit of
doing make modules_install before make install, which I thought might also be
responsible for the directory creation problem, but wasn't. Neither creates
the directory: depmod does).

Rob

2003-09-19 21:39:55

by Mikael Pettersson

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version


On Fri, 19 Sep 2003 15:16:23 -0400, Rob Landley <[email protected]> wrote:
>> > So how come it's never been a problem on my RH boxes?
>> > (Currently RH9 + module-init-tools but none of Arjan's .rpms)
>> >
>> > I basically do
>> > make bzImage modules |& tee /tmp/log
>> > grep Warning /tmp/log
>> > su
>> > make modules_install
>> > make install
>> >
>> > Creating the /lib/modules/<version> directory is the kernel's
>> > job, not installkernel (it's never done that before).
>>
>> Yes, OK, so I have not checked =) I just reacted on if
>> installkernel form non RH misbehave or not.
>
>The kernel isn't doing it. A script called from installkernel (in Red Hat 9)
>calls depmod, which has to be Rusty's new depmod or it doesn't create the
>directory. This means depmod is running against the OLD modules.

You're confusing make install with make modules_install. (And
your initial report which spoke of modules_install was obviously
a make install since it ran arch/i386/boot/install.sh)

make modules_install _does_ create and populate the modules directory.
In the top-level Makefile we find:

...
MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
...
modules_install: _modinst_ _modinst_post

.PHONY: _modinst_
_modinst_:
@if [ -z "`$(DEPMOD) -V | grep module-init-tools`" ]; then \
echo "Warning: you may need to install module-init-tools"; \
echo "See http://www.codemonkey.org.uk/post-halloween-2.5.txt";\
sleep 1; \
fi
@rm -rf $(MODLIB)/kernel
@rm -f $(MODLIB)/build
@mkdir -p $(MODLIB)/kernel
@ln -s $(TOPDIR) $(MODLIB)/build
$(Q)$(MAKE) -rR -f scripts/Makefile.modinst

In particular note the mkdir.

make install does invoke /sbin/installkernel if your
system has one, and that script may expect the /lib/modules/
directory to exist, but that's not a kernel bug.

In any event, make modules_install before make install works
and has always worked for me on RH systems.

>I've been bitten by this before, by the way. I switched from an accidental
>SMP kernel to a UP kernel on my laptop, and the install complained about

rm -f /lib/modules/$KERNELVERSION; make modules_install

>unresolved SMP symbols in the modules. (This is how I got in the habit of
>doing make modules_install before make install, which I thought might also be
>responsible for the directory creation problem, but wasn't. Neither creates
>the directory: depmod does).

depmod does not create any directories, 'make modules_install' does.

2003-09-22 10:58:55

by Rob Landley

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Friday 19 September 2003 17:39, Mikael Pettersson wrote:
> On Fri, 19 Sep 2003 15:16:23 -0400, Rob Landley <[email protected]> wrote:
> >> > So how come it's never been a problem on my RH boxes?
> >> > (Currently RH9 + module-init-tools but none of Arjan's .rpms)
> >> >
> >> > I basically do
> >> > make bzImage modules |& tee /tmp/log
> >> > grep Warning /tmp/log
> >> > su
> >> > make modules_install
> >> > make install
> >> >
> >> > Creating the /lib/modules/<version> directory is the kernel's
> >> > job, not installkernel (it's never done that before).
> >>
> >> Yes, OK, so I have not checked =) I just reacted on if
> >> installkernel form non RH misbehave or not.
> >
> >The kernel isn't doing it. A script called from installkernel (in Red Hat
> > 9) calls depmod, which has to be Rusty's new depmod or it doesn't create
> > the directory. This means depmod is running against the OLD modules.
>
> You're confusing make install with make modules_install. (And
> your initial report which spoke of modules_install was obviously
> a make install since it ran arch/i386/boot/install.sh)

No, I'm not. make install calls installkernel. (If installkernel isn't
there, it runs lilo, which lobotomizes my laptop's grub boot sector.)

> make modules_install _does_ create and populate the modules directory.
> In the top-level Makefile we find:
>
> ...
> MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
> ...
> modules_install: _modinst_ _modinst_post
>
> .PHONY: _modinst_
> _modinst_:
> @if [ -z "`$(DEPMOD) -V | grep module-init-tools`" ]; then \
> echo "Warning: you may need to install module-init-tools"; \
> echo "See http://www.codemonkey.org.uk/post-halloween-2.5.txt";\
> sleep 1; \
> fi
> @rm -rf $(MODLIB)/kernel
> @rm -f $(MODLIB)/build
> @mkdir -p $(MODLIB)/kernel
> @ln -s $(TOPDIR) $(MODLIB)/build
> $(Q)$(MAKE) -rR -f scripts/Makefile.modinst
>
> In particular note the mkdir.

I noted the mkdir. I put an echo in front of the mkdir, which didn't get
called before it died unless I made the directory myself. This is what
happens with -test5-mm4:

[root@dhcppc4 linux-2.6.0-test5]# make install modules_install
CHK include/linux/version.h
make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.
CHK include/linux/compile.h
SKIPPED include/linux/compile.h
Kernel: arch/i386/boot/bzImage is ready
sh /home/landley/linux/linux-2.6.0-test5/arch/i386/boot/install.sh
2.6.0-test5-mm4 arch/i386/boot/bzImage System.map ""
/lib/modules/2.6.0-test5-mm4 is not a directory.
mkinitrd failed
make[1]: *** [install] Error 1
make: *** [install] Error 2
[root@dhcppc4 linux-2.6.0-test5]#

> make install does invoke /sbin/installkernel if your
> system has one, and that script may expect the /lib/modules/
> directory to exist, but that's not a kernel bug.

I'm using Red Hat 9, which worked fine installing 2.4 series kernels.

> In any event, make modules_install before make install works
> and has always worked for me on RH systems.

You're right:

make modules_install install works.
make install modules_install does not.

Good to know.

> >I've been bitten by this before, by the way. I switched from an
> > accidental SMP kernel to a UP kernel on my laptop, and the install
> > complained about
>
> rm -f /lib/modules/$KERNELVERSION; make modules_install

That's what I did after I was bitten, yes.

> >unresolved SMP symbols in the modules. (This is how I got in the habit of
> >doing make modules_install before make install, which I thought might also
> > be responsible for the directory creation problem, but wasn't. Neither
> > creates the directory: depmod does).
>
> depmod does not create any directories, 'make modules_install' does.

Although make install dies on a red hat 9 system trying to look at the modules
directory if modules_install isn't done first. Maybe it's an RH 9 bug. I
was actually kind of surprised that we almost do "./configure;make;make
install" now, yet make install doesn't install modules. Is there a reason
make install does NOT install modules for a modular kernel?

Rob

2003-09-22 12:05:30

by Mikael Pettersson

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

Rob Landley writes:
> > depmod does not create any directories, 'make modules_install' does.
>
> Although make install dies on a red hat 9 system trying to look at the modules
> directory if modules_install isn't done first. Maybe it's an RH 9 bug. I

RH9's /sbin/installkernel tries to run /sbin/new-kernel-pkg in order to
build a new initrd. This will almost certainly fail if your modules
directory isn't already populated at this point.

make modules_install; make install
in that order solves the problem.

If you don't like RH's installkernel then you can always write
your own and put it in ~/bin. That's what I did a long time ago
to make it lilo-friendly. (RH prefers that POS grub.)

> install" now, yet make install doesn't install modules. Is there a reason
> make install does NOT install modules for a modular kernel?

It hasn't before. I doubt very many people have a major problem with it.

2003-09-22 13:13:22

by Martin Schlemmer

[permalink] [raw]
Subject: Re: Make modules_install doesn't create /lib/modules/$version

On Mon, 2003-09-22 at 12:55, Rob Landley wrote:

> > In any event, make modules_install before make install works
> > and has always worked for me on RH systems.
>
> You're right:
>
> make modules_install install works.
> make install modules_install does not.
>
> Good to know.
>
> > >I've been bitten by this before, by the way. I switched from an
> > > accidental SMP kernel to a UP kernel on my laptop, and the install
> > > complained about
> >
> > rm -f /lib/modules/$KERNELVERSION; make modules_install
>
> That's what I did after I was bitten, yes.
>
> > >unresolved SMP symbols in the modules. (This is how I got in the habit of
> > >doing make modules_install before make install, which I thought might also
> > > be responsible for the directory creation problem, but wasn't. Neither
> > > creates the directory: depmod does).
> >
> > depmod does not create any directories, 'make modules_install' does.
>
> Although make install dies on a red hat 9 system trying to look at the modules
> directory if modules_install isn't done first. Maybe it's an RH 9 bug. I
> was actually kind of surprised that we almost do "./configure;make;make
> install" now, yet make install doesn't install modules. Is there a reason
> make install does NOT install modules for a modular kernel?
>

I also always use 'make modules_install install' to do things,
so it might not be RH9 related only. I will have a look tonight.


Thanks,

--
Martin Schlemmer