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

Re: Bug#370651: kernel-package: README.modules: "User instructions" are incomplete and misleading



reassign 370651 kernel
thanks

On 6 Jun 2006, Frank Küster said:

> I tried to compile third-party modules for 2.6.16, following the
> description in README.modules.  It turned out that the descriptions
> could and should be improved.

        The description is fine for header packages and source
 packages that are produced by kernel-package itself. However,
 official header and source packages are incomplete, and are missing
 information useful for compiling third party modules using
 kernel-package.  Since the information is removed _after_ make-kpkg
 has created it, I am redirecting this bug report.

> Below USER INSTRUCTIONS, the second item says:
>
> ,----
>> 2)   Get kernel sources from your favorite location. (For
>> pre-packaged kernels, it may be possible to build third
>> party modules by getting the kernel-headers package that
>> corresponds to the kernel-image package you have installed,
>> and pointing the build system of the kernel headers -- some
>> packaged modules packages provide an easy way to use the
>> kernel-headers packages, by allowing you to specify it like so:
>> [cd $MODULE_LOC/$module/;
>> ./debian/rules  KSRC=/usr/src/kernel-headers-X.Y.ZZ binary
>>> )
> `----

> I'm using a debian kernel, and therefore wanted to try the "headers
> only" way.  However, the command above does not work, since
> make-kpkg must first create the debian/ subdirectory in the modules
> directories .

        header packages produced by make-kpkg already have this
 directory.  This is removed, for some reason, from the official
 header packages, breaking the building of third party modules by end
 users using make-kpkg, or any possibility of just running
 ./debian/rules modules_image directly.

> Maybe you mean "prepackaged modules" - but I was using the sources
> for three modules packaged for non-free, madwifi, thinkpad and
> fglrx, and those come with tarballs in /usr/src/ that do not contain
> a debian/ subdirectory.  I don't know whether any prepackaged module
> debs exist that already contain a debian/ directory.  Anyway, it
> should be explained how it's possible to compile modules with
> headers only for an> y kind of module sources.

> So this method does not work.

        For official kernel header packages, no, since they are
 incomplete.

> I then fetched the complete kernel sources, unpacked them to
> /usr/src/linux-source-2.6.16/, copied /boot/config-2.6.16-2-686 to
> .config and further followed the instructions:

> ,----
>> 5)   If you are building a kernel that is custom configured to your
>> specifications at this time, go ahead and configure the
>> kernel with `make config', `make menuconfig', or `make
>> xconfig.'  To build a new kernel-image package, execute:
>> make-kpkg --revision number kernel_image
> `----

> So the configure part is done, but I don't want to build a new
> kernel-image package at all, so I skipped this part.

> ,----
>> 6)   To build the actual module packages, execute:
>> make-kpkg modules_image
>> This will generate a  <name>-modules-<kernel version>.deb file in
>> the parent directory. The revision you supplied while building the
>> kernel shall be used automatically.

>> If you are using an official Debian kernel-image with specific
>> options (kernel-image-x.y.z-foo), you should append this version
>> for modules compilation:
>> make-kpkg --append-to-version -foo modules_image
> `----
>
> Since this refers to using official Debian kernels, and it doesn't
> make sense to recreate the kernel image then, I thought it should
> also work this way.  But it doesn't.  First, make-kpkg complains
> that I need to run at least "make-kpkg debian" first.  I did that,
> but after that include/linux/version.h does not exist, and I get an
> error message that versions don't match (the one from version.h is,
> well, the empty string).  This is the only point where I think not
> only README.modules needs adjustment, but also the error message
> from make-kpkg: It should tell me what I have to run to make the
> modules_image target actually work.

        Err.  This has nothing to do with kernel-package,
 include/linux/version.h is created by the kernel buld system, and
 since you are taking a short cut, you are expected to know that make
 oldconfig would create that.

> Since I and my computer had enough time, I just compiled a (useless)
> kernel image along with the modules images, and that worked fine.

        Well, that was the default mechanism. 

> I've> also been told that I could have used module-assistant which
> would download the needed headers for me.  But I think the
> information in README.modules should be better understandable and
> more correct.  Unfortunately I don't know yet how I should have
> proceeded, and therefore cannot provide a better text.

> If this bug report leads to a discussion after which I know better
> how to do it, I offer to write a patch.  But maybe you already have
> something prepared, or it can be copied from somewhere?

        I think you ran into a broken header package, or, at least,
 one that is not condusive to building third party modules with
 kernel-package; and so I am redirecting this bug.

        manoj
-- 
Boy, that crayon sure did hurt!
Manoj Srivastava   <srivasta@debian.org>  <http://www.debian.org/%7Esrivasta/>
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C



Reply to: