Differences between current version and revision by previous author of HowToModules.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Friday, October 29, 2004 10:07:46 am | by StuartYeates | |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:07:07 am | by perry | Revert |
@@ -1,470 +1 @@
-Linux Kernel Modules Installation HOWTO
-!!!Linux Kernel Modules Installation HOWTO
-!
-
- rhw@bigfoot.com
-
-
-
-__Revision History__Revision 1.0Unknown dateRevised by: rhwInitial Release
-
-
-
-
-
- Describes the installation of Linux kernel modules.
-
-
-
-
-
-
-----; __Table of Contents__; 1. Purpose of this Document; 2. Pre-requisites; 3. Compiler Speed-up; 4. Recompiling the Kernel for Modules: ; 5.1. Configuring Debian or !RedHat for Modules; 5.2. Configuring Slackware for Modules; 5.3. Configuring Other Distributions for Modules
-!!!1. Purpose of this Document
-
- My experience with Linux and modules has been that the existing
-documents fail to provide a satisfactory explanation as to how to
-successfully set up Linux with modules configured and working. The
-procedure explained in this document has been successfully used several
-times, both on my own system and over the Internet to give directions
-to somebody trying to get some feature to work which requires a driver
-supplied only in module form.
-
-
-
-
- My own system runs from a !RedHat 4.1 distribution of Linux, and it was
-on this setup that I developed the procedure. I have since successfully
-installed it on systems running from various Slackware distributions, and
-on one system running from a Debian distribution, and the necessary
-procedure to correctly configure modules under Linux in all three is
-documented herein.
-
-
-
-
-
-
-
-
-
- I have recently used the same procedure with !RedHat 4.2, but with
-inconsistent results on apparently identical systems. I have not yet
-determined what the problem is, so can make no guarantees at this stage
-as to whether or not it will work on your system.
-
-
-
-
- This document is distributed under the terms of the GNU Free Documentation License.
-You should have received a copy along with it. If not, it is available from
-http://www.fsf.org/licenses/fdl.html.
-
-
-----
-!!!2. Pre-requisites
-
-
-
-
-*
-
- Before the steps in this document can be applied, the reader must
-have a working Linux installation in which one can get to the Linux prompt
-as user ''root'' since the majority of the steps involved
-can only be undertaken by the said user.
-
-
-
-*
-*
-
- The existing kernel may be compiled either to use modules or not
-to use modules, and can even display error messages during the boot-up
-procedure as a result of modules being configured which aren't available
-at the moment, providing the above condition is met.
-
-
-
-*
-*
-
- The source tree for the current kernel is assumed to be found
-rooted at /usr/src/linux and that is also
-assumed to be the current directory throughout this document
-at the start of any sequence of commands to be issued.
-
-
-
-*----
-!!!3. Compiler Speed-up
-
- If your machine has 16 or more Megabytes of RAM, there is a useful
-speed-up that can be done, which is to permit the kernel to compile two or
-modules in parallel. This will increase the load on the machine whilst the
-kernel is being recompiled, but will reduce the time during which the
-compilation will be taking place.
-
-
-
-
- Before you can use this method, you need to check the amount of RAM
-present in your machine, as if you set this too high, the compilation will
-actually slow down. Experience has shown that the optimum value depends on
-the amount of RAM in your system according to the following formula, at
-least for systems with up to 32 Megabytes of RAM, although it may be a
-little conservative for systems with larger amounts of RAM:
-
-
-
-
- N =
[[RAM in Megabytes
] / 8 + 1
-
-
-
-
- For the benefit of those with a dislike of math, the values for the
-common amounts of RAM are as follows:
-
-
-
-
-
-
-
-__Table 1. Sample Table__
-
-
-RAM !SizeValue to Use16 Megs324 Megs432 Megs540 Megs648 Megs756 Megs864 Megs980 Megs1196 Megs13112 Megs15128 Megs17
-
-
-
-
- When you have decided on the correct number, edit the file
-/usr/src/linux/Makefile and find the line that currently reads:
-
-
-
-MAKE=make
-
-
- Replace it with one reading:
-
-
-
-MAKE=make -j N
-
-
- where N is the number determined above.
-
-
-----
-!!!4. Recompiling the Kernel for Modules
-
- The kernel can be reconfigured to use modules for everything other than
-the file system mounted as root (in most cases, this is the ext2 file
-system).
-
-
-
-
- However, there are certain items that appear to be difficult to set up
-properly as modules, so I would recommend the following be compiled into
-the kernel:
-
-
-
-
-
-
-
-*
-
- Ethernet hardware drivers.
-
-
-
-*
-*
-
- SCSI CD-ROM drivers.
-
-
-
-*
-
- On the other hand, there are certain driver combinations that
-''ONLY'' work as modules, especially combinations
-of two or more of the following group:
-
-
-
-
-
-
-
-*
-
- A Parallel Printer,
-
-
-
-*
-*
-
- A Parallel Port drive, such as the ''IOMEGA'' !ZipDrive or
-!JazzDrive, or the ''!BackPack'' CD-ROM drive, and
-
-
-
-*
-*
-
- The ''PLIP'' Daemon.
-
-
-
-*
-
- You will need to decide what you are compiling into the kernel, and
-what as modules, but should take the above points into consideration. The
-actual choices are made during the compilation, by the second of the
-following sequence of instructions:
-
-
-
-cd /usr/src/linux
-make menuconfig
-make dep clean modules modules_install zImage
-
-
- Having done that, the module dependencies need to be mapped out. This
-is done with the following command:
-
-
-
-depmod -a
-
-
- The new kernel now needs to be inserted in the boot chain. I am
-assuming the reader is using LILO for this purpose, since this is the only
-loader I have any experience with.
-
-
-
-
- I recommend that one does NOT automatically insert the newly compiled
-kernel as the default Linux kernel since if it should fail, it is then
-extremely difficult to recover one's Linux setup without doing a complete
-reinstallation, which is not to be recommended. For this reason, I have
-the following entry in my /etc/lilo.conf file:
-
-
-
-image=/usr/src/linux/arch/i386/boot/zImage
-label=new
-alias=n
-read-only
-vga=ask
-optional
-
-
- This entry says that there is an OPTIONAL boot option (which will be
-ignored if the image in question does not exist) which boots the file
-/boot/newlinux if selected, and allows one to select
-the video mode it is to be booted in.
-
-
-
-
- Assuming the existence of the above entry in /etc/lilo.conf
-the revised kernel is already correctly located at the end of compilation, and
-it can be installed via the following command:
-
-
-
-lilo
-
-
- Having done that, the reader needs to follow the further steps relevant
-to their selected distribution, as follows:
-
-
-----
-!!5.1. Configuring Debian or !RedHat for Modules
-
- Prior to carrying out the steps listed
here, the steps listed in
-"''Recompiling the Kernel for Modules''"
-are assumed to have been carried out.
-
-
-
-
- The Debian and !RedHat distributions have identical boot procedures, so
-also have identical procedures for configuring modules into them.
-
-
-
-
-
-
-
-#
-
- Having logged in as root, use your favourite text editor to create
-a new file called /etc/rc.d/init.d/modules.init
-with the following contents therein:
-
-
-
-# Modules initialisation.
-#
-# Start up the module auto-loading daemon.
-/sbin/kerneld
-# Mount all currently unmounted auto-mounted partitions.
-/sbin/mount -a
-
-#
-#
-
- Having created the above file, perform the following steps whilst
-logged on as root:
-
-
-
-cd /etc/rc.d
-chmod 755 init.d/*
-cd rc3.d
-ln -s ../init.d/modules.init 05modules.init
-
-#
-
- The system can now be rebooted, and on doing so, it will be found that
-modules are fully implemented
-
-
-----
-!!5.2. Configuring Slackware for Modules
-
- Prior to carrying out the steps listed here, the steps listed in
-"''Recompiling the Kernel for Modules''"
-are assumed to have been carried out.
-
-
-
-
- The file /etc/rc.d/rc.M needs to be edited as follows:
-
-
-
-
-
-
-
-#
-
- Around line 18, there is a section reading as follows:
-
-
-
-# Screen blanks after 15 minutes idle time.
-/bin/setterm -blank 15
-
-
- Immediately after this, insert the following paragraph, with the usual
-blank lines either side of it:
-
-
-
-# Load the kernel module auto-loader.
-/sbin/kerneld
-
-#
-#
-
- About 12 lines further down is the following:
-
-
-
-# if there is no /etc/HOSTNAME, fall back on this default:
-
-
- Immediately prior to this, insert the following paragraph, again with the
-usual blank lines either side of it:
-
-
-
-# Mount remaining unmounted auto-mount drives.
-/sbin/mount -a
-
-#
-
- When those changes have been made, save the file.
-
-
-
-
- No further modifications are required for Slackware.
-
-
-----
-!!5.3. Configuring Other Distributions for Modules
-
- Prior to carrying out the steps listed here, the steps listed in
-"''Recompiling the Kernel for Modules''"
-are assumed to have been carried out.
-
-
-
-
- The precise procedure for other distributions has not been ascertained,
-but is probably one of the above. To determine which one, display a
-directory of the contents of the /etc/rc.d directory,
-as follows:
-
-
-
-cd /etc/rc.d
-ls -l *.d rc.*
-
-
- From this resulting display, you can select one of the following three
-options:
-
-
-
-
-
-
-
-#
-
- If this list includes a directory named init.d and some
-directories with names matching rc?.d where the
-question mark is replaced by single digits, and does ''NOT''
-include a file with the name rc.M, that distribution can
-be configured for modules by following the procedure listed under the title
-"''Configuring Debian or !RedHat for Modules''".
-
-
-
-#
-#
-
- If this list does not include a directory named init.d but
-includes a file named rc.M then that distribution can
-be configured for modules by following the procedure listed under the title
-"''Configuring Slackware for Modules''".
-
-
-
-#
-#
-
- If this list matches neither of the above criteria, then the
-distribution has a boot script not covered by this !HowTo. In that case,
-you are invited to contact the author of this document for advice
.
-
-
-
-#
+Describe
[HowToModules
] here.