Scott Tam <defect.me,AT,gmail,DOT,com>|
Re: Syntax error near unexpected token `UTS_RELEASE,'|
"Dick St.Peters" <stpeters,AT,NetHeaven,DOT,com>|
Tue, 8 Nov 2005 10:39:44 -0500|
a=rsa-sha1; c=nowsp; d=netheaven.com; s=saint; t=1131464385; h=X-DomainKeys: DomainKey-Signature:Received:Message-ID:Date:From:To:Cc:Subject: In-Reply-To:References:X-Mailer; b=g0WM9ND7AAKi5v8OTS3v20vr/3qIAYnpbayTEH8GGqTJM2YJdf4yuU2oIq1UCDTgB05LO3CymKDSUZAUMxSUgA==|
a=rsa-sha1; s=saint; d=netheaven.com; c=nofws; q=dns;h=received:message-id:date:from:to:cc:subject:in-reply-to:references:x-mailer;b=YpHhGTMpfblUr9nZ4KTBHHkF69WI+Ovudy1SD0ksCB2xbCRhwxRHXoONM5xJzcN+M6dpMu3yRWyUxKgGEwoqZA==|
Scott Tam writes:
> I thought 1.6 was the latest release because i couldn't see any later
1.6.0 is the latest release. The configure you're using appears to be
from the 1.6.0pre1 pre-release version
> I've specified the source directory but i added '-2.4'. i hope i've
> changed it on the right line! I haven't specified the build directory
> because i wasn't sure where it is. (plz don't laugh)
The conventional place for a kernel build directory is
/usr/src/linux. However, the stock kernel installation procedure
creates a symlink /lib/modules/`uname -r`/build pointing to the actual
build directory from which the kernel is installed.
> I did "cat /usr/include/linux/version.h"
> and here is the result:
> #define UTS_RELEASE "2.4.20"
> #define LINUX_VERSION_CODE 132116
> #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
/usr/include/linux/version.h is the userland version.h. The one you
want would normally be /usr/src/linux/include/linux/version.h.
It used to be that the kernel's header files were made available to
userspace programs by copying /usr/src/linux/include/linux to
/usr/include/linux (or by symlinking). For reasons too complex to go
into here, the kernel's include files are no longer suitable for use
by user space programs and are considered private to the kernel.
However, to accomodate the large amount of userspace code that
expects to find various kernel header files in /usr/include/linux,
some of the kernel header files must exist there in a form suitable
for use by userspace code. A lot of that code is in GLIBC, so these
are often called the "GLIBC kernel headers".
In the GLIBC kernel headers, the UTS_RELEASE entry is just a
placeholder. Userspace code isn't supposed to depend on what the
kernel release is, so there's no need to keep the GLIBC kernel
header's UTS_RELEASE in sync with the kernel's UTS_RELEASE. Your
version.h is the one that came with Fedora Core 1, for which the
UTS_RELEASE in the kernel's version.h was "2.4.22-1.2115.nptl".
CIPE builds a kernel module - a piece of the kernel, and it needs the
real kernel headers.
> The whole time I should be only configuring 'configure.in' file right?
'configure.in' is what autoconf uses to build 'configure'. Your cipe
source should have come with a pre-built 'configure', and you should
not have to run autoconf yourself.
> Yes i know its tough, but i have no choice. I have to work with Linux.
It's not linux that's tough. You wouldn't have a Windows novice begin
with building a Windows driver.
Unless you absolutely must use cipe, I would suggest trying OpenVPN,
which has equivalent performance and is a lot easier to build. It
does not require building a kernel module. Linux has matured a lot
since cipe was designed, and the hoops cipe had to jump through are no
Dick St.Peters, stpeters,AT,NetHeaven,DOT,com