1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
Building Kernel Modules
Introduction
The easiest way to get AFS modules is to install prebuilt modules. For
example, if you are running kernel 2.4.27-2-686-smp, you might try:
apt-get install openafs-modules-2.4.27-2-686-smp
Pre-built modules are not provided with Debian (building and maintaining
them in Debian proper poses too many problems), but many organizations
that use OpenAFS build their own and provide them locally.
If this doesn't work, you will need to build your own modules. There
are two methods for doing this.
When following either method, be aware that the Debian package creates a
module named openafs, not libafs as is used by upstream. It also
prefers not to add the .mp extension for modules built for SMP kernels;
the indication of whether the module is for an SMP kernel should go into
the package name via something like --append_to_version, not into the
file name of the module.
module-assistant
This method is the best one to use when using the kernels that come with
Debian, since module-assistant knows how to get the right header files
to build modules for your currently running kernel.
First, install module-assistant and then prepare the kernel headers and
install openafs-modules-source:
apt-get install module-assistant
module-assistant prepare openafs-modules
(If you want to build modules for a different kernel than your currently
running one, pass the -l flag to module-assistant. See the man page.)
module-assistant may be able to find the right packages itself or it may
tell you to install particular packages. Once you've finished with
that, build the module with:
module-assistant auto-build openafs-modules
You may prefer to pass module-assistant the -t flag to get more
conventional output. If everything works correctly, the openafs-modules
deb should be created in /usr/src. You can use dpkg -i to install it.
module-assistant will take care of naming the openafs-modules package
correctly so that it matches the name of the kernel-image package and
installs its modules into the correct directory.
make-kpkg
This method works well when you're also building your own kernel, rather
than using the pre-packaged Debian one.
Install a kernel source package and untar it in /usr/src. Then, install
openafs-modules-source.
apt-get install openafs-modules-source
Next, unpack openafs-modules-source:
cd /usr/src
tar xzf openafs.tar.gz
Now, change into your kernel source tree. You should then create a
.config file; the easiest way to do this is to run make menuconfig or to
copy in a kernel configuration from the same version of the kernel.
Debian kernel packages store a copy of their kernel configuration in
/boot/config.version_number.
The kernel configuration needs to be identical to the configuration that
produced the kernel that you're using. Ideally, you would build the
kernel image you're going to use with make-kpkg kernel_image and install
that along with the module image, although as long as the configuration
is identical, you may be able to get away with using a pre-built kernel.
(A better approach, if you're using pre-built kernels, may be to use
module-assistant as described above.)
Finally, build the modules:
make-kpkg modules_image
You may need to use the --append_to_version switch to add version
suffixes like -686 or -smp to match your kernel and install the OpenAFS
module into a directory like /lib/modules/version-686. Be aware that
the Debian OpenAFS packages build either a regular module or an SMP
module, not both, so the generated package will only work with a kernel
with the same SMP configuration.
An openafs-modules deb should be created in /usr/src. Use dpkg -i to
install this package.
|