[ENBD] Re: ENBD on Debian 2.6.7/8 kernel
P.T. Breuer
ptb at it.uc3m.es
Tue Sep 28 14:51:10 MDT 2004
In article <4159BA9C.4020409 at ociweb.com> you wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> | Do not use the ioctl module if it gives problems. Simple as that.
> | Test without it.
> I did. For 2.4.31. The same basic things happened, except
2.4.31 is not tested with the 2.6.7 kernel patch (but it should work,
since the patch is the same as the 2.6.3 patch, to all intents and
purposes). Please use 2.4.32 and tell me how it works in make test,
in the basic configuration, after giving me the compiler and compile
options used.
> /proc/nbdinfo said the devices were open, but I kept getting Buffer
I can't work without the precise output.
> I/O errors whenever I attempted to do anything with the devices
> (which, I guess might not be the same basic errors).
That's serious, and needs investigating, but it's not "starting from a
solid basis". You must compile the module and the userspace daemons and
run "make test" (or enbd-maketest, which is the same thing standalone).
And I will only look at 2.4.32 I think, since it is the one that is
current.
> | The instructions say to run "make config all". I have never in my
> | life run dpkg-buildpackage ... I have often run "make -f
> | debian/rules binary", and I have sometimes run "debuild".
> Will these steps create .deb packages?
Yes. But that is not your aim - the aim is to build something that
works. You can package it later if it does!
> | believe you! How about "make config all"? After editing the
> | Makefile to point it at the correct kernel source.
> I'm pretty sure dpkg-buildpackage is one of if not the standard way to
> build .deb packages from a source tarball.
I believe you, but it's hardly of interest (it's like telling me
"hairspray is the standard way to laquer a hairstyle" - yeah, great,
but so what, if what you have there is a bald pate? And that's the
situation - I don't care how it packages, I care how it IS. And to find
how it is, I would want you to compile with "make config all" after
setting LINUXDIR appropriately).
> | All looks fine there. Isn't there any more? If that's all it's
> | not unhappy in the kernel. /proc/nbdinfo will say.
> /proc/nbdinfo always says devices a-p are closed. Nothing more, ever.
That's consistent with the observation that the initial handshake never
completed. So it doesn't look like a kernel thing since it never gets
as far as using the kernel - try the same daemons on a 2.4 platform to
confirm.
> |> nbd/alarm 2676: <# 131> unchain_current_ualarm signalling ALRM
> |> for late (-334.411163s) alarm 0xbfffe000 <-- at this point, the
> |> enbd-client processes are dead; /var/run/enbd-*
> |
> |
> | Looks like you have alarm problems. The timings are way off. But
> | anyway, handshake never completed - it timed out. This has symptoms
> | of compiler problems.
> |
> | What do you mean by "dead"?
> ps -ax | grep enbd reveals nothing and /var/run/enbd-*.pid files are
> left behind.
Well, that's more than dead, that's "executed exit". Sounds fine.
> I found out how to use a specific compiler with make-kpkg:
> MAKEFLAGS="CC=gcc-2.95" make-kpkg ...
> so, I will try it with that prepended to the kernel build.
> | Then make sure that the basic enbd_module and server and client
> | work fine. When you are satisfied that they do, move on to adding
> | the ioctl module. Do not "mix and match".
> |
> | If the basic setup does not work, then make sure you tell me about
> | it! In great detail. I will want you to run "make test".
> I guess it makes sense that enbd-maketest just returned immediately, then.
No. It doesn't. It's a shell script that does things. But it only
comes with 2.4.32, not 2.4.31. If I run it, it pauses and goes into a
loop trying to find modules to load (I haven't got any in a place it
can find).
betty:/usr/oboe/ptb/lang/c/nbd/nbd-2.4.32% nbd/enbd-maketest
grep: /proc/nbdinfo: No such file or directory
Error inserting '/tmp/enbd.o': -1 Operation not permitted
.Error inserting '/tmp/enbd.o': -1 Operation not permitted
.Error inserting '/tmp/enbd.o': -1 Operation not permitted
.Error inserting '/tmp/enbd.o': -1 Operation not permitted
.Error inserting '/tmp/enbd.o': -1 Operation not ..
And I am running it as a user too, so it's not surprising that it can't
load modules.
Sounds like you need to run "sh -x enbd-maketest", among other things!
If it exits, it is because of:
[ -d "$BUILD" ] || exit 1
[ -d "$VPATH" ] || exit 2
And if you dn't supply any args,
BUILD="${BUILD-/tmp}"
VPATH="${VPATH-`pwd`/nbd}"
Since I don't believe that you don't have /tmp, let's suppose you
don't have ./nbd, which implies you are not in the directory created by
untarring the archive.
-s, --bindir dir
dir is where the enbd-maketest script is to be
found, by default /usr/sbin. VPATH supplies this
value in the absence of a switch.
Uh, OK. I guess it lied about the default. How about me trying to look
for VPATH?
Peter
More information about the ENBD
mailing list