--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: kernel-package: README.modules: "User instructions" are incomplete and misleading
- From: Frank Küster <frank@debian.org>
- Date: Tue, 06 Jun 2006 09:54:54 +0200
- Message-id: <86pshmbtwx.fsf@alhambra.kuesterei.ch>
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: 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
--
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)
--- End Message ---