make-kpkg and dirty modules
Dammit, tonight I spent too many hours chasing down a “feature” in the Debian kernel build process or the Linux-2.6 kernel. I haven’t yet deciced who to blame ;-)
Here goes: when you build the latest Linux 2.6 kernel, checked out from
the git repository, with make-kpkg
you should make sure to uncheck the
CONFIG_LOCALVERSION_AUTO
option in the kernel config before hand.
It’s under “General setup” → “Automatically append version
information …”. If you don’t disable it, then your utsrelease.h
will contain some annoying extra git version string and your modules
directory will look something like this: /lib/modules/2.6.18-dirty
All this due to the LOCALVERSION
config, your git checkout, and the
tiny little fact that make-kpkg
modifies (moves away) the two files
scripts/packages/{builddeb,Makefile}
which leads to the modification
of the checkout and the scripts/setlocalversion will tell this to the
top Makefile which in turn will create this whole mess.
Take my advice, untick the CONFIG_LOCALVERSION_AUTO
option. It’s the
easiest one to get away with.