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 ------------------- 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 modprobe examines. /lib/modules/current/extra/misc comes to mind, or perhaps /lib/modules/`uname -r`/extra/misc (depending on your distribution). You need to add this path to your /etc/modules.conf (or /etc/conf.modules, which file is used depends on your distribution): (modules-2.0.0, modutils-2.3.x): path[misc]=/lib/modules/current/extra/misc (modutils-2.1.x): path=/lib/modules/current/extra Do always a `depmod -a' after changing either your configuration file or 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 uses kmod); this command is probably not even needed for kerneld, so don't worry about it too much). 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!