Problems with kernel compilations: Which headers, and why?
Hi,
How is module compilation with make-kpkg supposed to work? I have
currently installed:
$ dpkg -l fglrx-kernel-src thinkpad-source madwifi-source
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-========================-========================-================================================================
ii fglrx-kernel-src 8.23.7-0bpo1 Kernel module source for the ATI graphics accelerators
ii thinkpad-source 5.8-4 Source code for thinkpad-modules packages
ii madwifi-source 0.svn20060207-4bpo1 source for the Multiband Atheros Driver for WiFi
ii kernel-package 10.046bpo1 A utility for building Linux kernel related Debian packages.
I have unpacked the source tarballs (first in ~/src/, now for testing in
/usr/src), copied /boot/config-2.6.16-2-686 into the linux source tree
(as ".config") and tried to build the modules, as described in
/usr/share/kernel-package/README.modules, but I get an error:
$ make-kpkg debian
...
$ make-kpkg --append-to-version=-2-686 modules_image
exec debian/rules DEBIAN_REVISION=2.6.16-10.00.Custom APPEND_TO_VERSION=-2-686 modules_image
echo "The UTS Release version in include/linux/version.h"; echo " \"\" "; echo "does not match current version:"; echo " \"2.6.16-2-686\" "; echo "Please correct this."; exit 2
The UTS Release version in include/linux/version.h
""
does not match current version:
"2.6.16-2-686"
Please correct this.
make: *** [modules_image] Error 2
The first thing I find strange is that the Release version in version.h
is reported as empty. Then, which version.h is actually taken? I have
quite a lot of them. There's none in the linux source tree, but I have
ii linux-headers-2.6.16-2-6 2.6.16-13bpo1 Header files for Linux kernel 2.6.16 on PPro/Celeron/PII/PIII/P4 m
$ cat ../linux-headers-2.6.16-2-686/include/linux/version.h
#define UTS_RELEASE "2.6.16-2-686"
#define LINUX_VERSION_CODE 132624
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
ii linux-kernel-headers 2.5.999-test7-bk-17 Linux Kernel Headers for development
(This is a dependency of libc6-dev)
$ cat /usr/include/linux/version.h
#define UTS_RELEASE "2.6.0-test7"
#define LINUX_VERSION_CODE 132608
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
So which one is taken, and what should I do to make it use the right
one? And is this a backports.org issue at all, or is it a bug in the
etch packages?
TIA, Frank
--
Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX)
Reply to: