Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.
On Tue, Nov 03, 2009 at 11:05:53PM +0100, Lars Ellenberg wrote:
> On Tue, Nov 03, 2009 at 02:34:30PM -0600, Andrew Barringer wrote:
> > Thanks for the Classic linux help aka: you are st00pid go bug off and
> > RTFM.
> >
> > For what's it's worth...
> >
> > The problem was submitted weeks ago to dkms bug list and it was punted
> > to the drbd8 list and there's been no update from that team.
>
> You should have said so.
>
> > I thought it obvious that I would have tried what it suggests.
>
> You have no idea how many people don't even read
> single line error messages, let alone multi line ones,
> and come complaining right away, without trying what was suggested
> in that message.
>
> > Okay... I'll go away now as directed.
>
> ;)
>
> apparently dkms and drbd sources and debian rules are somewhat
> incompatible currently.
> I'm sorry, I don't know much about dkms internals,
but I know enough apparently.
session log follows.
(NFSROOT karmic-amd64) # apt-get install drbd8-source
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
drbd8-source
0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded.
Need to get 0B/264kB of archives.
After this operation, 1044kB of additional disk space will be used.
Can not write log, openpty() failed (/dev/pts not mounted?)
Selecting previously deselected package drbd8-source.
(Reading database ... 413773 files and directories currently installed.)
Unpacking drbd8-source (from .../drbd8-source_2%3a8.3.3-0ubuntu1_all.deb) ...
Can not write log, openpty() failed (/dev/pts not mounted?)
Setting up drbd8-source (2:8.3.3-0ubuntu1) ...
Removing all [drbd8-8.3.3] DKMS Modules
Error! There are no instances of module: drbd8
8.3.3 located in the DKMS tree.
Done.
Adding [drbd8-8.3.3] Module to DKMS build system
*************************************************
ERROR: Missing kernel headers.
ok, you know that one already.
in this case, it is correct: it triggers on uname -r,
and in that changeroot, uname -r does not match any installed linux header
packages.
but anyways.
(NFSROOT karmic-amd64) # cat /var/lib/dpkg/info/drbd8-source.postinst
#!/bin/sh
set -e
PKG="drbd8"
PKGVER=`dpkg-query -W -f='${Version}' "$PKG"-source | cut -d: -f2 | cut -f1 -d-`
case "$1" in
configure)
echo "Removing all [$PKG-$PKGVER] DKMS Modules"
dkms remove -m $PKG -v $PKGVER --all >/dev/null || true
echo "Done."
echo "Adding [$PKG-$PKGVER] Module to DKMS build system"
dkms add -m $PKG -v $PKGVER >/dev/null
if ! dpkg --status linux-headers-`uname -r` 2>/dev/null | grep -qs "Status: install ok installed"; then
flavor=`uname -r | sed "s/.*-//"`
echo
echo "*************************************************"
echo "ERROR: Missing kernel headers."
echo
echo "You appear to have at least some kernel headers"
echo "installed, but you do not have the necessary"
echo "headers to build $PKG-source against this kernel."
echo
echo "You might try installing the meta package:"
echo " $ sudo apt-get install linux-headers-$flavor"
echo "or specifically"
echo " $ sudo apt-get install linux-headers-"`uname -r`
echo "to obtain the necessary build dependencies."
echo
echo "*************************************************"
echo
exit 1
fi
echo "Doing initial module build"
dkms build -m $PKG -v $PKGVER >/dev/null
THERE.
echo "Installing initial module"
dkms install -m $PKG -v $PKGVER >/dev/null
echo "Done."
;;
esac
lets try this:
(NFSROOT karmic-amd64) # dkms build --help
Error! Unknown option: --help
Usage: /usr/sbin/dkms [action] [options]
[action] = { add | remove | build | install | uninstall | match
| mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | status }
[options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]
[-d distro] [-c dkms.conf-location] [-q] [--force] [--all]
[--templatekernel=kernel] [--directive='cli-directive=cli-value']
[--config=kernel-.config-location] [--archive=tarball-location]
[--kernelsourcedir=source-location] [--no-prepare-kernel]
[--binaries-only] [--source-only] [-r release (SuSE)] [--verbose]
[--size] [--spec=specfile] [--media=floppy|iso|tar] [--legacy-postinst=0|1]
(NFSROOT karmic-amd64) # dkms build -m drbd8 -v 8.3.5 -k 2.6.31-14-generic
Error! DKMS tree does not contain: drbd8-8.3.5
Build cannot continue without the proper tree.
oops. my fault. not 8.3.5, only 8.3.3 ;-)
again:
(NFSROOT karmic-amd64) # dkms build --verbose -m drbd8 -v 8.3.3 -k 2.6.31-14-generic
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
make -C drbd clean KERNELDIR=/lib/modules/2.6.31-14-generic/build
make: Entering directory `/var/lib/dkms/drbd8/8.3.3/build/drbd'
rm -rf .tmp_versions
rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c .*.flags .depend .kernel*
make: Leaving directory `/var/lib/dkms/drbd8/8.3.3/build/drbd'
su nobody -c "make KERNELRELEASE=2.6.31-14-generic -C drbd KERNELDIR=/lib/modules/2.6.31-14-generic/build" >> /var/lib/dkms/drbd8/8.3.3/build/make.log 2>&1
(bad exit status: 2)
WTF? KERNELDIR? it has always been KDIR with DRBD.
Error! Bad return status for module build on kernel: 2.6.31-14-generic (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/drbd8/8.3.3/build/ for more information.
0
0
(NFSROOT karmic-amd64) /var/lib/dkms/drbd8/8.3.3/build# cat dkms.conf
PACKAGE_NAME="drbd"
PACKAGE_VERSION="8.3.3"
AUTOINSTALL=yes
CLEAN="make -C drbd clean KERNELDIR=$kernel_source_dir"
MAKE="make -C drbd KERNELDIR=$kernel_source_dir"
SIC.
that won't work.
at least not with the Makefile from our tarball.
it may _sometimes_ have worked,
because our makefile defaults to use `uname -r`,
if no explicit KDIR was supplied.
BUILT_MODULE_NAME[0]="drbd"
BUILT_MODULE_LOCATION[0]="drbd"
DEST_MODULE_LOCATION[0]="/kernel/updates"
MODULES_CONF[0]="options drbd cn_idx=7"
(NFSROOT karmic-amd64) /var/lib/dkms/drbd8/8.3.3# ls -l
drwxr-xr-x 4 nobody root 4096 2009-11-03 23:18 build
lrwxrwxrwx 1 root root 20 2009-11-03 23:12 source -> /usr/src/drbd8-8.3.3
(NFSROOT karmic-amd64) /var/lib/dkms/drbd8/8.3.3/source# ls -la
-rw-r--r-- 1 root root 307 2009-10-07 19:27 dkms.conf
drwxr-xr-x 3 root root 4096 2009-11-03 23:12 drbd
drwxr-xr-x 2 root root 4096 2009-11-03 23:12 scripts
(NFSROOT karmic-amd64) /var/lib/dkms/drbd8/8.3.3/source# vi dkms.conf
PACKAGE_NAME="drbd"
PACKAGE_VERSION="8.3.3"
AUTOINSTALL=yes
CLEAN="make -C drbd clean KDIR=$kernel_source_dir"
MAKE="make -C drbd KDIR=$kernel_source_dir"
Now. THAT should be better.
BUILT_MODULE_NAME[0]="drbd"
BUILT_MODULE_LOCATION[0]="drbd"
DEST_MODULE_LOCATION[0]="/kernel/updates"
MODULES_CONF[0]="options drbd cn_idx=7"
(NFSROOT karmic-amd64) /var/lib/dkms/drbd8/8.3.3/source# dkms build --verbose -m drbd8 -v 8.3.3 -k 2.6.31-14-generic
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
make -C drbd clean KDIR=/lib/modules/2.6.31-14-generic/build
make: Entering directory `/var/lib/dkms/drbd8/8.3.3/build/drbd'
rm -rf .tmp_versions
rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c .*.flags .depend .kernel*
make: Leaving directory `/var/lib/dkms/drbd8/8.3.3/build/drbd'
su nobody -c "make KERNELRELEASE=2.6.31-14-generic -C drbd KDIR=/lib/modules/2.6.31-14-generic/build" >> /var/lib/dkms/drbd8/8.3.3/build/make.log 2>&1
make -C drbd clean KDIR=/lib/modules/2.6.31-14-generic/build
make: Entering directory `/var/lib/dkms/drbd8/8.3.3/build/drbd'
rm -rf .tmp_versions
rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c .*.flags .depend .kernel*
make: Leaving directory `/var/lib/dkms/drbd8/8.3.3/build/drbd'
DKMS: build Completed.
See.
Now we can go together and complain to the package maintainers.
hth,
> Just cd'ing into the sources, and doing the make, should work fine.
>
> if you have to do the make yourself anyways,
> I'd suggest using the 8.3.5 tarball, though.
--
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com
DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
__
please don't Cc me, but send to list -- I'm subscribed