[Drbd-dev] make KDIR=... kernel-patch fails
Andreas John
lists at aj.net-lab.net
Fri Mar 9 23:16:23 CET 2007
Hello,
I try to patch drbd into the kernel. IIRC this is not longer possible
since late 0.7.x released (>=.22 ??).
Currently even on 8.0.0 and 8.0.1 the helper scrips fails on a 2.6.20.1:
----
buildbox-etch:/usr/src/linux-vserver/linux-2.6.20.1/drbd-8.0.1# make
KDIR=/usr/src/linux-vserver/linux-2.6.20.1 kernel-patch
make -C drbd drbd_buildtag.c
make[1]: Entering directory
`/usr/src/linux-vserver/linux-2.6.20.1/drbd-8.0.1/drbd'
make[1]: Leaving directory
`/usr/src/linux-vserver/linux-2.6.20.1/drbd-8.0.1/drbd'
set -o errexit; \
kbase=$(basename /usr/src/linux-vserver/linux-2.6.20.1); \
d=patch-$kbase-drbd-8.0.1; \
test -e $d && cp -fav --backup=numbered $d $d; \
bash scripts/patch-kernel /usr/src/linux-vserver/linux-2.6.20.1
. > $d
rm: cannot remove `linux-2.6.20.1-drbd/drivers/block/drbd/mempool*': No
such file or directory
make: *** [kernel-patch] Error 1
-----
I can supress the error by patching two lines in the
scripts/patch-kernel script:
-------
--- scripts/patch-kernel.sav 2007-02-25 16:25:42.000000000 +0100
+++ scripts/patch-kernel 2007-02-25 16:26:02.000000000 +0100
@@ -100,9 +100,10 @@
cp -a $DRBD/drbd/Makefile-2.$KDIR_PATCHLEVEL $DRBD_SUB/Makefile
# remove some backports
-test "$KDIR_PATCHLEVEL" = 6 && rm $DRBD_SUB/mempool*
+# remove some backports
+test "$KDIR_PATCHLEVEL" = 6 && if [ -e $DRBD_SUB/mempool* ]; then rm
$DRBD_SUB/mempool*; fi
grep "HLIST_HEAD_INIT" $KERNEL/include/linux/list.h >/dev/null &&
- rm $DRBD_SUB/hlist.h
+ if [ -e $DRBD_SUB/hlist.h ]; then rm $DRBD_SUB/hlist.h; fi
# disable __arch_um__ to_virt() hack
sed -e 's/^#ifdef __arch_um__/#if 0/' \
---------
The generated patch applies fine, but when compiling the kernel with
drdb as module, the compile runs fails. I assume some part of the patch
is missing.
Kernel Hacking is out-of-scope of my skills, so I simply report here
what I found out.
rgds,
Andreas
More information about the drbd-dev
mailing list