| 1 | | ============================================================================= |
| 2 | | INSTALLATION - SHORT INSTRUCTIONS - NON-KERNEL INSTALLATION |
| 3 | | ============================================================================= |
| 4 | | |
| 5 | | - Make sure you have a recent version of the i2c package compiled |
| 6 | | and installed properly. |
| 7 | | - make (ignore 'no such file or directory' warnings) |
| 8 | | - (as root) make install |
| 9 | | - (as root) prog/mkdev/mkdev.sh (makes the devices in /dev) |
| 10 | | - (as root) prog/detect/sensors-detect (determines installed hardware) |
| 11 | | - Place the 'modprobe' commands output by sensors-detect in a |
| 12 | | boot file like /etc/rc.d/rc.multi. |
| 13 | | Make sure it is after 'depmod -a -e' is run. |
| 14 | | - After those commands, put the line 'sensors -s' in the boot file |
| 15 | | to initialize the sensors at boot time |
| 16 | | - Place the lines output by sensors-detect in the module |
| 17 | | configuration file /etc/conf.modules or /etc/modules.conf |
| 18 | | - Reboot |
| 19 | | - Verify correct installation of modules at boot time |
| 20 | | - Use the command 'sensors' to check sensor status. |
| 21 | | |
| 22 | | |
| 23 | | ============================================================================= |
| 24 | | ============================================================================= |
| 25 | | |
| 26 | | Please read this file thoroughly before you try to install and run things. It |
| 27 | | will safe you many headaches. Installation is not really difficult, but there |
| 28 | | are a few pitfalls. |
| 29 | | |
| 30 | | ALWAYS READ THE `BUGS' FILE! This file contains a list of known |
| 31 | | incompatibilities with this package. Most are highly kernel-dependent and |
| 32 | | usually not fatal, but still. |
| 33 | | |
| 34 | | COMPILATION AND INSTALLATION |
| 35 | | ============================ |
| 36 | | |
| 37 | | Basic installation is uncomplicated. Run `make all', followed by an optional |
| 38 | | `make install'. Everything is compiled using the Makefile in the root of |
| 39 | | this package. |
| 40 | | |
| 41 | | You need flex and bison (reportedly a version newer than 1.22). You must |
| 42 | | also make sure you have all kernel headers installed properly, including |
| 43 | | the ones created during the kernel compilation. Some of the additional |
| 44 | | programs in the prog/ subdirectory need Perl and GAWK to run, but you |
| 45 | | don't need them to use this package. And you need a fully working compilation |
| 46 | | environment, of course; the program should compile against both libc5 |
| 47 | | and glibc2. Like always, we recommend gcc-2.7.2.3 as the compiler for |
| 48 | | kernel modules, but 2.8.1 and any non-buggy egcs version will very |
| 49 | | probably work too. The modules in this package should work with any 2.0, |
| 50 | | 2.1 or 2.2 kernel. |
| 51 | | |
| 52 | | Some interesting Makefile variables: |
| 53 | | |
| 54 | | * SMP |
| 55 | | This must be set to 1 if your kernel was compiled with SMP set to 1. There |
| 56 | | is a sort of magic invocation which tries to check this; it will fail if |
| 57 | | you do not have the correct kernel tree in /usr/src/linux. If you set it, |
| 58 | | a `-D__SMP__' argument will be added to all module compiles. |
| 59 | | * MODVER |
| 60 | | This must be set to 1 if your kernel was compiled with CONFIG_MODVERSIONS |
| 61 | | enabled. There is some magic which tries to retrieve this information |
| 62 | | from /usr/include/linux/config.h and /usr/include/linux/autoconf.h. |
| 63 | | * I2C |
| 64 | | If you already have Simon Vogl's i2c package installed, you may not have |
| 65 | | to compile the version included in this package. In that case, check |
| 66 | | the file i2c/MODIFICATIONS in this package to see what versions are |
| 67 | | safe. |
| 68 | | * WARN, DEBUG |
| 69 | | These options should only be needed if you are an active developer of |
| 70 | | this package. |
| 71 | | * PREFIX (/usr/local) |
| 72 | | The prefix which is added to most directory locations below. |
| 73 | | * MODDIR (/lib/modules/extra/misc) |
| 74 | | The directory where `make install' installs your modules. |
| 75 | | * ETCDIR (/etc) |
| 76 | | The directory where `make install' installs the example configuration file |
| 77 | | if none is found there. |
| 78 | | * LIBDIR ($(PREFIX)/lib) |
| 79 | | The directory where `make install' installs the shared and static libraries. |
| 80 | | * BINDIR ($(PREFIX)/bin) |
| 81 | | The directory where `make install' installs all executables. |
| 82 | | * SBINDIR ($(PREFIX)/sbin) |
| 83 | | The directory where `make install' installs all system programs (programs |
| 84 | | which can only be run by root). |
| 85 | | * INCLUDEDIR ($(PREFIX)/include) |
| 86 | | The base directory where `make install' installs your include files. |
| 87 | | Actually, SYSINCLUDEDIR ($(INCLUDEDIR)/linux) is used for kernel header |
| 88 | | files, and LIBINCLUDEDIR ($(INCLUDEDIR)/sensors) is used for library |
| 89 | | header files. |
| 90 | | * MANDIR ($(PREFIX)/man) |
| 91 | | The base directory where manual pages are installed. |
| 92 | | * MANOWN, MANGRP (root, root) |
| 93 | | Owner and group of installed manual pages |
| 94 | | |
| 95 | | Warning! In 2.2 and newer 2.1 kernels, there is support for I2C. This support |
| 96 | | is NOT compatible with this module! Actually, Simon Vogl's modules package |
| 97 | | (which IS compatible) is scheduled to replace the current support. If you |
| 98 | | actually use these modules, you have a problem; they can not coexist |
| 99 | | with Simon's modules. Theoretically, you should be able to replace |
| 100 | | the old modules in the kernel tree with the new stuff in our i2c directory, |
| 101 | | recompile the kernel, and then compile our modules with I2C=0. If you try |
| 102 | | this, please share the results with us! There have also been some rumors |
| 103 | | about the peaceful coexistence of both sets of modules, but others found |
| 104 | | some problems with it. |
| 105 | | |
| 106 | | Please make sure that /usr/include/linux and /usr/include/asm are symlinks |
| 107 | | into the kernel tree which corresponds with the kernel version you are using |
| 108 | | now (or more exactly, the kernel which you will use the compiled modules |
| 109 | | with). If the tree and the running kernel do not match, you will either |
| 110 | | be unable to insert the modules at all, or you can expect strange |
| 111 | | behaviour (probably leading to crashes). |
| 112 | | |
| 113 | | If you do a `make install', remember to do a `depmod -a' and a `ldconfig' |
| 114 | | to make sure the new modules and shared libraries are recognized. If you |
| 115 | | set PREFIX to anything different from `/' or `/usr' (it is `usr/local' |
| 116 | | by default), check whether /etc/ld.so.conf contains the library directory |
| 117 | | (like `/usr/local/lib') before you do the `ldconfig'. |
| 118 | | |
| 119 | | Do no worry about the `No such file or directory' warnings when you compile |
| 120 | | the package the first time. They are harmless. |
| 121 | | |
| 122 | | |
| 123 | | TESTING AND RUNNING |
| 124 | | =================== |
| 125 | | |
| 126 | | When you have compiled this package, you will be left with a lot of modules. |
| 127 | | It can be tricky to know which modules you need to insert. For this reason, |
| 128 | | I suggest you go the `modprobe' way, as described within doc/modules. |
| 129 | | |
| 130 | | If you just want to run a test without installing them, try the following: |
| 131 | | insmod i2c/i2c-core.o |
| 132 | | insmod kernel/smbus.o |
| 133 | | insmod kernel/i2c-proc.o |
| 134 | | insmod kernel/i2c-dev.o |
| 135 | | insmod kernel/sensors.o |
| 136 | | insmod kernel/busses/i2c-isa.o |
| 137 | | insmod kernel/busses/i2c-piix4.o # Or whatever SMBus controller you have |
| 138 | | insmod kernel/chips/lm78.o # Or whatever hardware monitoring chip you have |
| 139 | | Now you should have new directories under /proc/sys/dev/sensors and some files |
| 140 | | beginning with i2c in /proc/bus. |
| 141 | | |
| 142 | | If you have installed the modules, as described within doc/modules, you can |
| 143 | | do: |
| 144 | | modprobe i2c-isa && modprobe i2c-piix4 && modprobe lm78 && modprobe i2c-proc |
| 145 | | (the last is optional) from any directory to reach the same situation. |
| 146 | | |
| 147 | | But instead of doing any of the above things, please read doc/modules and |
| 148 | | do a `make install'. After that, you can run `sensors-detect'. This Perl |
| 149 | | program will detect all hardware available on your system, and tell you |
| 150 | | what drivers you need to insert. First check whether you have /dev/i2c-* |
| 151 | | files (at least 4 of them), and if not, create them by running `mkdev.sh' |
| 152 | | in directory prog/mkdev. |
| 153 | | |
| 154 | | Do not panic if some (or all) of the values in the /proc/sys/dev/sensors/*/* |
| 155 | | files do not seem to correspond to anything in earlier versions. Starting |
| 156 | | with lm_sensors version 2.1.0, these files will reflect the real chip |
| 157 | | measurements, without any scaling or adjusting. This is most obvious for |
| 158 | | the voltage files. You can specify the conversion factors in a configuration |
| 159 | | file. Use an application linked to libsensors to read these real values. |
| 160 | | |
| 161 | | This package contains a library of functions which can be used to |
| 162 | | access sensor data in a more programmer-friendly way. It will be built as |
| 163 | | both a shared and a static library, and installed in your LIB directory |
| 164 | | (normally /usr/local/lib). It needs a configuration file, which is usually |
| 165 | | called `sensors.conf', and can be placed in /etc, /usr/lib/sensors, |
| 166 | | /usr/local/lib/sensors, /usr/lib, or /usr/local/lib. |
| 167 | | |
| 168 | | Note that if you already have a config file, it is NOT overwritten! You |
| 169 | | may still want to do this by hand (`cp etc/sensors.conf.eg /etc/sensors.conf') |
| 170 | | as the example config file may be updated. |
| 171 | | |
| 172 | | Where version 1 of this package had the human-readable /proc/sensors file, |
| 173 | | this version includes a user-space program which gathers all data |
| 174 | | and displays it in a comparable format. This program is called `sensors'. |
| 175 | | Everybody can use it to read sensors values; only root can use it to |
| 176 | | set minimum and maximum values (using the `-s' switch). |
| 177 | | |
| 178 | | If you want to run `sensors' without installing the package, you must |
| 179 | | use the following command to make it able to find its shared library: |
| 180 | | (bash) export LD_LIBRARY_PATH=/WHEREVER/lm_sensors-2.X.Y/lib:$LD_LIBRARY_PATH |
| 181 | | (tcsh) setenv LD_LIBRARYPATH /WHEREVER/lm_sensors-2.X.Y/lib:$LD_LIBRARY_PATH |
| 182 | | Replace /WHEREVER/lm_sensors-2.X.Y with the base directory of the package |
| 183 | | source code. |
| 184 | | |
| 185 | | Please examine the files in the doc subdirectory for more information, |
| 186 | | especially about individual drivers. You can always mail us at |
| 187 | | <lm78@stimpy.netroedge.com>. Alternatively, consider useing the (free) |
| 188 | | support site at http://www.netroedge.com/~lm78/support.html. Good luck! |
| 189 | | |
| 190 | | |
| 191 | | USEFUL PROGRAMS |
| 192 | | =============== |
| 193 | | |
| 194 | | The prog subdirectory contains lots of useful programs, many of which are |
| 195 | | not installed. doc/progs contains some documentation for each of them. |
| 196 | | Most important are prog/mkdev/mkdev.sh, which creates /dev/i2c-* files, |
| 197 | | and prog/detect/sensors-detect, which tries to detect what adapters are |
| 198 | | present on your system. |
| | 1 | These are the installation instruction for the lm_sensors package. |
| | 2 | |
| | 3 | There are two ways in which you can compile and install this package. Each |
| | 4 | has its own strong points. They are: |
| | 5 | 1. Complete separate from kernel compilation |
| | 6 | This will generate a set of modules which can be inserted and removed |
| | 7 | as needed; nothing will be written into the kernel tree; |
| | 8 | 2. Patching of the kernel |
| | 9 | This will patch your kernel source tree. You must recompile your kernel |
| | 10 | to take advantage of this. But it makes it possible to compile drivers |
| | 11 | into the kernel itself, instead of having to add them as modules. |
| | 12 | YOU WILL STILL HAVE TO COMPILE THIS PACKAGE TO GET THE USERLAND UTILITIES! |
| | 13 | |
| | 14 | Each of these ways will be described below in detail. |
| | 15 | |
| | 16 | NOTE: OPTION 2 WILL CURRENTLY NOT WORK FOR 2.0 AND OLDER 2.1 KERNELS! |
| | 17 | |
| | 18 | NOTE: IN EACH CASE, YOU WILL HAVE TO GET AND INSTALL THE I2C PACKAGE FIRST! |
| | 19 | |
| | 20 | |
| | 21 | |
| | 22 | Installing the i2c package |
| | 23 | ========================== |
| | 24 | |
| | 25 | As of version 2.4.0 of lm_sensors, all i2c components are distributed in |
| | 26 | a separate package. There are install instructions in that package. If |
| | 27 | you want to use compilation option 2 (patching the kernel) for lm_sensors, |
| | 28 | you will have to use compilation option 3 (patching the kernel) for i2c |
| | 29 | too. If you want to use compilation option 1 (compiling as modules) for |
| | 30 | lm_sensors, you may use either compilation option 1 or 2 (compiling as |
| | 31 | modules) or compilation option 3 (patching the kernel for i2c). See the |
| | 32 | table below. |
| | 33 | |
| | 34 | LM_SENSORS |
| | 35 | I2C | option 1 (modules) option 2 (patch kernel) |
| | 36 | option 1 (modules) | YES NO |
| | 37 | option 2 (modules) | YES YES |
| | 38 | option 3 (patch kernel) | YES YES |
| | 39 | |
| | 40 | |
| | 41 | If you use compilation option 1 (compiling as modules) for lm_sensors, you |
| | 42 | will have to make very sure the correct i2c header files are found. If you |
| | 43 | get weird compilation errors, this is almost certainly going wrong. The |
| | 44 | i2c header files are in a i2c subdirectory of either /usr/local/include |
| | 45 | (i2c compilation option 1) or /usr/src/linux*/include (i2c compilation |
| | 46 | options 2 and 3). Especially if you have in the past placed the header |
| | 47 | files in /usr/local/include, this will probably go wrong. See below on |
| | 48 | how to fix this. |
| | 49 | |
| | 50 | |
| | 51 | Having a proper kernel tree (compilation option 1) |
| | 52 | ================================================== |
| | 53 | |
| | 54 | Usually, if you compile a user-space application, you can get away with |
| | 55 | having a different version of the kernel running than the version of the |
| | 56 | kernel header files against which you compiled it. But a perfect match |
| | 57 | is needed for the first two compilation options above. |
| | 58 | |
| | 59 | Let's say you want to use the lm_sensors modules with the kernel 2.1.12 you |
| | 60 | are running now. What you need, is the original tree in which you |
| | 61 | compiled that 2.1.12 kernel. A freshly unpacked 2.1.12 kernel will not |
| | 62 | cut it, because `make *config dep' creates some files that are needed. |
| | 63 | And even then, you will run into trouble, because you may not have |
| | 64 | selected the exact same configuration variables. Plain advise: if you |
| | 65 | do not have your original kernel tree anymore, recompile your kernel |
| | 66 | first. |
| | 67 | |
| | 68 | Note that there is no need for a perfect match at compilation time, just |
| | 69 | at run-time. This means you can cross-compile against a different kernel |
| | 70 | version, and the Makefile does not check for this. |
| | 71 | |
| | 72 | Usually problems if the match is imperfect, is that either this package |
| | 73 | won't compile at all (because it was a freshly unpacked tree without |
| | 74 | some files generated by `make *config dep'), or that you can't insert |
| | 75 | modules because of either a `kernel-module version mismatch' or because |
| | 76 | of `unresolved kernel symbols'. If you get either of these messages, |
| | 77 | check your kernel tree! |
| | 78 | |
| | 79 | Note that some distributions are notably bad at this. To offset this |
| | 80 | somewhat, not the files in /usr/include/{linux,asm} are used, but instead |
| | 81 | those in /usr/src/linux/include/{linux,asm}. It is also possible to |
| | 82 | tell the Makefile the kernel is somewhere else than at /usr/src/linux. |
| | 83 | |
| | 84 | |
| | 85 | Separate from kernel compilation (compilation option 1) |
| | 86 | ======================================================= |
| | 87 | |
| | 88 | This will compile and install the complete i2c package. Though nothing is |
| | 89 | written to your kernel tree, a proper tree is still needed for this. See |
| | 90 | earlier for what a proper kernel tree is. |
| | 91 | |
| | 92 | At the top of the Makefile are a couple of configuration variables that |
| | 93 | you may want to change. As far as possible, the Makefile tries to figure |
| | 94 | out by itself their settings, but it is possible to overrule them. A list |
| | 95 | is found below. Most important are the variables that determine where |
| | 96 | your kernel is located (LINUX=/usr/src/linux), where the i2c header files |
| | 97 | are (I2C_HEADERS=/usr/local/include) and where you want to install |
| | 98 | your modules (MODDIR=/lib/modules/KERNELVERSION/extra/misc) and |
| | 99 | header files (LINUX_INCLUDE_DIR=/usr/local/include/linux). You can see |
| | 100 | that the installation locations are choosen in such a way that they |
| | 101 | are separate from the true kernel. |
| | 102 | |
| | 103 | Compilation is done by `make all'; `make install' installs the package. |
| | 104 | You will get a lot of warnings about files which are not found, all |
| | 105 | ending on `.*d'. You can safely ignore this; they contain dependency |
| | 106 | information, which is regenerated on the spot. |
| | 107 | |
| | 108 | Please continue reading this file before you start compiling. |
| | 109 | |
| | 110 | |
| | 111 | Makefile configuration variables (compilation option 1) |
| | 112 | ============================================================== |
| | 113 | |
| | 114 | SHELL (default: /bin/sh) |
| | 115 | You may have to specify the full path to Bash here, if /bin/sh is some |
| | 116 | other shell. There have been conflicting reports on whether this is |
| | 117 | needed. |
| | 118 | LINUX default: /usr/src/linux |
| | 119 | The location of your kernel tree. |
| | 120 | COMPILE_KERNEL |
| | 121 | This determines whether only the user-space utilities are needed (0) |
| | 122 | or also the kernel modules (1). This is usually determined by checking |
| | 123 | whether the kernel was already patched to include the kernel modules, |
| | 124 | but that is not really foolprool. |
| | 125 | I2C_HEADERS default: /usr/local/include |
| | 126 | This lists where the i2c headers are found. If you used compilation |
| | 127 | option 1 for the i2c package, the default will be right. If you used |
| | 128 | compilation options 2 or 3, it will not, and may actually cause |
| | 129 | problems if you have the left-overs of a previous installation. |
| | 130 | If you have weird compilation problems, try to change this to |
| | 131 | $(LINUX_HEADERS). |
| | 132 | SMP |
| | 133 | This must be set to 1 for a SMP kernel. The magic invocation should |
| | 134 | determine this automatically, so you should not have to bother with |
| | 135 | this. |
| | 136 | WARN default: 0 |
| | 137 | Generate additional compilation warnings; mainly interesting for |
| | 138 | developers. |
| | 139 | MODVER |
| | 140 | This must be set to 1 if CONFIG_MODVERSIONS is defined. The magic |
| | 141 | invocation should determine this automatically, so you should not |
| | 142 | have to bother with this. |
| | 143 | DEBUG default: 0 |
| | 144 | Some drivers will issue more debug information if you set this to |
| | 145 | 1. Don't do it, unless you are a developer or are instructed to do |
| | 146 | so by the lm_sensors team. |
| | 147 | PREFIX default: /usr/local |
| | 148 | Prefix for almost all installation directories |
| | 149 | MODDIR default: /lib/modules/KERNELVERSION/extra/misc) |
| | 150 | The location where the kernel modules will be installed. |
| | 151 | ETCDIR default: /etc |
| | 152 | Installation location of the sensors.conf configuration file |
| | 153 | LIBDIR default: $(PREFIX)/lib |
| | 154 | Installation location of all static and shared libraries. |
| | 155 | BINDIR default: $(PREFIX)/bin |
| | 156 | Installation directory of programs useful for users |
| | 157 | SBINDIR default: $(PREFIX)/sbin |
| | 158 | Installation directory of system administrator-only programs |
| | 159 | INCLUDEDIR default: $(PREFIX)/include |
| | 160 | Base installation directory for include files (see next two vars) |
| | 161 | SYSINCLUDEDIR default: $(INCLUDEDIR)/linux |
| | 162 | Installation directory for system include files |
| | 163 | LIBINCLUDEDIR default: $(INCLUDEDIR)/sensors |
| | 164 | Installation directory for libsensors include files. |
| | 165 | MANDIR default: $(PREFIX)/man |
| | 166 | Base installation directory for manual pages |
| | 167 | MANOWN default: root |
| | 168 | Owner of manual pages |
| | 169 | MANGRP default: root |
| | 170 | Group of manual pages |
| | 171 | |
| | 172 | |
| | 173 | |
| | 174 | Handling the modules (compilation option 1) |
| | 175 | =========================================== |
| | 176 | |
| | 177 | Once you have installed the kernel modules, you will have to make sure |
| | 178 | they are found. |
| | 179 | |
| | 180 | First, check whether your modutils will look in the right directory at |
| | 181 | all. If you used build system 1, you will probably have to add lines |
| | 182 | to /etc/conf.modules or /etc/modules.conf (use the one that exists, or |
| | 183 | take your pick): |
| | 184 | (modules-2.0.0): |
| | 185 | path[misc]=/lib/modules/current/extra/misc |
| | 186 | (modutils-2.1.x): |
| | 187 | path=/lib/modules/current/extra |
| | 188 | This assumes /lib/modules/current will always be linked to the correct |
| | 189 | modules tree. If not, you will have to change it as appropriate for |
| | 190 | your system. |
| | 191 | |
| | 192 | Next, you will have to run `depmod -a' to have them recognised. Most |
| | 193 | distributions run this command when you boot, so if you were cross- |
| | 194 | compiling, you can skip this step. |
| | 195 | |
| | 196 | See doc/modules for a more detailed treatment. |
| | 197 | |
| | 198 | |
| | 199 | Patching the kernel (compilation option 2) |
| | 200 | ========================================== |
| | 201 | |
| | 202 | There is a special script which should be able to generate diffs against |
| | 203 | any 2.0, 2.1, 2.2 and 2.3 kernel. Please report any problems to our |
| | 204 | mailinglist. Note that it may fail, and probably silently, if you have |
| | 205 | applied other patches to your kernel tree, or for very new kernels. |
| | 206 | It *is* safe to run it if your kernel already has the lm_sensors drivers. |
| | 207 | It will only work if you applied the i2c patches first. |
| | 208 | |
| | 209 | The kernel diffs are generated by the program `mkpatch.pl' in the mkpatch |
| | 210 | subdirectory. It needs two arguments: the first one is the root of the |
| | 211 | i2c package, the second one is the root of the kernel tree against |
| | 212 | which the diffs will be generated. For example: |
| | 213 | cd /tmp/lm_sensors-2.4.0 |
| | 214 | mkpatch/mkpatch.pl . /usr/src/linux > /tmp/sensors-patch |
| | 215 | You can apply the diffs as usual: |
| | 216 | cd /usr/src/linux |
| | 217 | patch -p1 -E < /tmp/sensors-patch |
| | 218 | Genearation and application can easily be done in one step: |
| | 219 | mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux |
| | 220 | The generated diffs are of course only valid for the kernel version |
| | 221 | against which mkpatch.pl was run. |
| | 222 | |
| | 223 | Once you have applied the patches, you can configure and compile your |
| | 224 | kernel as usual. You will see the sensors configuration screen under the |
| | 225 | `Character Devices' menu in menuconfig, but it will only be available |
| | 226 | if you selected base I2C support. |
| | 227 | |
| | 228 | |
| | 229 | Using the sensors package |
| | 230 | ========================= |
| | 231 | |
| | 232 | You can now load the modules by using `modprobe'. For example, |
| | 233 | `modprobe i2c-piix4' will load the i2c-piix4 module, and all i2c modules |
| | 234 | on which it depends. |
| | 235 | |
| | 236 | You can not use demand-loading; you will have to issue explicit modprobe |
| | 237 | instructions. |
| | 238 | |
| | 239 | If you have an older installation, you will probably have to create the |
| | 240 | i2c device files in the /dev directory. They are called /dev/i2c-%d, |
| | 241 | and are character devices with major device number 89 and minor device |
| | 242 | number %d. The script prog/mkdev/mkdev.sh will create the files for you. |
| | 243 | |
| | 244 | There is a special scanning program installed called sensors-detect. It |
| | 245 | will scan all available I2C and SMBus adapters for all known devices, |
| | 246 | and give you a list of what modules you need to insert. It is written in |
| | 247 | Perl, and you will need at least Perl 5.004 to run it succesfully. |
| | 248 | |
| | 249 | You can use the installed sensors program to get a report of all detected |
| | 250 | sensor devices. There is also a manual page for this program. Calling |
| | 251 | `sensors -s' will set the limits and other configuration settings |
| | 252 | specified in /etc/sensors.conf. Again, read the manual pages for more |
| | 253 | information. |
| | 254 | |
| | 255 | |
| | 256 | Old and new I2C drivers |
| | 257 | ======================= |
| | 258 | |
| | 259 | In the current 2.2 and 2.3 kernels, there are already I2C drivers, but |
| | 260 | they are not the same ones as in this package. They are much older, and |
| | 261 | have a very limited functionality compared with the drivers included |
| | 262 | here. Fortunately, they can co-exist peacefully, so you should not worry |
| | 263 | about it. Except for one thing: `#include <linux/i2c.h>' can cause the |
| | 264 | wrong header file to be included. If you patched the kernel (compilation |
| | 265 | option 3), you will have to use `#include <linux/i2c-old.h>' to include |
| | 266 | the old ones; in all other cases, including the old ones will probably |
| | 267 | be impossible without copying them explicitly to some place that will |
| | 268 | be checked first. |