2002-04-20 03:27:46 +00:00
|
|
|
Installing Modules
|
|
|
|
==================
|
|
|
|
|
|
|
|
For 2.4+ kernels that use the new directory structure
|
|
|
|
under /lib/modules/x.y.z/ ,
|
|
|
|
'make install' will install modules in the subdirectories
|
|
|
|
kernel/drivers/i2c and kernel/drivers/sensors. This puts
|
|
|
|
the modules in the same location as a kernel
|
|
|
|
'make modules_install' does so that there will not
|
|
|
|
be duplicate modules.
|
|
|
|
|
|
|
|
For older kernels, 'make install' will install the modules
|
|
|
|
in the subdirectory misc .
|
|
|
|
|
|
|
|
If the kernel headers for the kernel you are running are
|
|
|
|
not in /usr/src/linux, you should do
|
|
|
|
'make install LINUX=/path-to-linux-source', otherwise
|
|
|
|
the modules may get installed into the wrong
|
|
|
|
kernel version directory under /lib/modules.
|
|
|
|
|
|
|
|
If 'make install' fails, particularly on Mandrake kernels,
|
|
|
|
see FAQ #3.8. (fix MODPREF in the Makefile).
|
|
|
|
|
|
|
|
After 'make install', you must do 'depmod'.
|
|
|
|
|
|
|
|
If you have symbol errors, do 'depmod -e' to identify
|
|
|
|
the particluar modules with errors. Then see #3.9 in
|
|
|
|
the FAQ for additional assistance.
|
|
|
|
|
|
|
|
For details on options that apply to most modules, see
|
|
|
|
doc/chips/MODPARMS. For details on options specific to particular
|
|
|
|
modules, see the documentation in doc/chips/ and doc/busses/.
|
|
|
|
|
|
|
|
|
|
|
|
Older documentation
|
|
|
|
-------------------
|
1999-04-22 13:06:24 +00:00
|
|
|
|
1998-12-02 18:31:21 +00:00
|
|
|
The hardcore way is to insmod each of them by hand. This is not very
|
|
|
|
practical, though. It is better to install them in a subdirectory that
|
1999-11-20 19:23:34 +00:00
|
|
|
modprobe examines. /lib/modules/current/extra/misc comes to mind, or
|
|
|
|
perhaps /lib/modules/`uname -r`/extra/misc (depending on your distribution).
|
1998-12-02 18:31:21 +00:00
|
|
|
You need to add this path to your /etc/modules.conf (or /etc/conf.modules,
|
|
|
|
which file is used depends on your distribution):
|
1999-11-20 19:23:34 +00:00
|
|
|
(modules-2.0.0, modutils-2.3.x):
|
1998-12-02 18:31:21 +00:00
|
|
|
path[misc]=/lib/modules/current/extra/misc
|
|
|
|
(modutils-2.1.x):
|
|
|
|
path=/lib/modules/current/extra
|
1999-11-20 19:23:34 +00:00
|
|
|
Do always a `depmod -a' after changing either your configuration file or
|
1999-04-22 13:06:24 +00:00
|
|
|
changing a module in one of the module directories; you also need to do
|
|
|
|
a 'killall -HUP kerneld' if you still use kerneld (kernel 2.2.x usually
|
1999-11-20 19:23:34 +00:00
|
|
|
uses kmod); this command is probably not even needed for kerneld, so
|
|
|
|
don't worry about it too much).
|
1998-12-02 18:31:21 +00:00
|
|
|
|
|
|
|
Now you can do 'modprobe lm78', and all dependent modules are loaded
|
|
|
|
automatically. You could, of course, add this statement (and related
|
|
|
|
statements for other drivers) somewhere in your rc files. But, most
|
|
|
|
distributions are set up to load automatically all files in the
|
|
|
|
'boot' directories on system start, so why not use this? The best
|
|
|
|
way to do this is to create directory /lib/modules/boot, and to
|
|
|
|
put *links* to the real modules in there. Why links? Well, by linking
|
|
|
|
to /lib/modules/current/whatever, this will function for any kernel
|
|
|
|
(provided /lib/modules/current is correctly set up to point to the
|
|
|
|
current kernel). So:
|
|
|
|
mkdir -p /lib/modules/boot
|
|
|
|
ln -s ../current/extra/misc/lm78.o /lib/modules/boot/lm78.o
|
|
|
|
# etc.
|
|
|
|
|
|
|
|
It is also possible to specify default options, that you would normally
|
|
|
|
enter at the insmod command, in the configuration file. The syntax is
|
|
|
|
as follows:
|
|
|
|
options i2c-core debug=2
|
|
|
|
|
|
|
|
With the above, the managing of all those modules is suddenly no problem
|
|
|
|
at all!
|