From a2afd16cc5bf7dd7ac3829faeeeb06f4d3bb2afb Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Sun, 8 May 2005 20:33:22 +0000 Subject: [PATCH] * README.modules: Add documentation for module-assistant and recommend it when using Debian kernels. Mention divergences from upstream in module naming. (Closes: #253168) Emphasize that the kernel source tree used for make-kpkg must be identically configured to the kernel the module will be used with. --- debian/README.modules | 98 ++++++++++++++++++++++++++++++++++--------- debian/changelog | 5 +++ debian/control | 2 +- 3 files changed, 84 insertions(+), 21 deletions(-) diff --git a/debian/README.modules b/debian/README.modules index d2c8e0168..421da8384 100644 --- a/debian/README.modules +++ b/debian/README.modules @@ -1,35 +1,93 @@ - Building Kernel Modules ----------------------------------------- + Building Kernel Modules + ----------------------- +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: - The easiest way to get AFS modules is to install prebuilt modules. -Fore example if you are running kernel 2.2.18 you might try + apt-get install openafs-modules-2.4.27-2-686-smp -apt-get install openafs-modules-2.2.18 +Pre-built modules are not provided with Debian, but many organizations +that use OpenAFS build their own and provide them locally. -If this doesn't work, then you will need to build your own modules. -This means having kernel sources available. You should install a -kernel sources package and untar it in /usr/src. Then, install +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 + apt-get install openafs-modules-source -Next, unpack openafs-modules-source +Next, unpack openafs-modules-source: -cd /usr/src -tar xzf openafs.tar.gz + 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. +.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. Finally build the modules +/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 configure -make-kpkg modules_image + make-kpkg modules_image You may need to use the --append_to_version switch to add version suffixes -like -686 if your modules install into /lib/modules/version-686. -Ignore any errors about genchanges.sh failing. An openafs-modules deb -should be created. Use dpkg -i to install this version. +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 version. diff --git a/debian/changelog b/debian/changelog index 6d1bbdafe..0fdced114 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,11 @@ openafs (1.3.81-5) unstable; urgency=low or ext3 and that XFS and ReiserFS will not work. upserver and upclient are now provided. Provide some information about why kaserver is not provided. (Closes: #249315) + * README.modules: Add documentation for module-assistant and recommend + it when using Debian kernels. Mention divergences from upstream in + module naming. (Closes: #253168) Emphasize that the kernel source + tree used for make-kpkg must be identically configured to the kernel + the module will be used with. * Overhaul the module build rules. - Use debhelper to build the module binary package. - Let debhelper handle the module postinst and prerm control scripts. diff --git a/debian/control b/debian/control index 4c95a142d..c55adf1cf 100644 --- a/debian/control +++ b/debian/control @@ -76,7 +76,7 @@ Description: The AFS distributed filesystem- development libraries Package: openafs-modules-source Priority: extra -Depends: bison, flex, debhelper (>= 4.0.0), libpam0g-dev, libncurses5-dev, kernel-package, comerr-dev +Depends: bison, flex, debhelper (>= 4.0.0), libpam0g-dev, libncurses5-dev, kernel-package | module-assistant, comerr-dev Architecture: all Description: The AFS distributed filesystem- Module Sources AFS is a distributed filesystem allowing cross-platform sharing of -- 2.39.5