Bug#372161: marked as done (kernel-package: README.modules: "User instructions" are incomplete and misleading)
Your message dated Sat, 4 Aug 2007 16:15:50 +0200
with message-id <20070804141550.GA31855@stro.at>
and subject line kernel-headers are missing infrastructure needed to build modules with kernel-package
has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--- Begin Message ---
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
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?
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (99, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.16-2-686
Locale: LANG=de_DE@euro, LC_CTYPE=de_DE@euro (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
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)
--- End Message ---
--- Begin Message ---
use module-assistant, lots of modules are build
thus i doubt that linux-2.6 doesn't provide the infrastructure
for it, thus closing.
--- End Message ---