Package: kernel-package
Version: 10.047
Severity: normal

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.

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.
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 any
kind of module sources.

So this method does not work.

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.

Since I and my computer had enough time, I just compiled a (useless)
kernel image along with the modules images, and that worked fine.  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?

Regards, Frank


-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (99, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.16-2-686
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)

Versions of packages kernel-package depends on:
ii  dpkg                       1.10.28       Package maintenance system for Deb
ii  dpkg-dev                   1.10.28       Package building tools for Debian
ii  file                       4.12-1        Determines file type using "magic"
ii  gcc [c-compiler]           4:3.3.5-3     The GNU C compiler
ii  gcc-3.3 [c-compiler]       1:3.3.5-13    The GNU C compiler
ii  gettext                    0.14.4-2      GNU Internationalization utilities
ii  make                       3.81-1bpo1    The GNU version of the "make" util
ii  perl                       5.8.4-8sarge4 Larry Wall's Practical Extraction 
ii  po-debconf                 1.0           manage translated Debconf template

-- no debconf information

-- 
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)

Reply via email to