Changes of Revision 20
[-] [+] | Added | sensors.changes |
[-] [+] | Changed | sensors.spec ^ |
[-] [+] | Deleted | lm_sensors-3.3.3.tar.bz2/doc/chips ^ |
-(directory) | ||
[-] [+] | Deleted | lm_sensors-3.3.3.tar.bz2/doc/chips/MODPARMS ^ |
@@ -1,139 +0,0 @@ -Parameters for modprobe and insmod -================================== - -PRELIMINARY WARNING: -This documentation file is outdated and needs to be entirely reviewed -and updated. Until then, don't blindly trust what you read here. - -================================== -SUMMARY - - [modprobe,insmod] module {parameter...} - Parameters: - force=bus,address{,bus,address} - force_addr=address{,address} - force_[chipname]=bus,address{,bus,address} - force_subclients=bus,caddr,saddr,saddr - ignore=bus,address{,bus,address} - ignore_range=bus,start,end{,bus,start,end} - probe=bus,address{,bus,address} - probe_range=bus,start,end{,bus,start,end} - init=[0,1] (default 1) - - All arguments are in decimal unless prefixed by "0x". - No spaces are allowed. - -================================== -OVERVIEW - -All chip drivers have a few modprobe module parameters in common. -(Insmod can also be used, but we recommend modprobe so that -other required modules are automatically loaded.) These -parameters can be used when a module is inserted, to give some additional -information about how it should function. In this case, they tell where -the module should look for what chips. Usually, you don't need them, and -if you do, you are often told by sensors-detect which ones you need. - -If a module doesn't load with no parameters, you may need to -add parameters. Check 'dmesg' for clues to what went wrong. - - -BUS NUMBERING -------------- -I2C/SMBus adapters are numbered in the order they are inserted. If you want -to know what number an adapter has, use the following command: - - (for kernel 2.6.32 and newer) - grep . /sys/bus/i2c/devices/i2c-*/name - - (for kernel 2.6.31 and older) - grep . /sys/class/i2c-adapter/i2c-*/name - -Alternatively, if you have installed i2c-tools, you can do: - - modprobe i2c-dev - i2cdetect -l - -If you want 'any I2C bus', use '-1'. - - -ADDRESS NUMBERING ------------------ -Each adapter has a number of addresses on I2C/SMBus adapters and/or the -ISA bus that are always scanned if no modprobe parameters are given. The -parameters below override those addresses that are scanned by default. - -All modprobe parameters described below take lists of positive integers -(unsigned, in the range of 0 to 65535) as their arguments. Integers -are separated by comma's, and may be given as ordinary decimal numbers, -as octal numbers (by starting them with a `0') or as hexadecimal numbers -(by starting them with a `0x'). More information can be found by -entering `man modprobe' or `man insmod'. -So to summarize: - 0x00 - 0x7f Valid I2C Addresses - 0x0000 - 0xffff Valid ISA Bus Addresses - - -================================== -PARAMETER DETAILS - -`force', `force_*', `ignore' and `probe' parameters take pairs of numbers. -Each first (odd) number is a bus number, each second (even) number is -an (I2C or ISA) address. - -`ignore_range' and `probe_range' parameters take triples of numbers. -Each first number is a bus number, each second number is the start address -of a range, and each third number is the end address of a range. Ranges -are always inclusive. - -`probe' and `probe_range' parameters tell the module to scan additional -addresses for a specific bus. These are treated just as the ordinary -addresses scanned. This is useful for some chips that can be anywhere; -to keep loading time (and false detections) down, only the most common -addresses are scanned by default. - -`ignore' and `ignore_range' parameters tell the module not to scan -specific addresses. They overrule the default addresses and any -addresses specified by `probe' and `probe_range' statements. - -The `force' parameter tells the module a supported chip is found at -a specific address. It overrules all previously mentioned parameters. -Sometimes, a chip can be in a specific internal state that makes -detection impossible. If you specify it with the `force' parameter, -it is first put into a recognizable state. Also, some detection routines -are skipped. If the module supports several chips, it will still try -to determine what chip is found on that address. If it can't determine -this, the address will still not be used. - -There is a `force_*' parameter for each type of chip supported by a -module. This is the strongest statement possible - it says that a -specific type of chip is found on a specific address, and the module -will skip all detection and recognition routines. This can lead to -very strange results... - -`force_addr' is a parameter used for PCI sensor adapters. -It is used to program the base address of the sensor registers. -This is required if the BIOS does not initialize the base address. - -`force_subclients' is used to force the i2c addresses for subclients of -a certain chip. Typical usage is `force_subclients=0,0x2d,0x4a,0x4b' -to force the subclients of chip 0x2d on bus 0 to i2c addresses -0x4a and 0x4b. -This parameter is currently supported only by the w83781d driver -and is useful for certain Tyan boards. - -`init' is used to tell a driver to bypass initializing a chip. -This may be necessary if the BIOS has initialized the chip a certain way -and the driver should not overwrite that initialization. -It is also useful if normal initialization crashes the system. -The default is 1, so the only useful value is `init=0'. -This parameter is currently supported only by the w83781d driver. - -================================== -EXAMPLE - - # ISA address 0x390 contains a LM79 - # Scan all I2C addresses (from 0 to 0x7f) for all I2C adapters - # But skip address 0x2d on adapter 0, and address 0x20 on adapter 1 - - modprobe lm78 force_lm79=9191,0x390 ignore=0,0x2d,1,0x20 probe_range=-1,0,0x7f | ||
[-] [+] | Deleted | lm_sensors-3.3.3.tar.bz2/doc/chips/SUMMARY ^ |
@@ -1,297 +0,0 @@ -SUMMARY OF SUPPORTED CHIPS -========================== - -This is a summary of the sensor and non-sensor chips supported by this -package. It lists the features of each supported chip. For further -information on a particular driver, see the documentation in this -directory. - -To determine what chips you have in your system, run 'sensors-detect'. - -If your sensor chip is not detected by sensors-detect, please contact us -(see http://www.lm-sensors.org/wiki/AuthorsAndContributors). Only contact us -if you know for sure that your system includes a sensor chip (for -example if you have technical documentation mentioning it, or if the -BIOS setup screen presents monitoring values, or if you can get -hardware monitoring to work using a different OS). Do *not* contact us -if you have no proof that your system includes sensors. Such systems -tend to be rare these days, but do still exist. This is especially true -of laptops. If there are no sensors, there's nothing we can do. - -If you contact us, please include the following in your mail: - - The output of (as root) 'sensors-detect'. Make sure you unloaded - every chip driver beforehand (check that the sensors-detect script - does not complain that it couldn't probe some I2C addresses on any - given bus). - - Dumps of the chips that might be hardware monitoring chips. To get - these, follow the following steps: - 1* Run 'i2cdetect -l'. This will list all available I2C (or SMBus) - busses on your system. - 2* For each bus listed, run (as root) 'i2cdetect N' where N is the - bus number. - 3* For each bus, if there is anything in the ranges 0x20-0x2f or - 0x48-0x4f, dump the contents of that chip with (as root) - 'i2cdump N 0xXX', where N is the bus number and XX is the - responsive address. Chips in other address ranges are way less - likely to be hardware monitoring chips. In particular, do not - send dumps of addresses 0x08, 0x0c, 0x10, 0x30-0x37, 0x42, 0x44, - 0x50-0x5f, 0x61 and 0x69. These are *not* hadware monitoring - chips. - - The part numbers of the chips on your motherboard you think are the - sensor chips. - ------------------------------------------------------------------------------ - -SUPPORTED SENSOR CHIPS ----------------------- - - Included Sensors Controls Busses - ---------------------- ------- ----------- -Driver Chips #temp #vin #fanin pwm/dac I2C ISA ---------------------------------------------------------------------- -adm1021 - adm1021 2 - - - yes no - adm1021a 2 - - - yes no - adm1023 2 - - - yes no - gl523sm 2 - - - yes no - lm84 2 - - - yes no - max1617 2 - - - yes no - max1617a 2 - - - yes no - tc1068 2 - - - yes no - tcm1617 2 - - - yes no - thmc10 2 - - - yes no - mc1066 2 - - - yes no - (xeon - no detection - requires force_adm1021 parameter) - xeon 1 - - - yes no - (the following chips are detected as a max1617) - ne1617 2 - - - yes no - ne1617a 2 - - - yes no - -adm1024 - adm1024 3 6 - 1 dac yes no - -adm1025 - adm1025 2 6 - - yes no - ne1619 2 6 - - yes no - -adm1026 - adm1026 3 17 8 2 pwm+dac yes no - -adm1031 - adm1030 2 - 1 1 pwm yes no - adm1031 3 - 2 2 pwm yes no - -adm9240 - adm9240 1 6 2 1 dac yes no - ds1780 1 6 2 1 dac yes no - lm81 1 6 2 1 dac yes no - -asb100 - asb100 4 7 3 1 yes no - -bmcsensors - bmcsensors ? ? ? - no no - -ds1621 - ds1621 1 - - - yes no - (the following chip is detected as a ds1621) - ds1625 1 - - - yes no - -f71805f - f71805f 9 3 3 - no yes - -fscher - fscher 3 3 3 - yes no - -fscpos - fscpos 3 3 3 - yes no - -fscscy - fscscy 4 3 6 - yes no - -gl518sm - gl518sm (r00) 1 1-4 2 - yes no - gl518sm (r80) 1 4 2 - yes no - -gl520sm - gl520sm 1-2 4-5 2 - yes no - -it87 - it8712 3 8 3 3 pwm yes yes - (the following are reported as an "it87") - it8705 3 8 3 3 pwm yes yes - sis950 3 8 3 3 pwm yes yes - -lm63 - lm63 2 - 1 1 pwm yes no - -lm75 - lm75 1 - - - yes no - (the following chips are detected as an lm75) - ds75 1 - - - yes no - ds1775 1 - - - yes no - max6625 1 - - - yes no - max6626 1 - - - yes no - tcn75 1 - - - yes no - -lm78 - lm78 1 7 3 - yes yes - lm78-j 1 7 3 - yes yes - lm79 1 7 3 - yes yes - -lm80 - lm80 1 7 2 - yes no - -lm83 - lm83 4 - - - yes no - lm82 2 - - - yes no - -lm85 - lm85 3 5 4 3 pwm yes no - adm1027 3 5 4 3 pwm yes no - adt7463 3 5 4 3 pwm yes no - emc6d100 3 8 4 3 pwm yes no - (emc6d101 is reported as emc6d100) - emc6d101 3 8 4 3 pwm yes no - emc6d102 3 8 4 3 pwm yes no - -lm87 - lm87 2-3 6-8 0-2 1 pwm yes no - -lm90 - lm90 2 - - - yes no - lm99 2 - - - yes no - lm86 2 - - - yes no - adm1032 2 - - - yes no - max6657 2 - - - yes no - (lm89 is detected as an lm99) - lm89 2 - - - yes no - (max6658 and max6659 are detected as a max6657) - max6658 2 - - - yes no - max6659 2 - - - yes no - (adt7461 only works in ADM1032 compatibility mode) - adt7461 2 - - - yes no - -lm92 - (all are reported as an "lm92") - lm92 1 - - - yes no - max6633 1 - - - yes no - max6634 1 - - - yes no - max6635 1 - - - yes no - (lm76 needs force parameter) - lm76 1 - - - yes no - -max1619 - max1619 2 - - - yes no - -max6650 - (all are reported as a "max6650") - max6650 - - 1 1 pwm yes no - max6651 - - 4 1 pwm yes no - -maxilife - maxilife-as 5 4 3 - yes no - maxilife-co 5 4 3 - yes no - maxilife-cg 5 4 3 - yes no - -mtp008 - mtp008 3 7 3 3 pwm yes no - -pc87360 - pc87360 - - 2 2 pwm no yes (LPC) - pc87363 - - 2 2 pwm no yes (LPC) - pc87364 - - 3 3 pwm no yes (LPC) - pc87365 2 11 3 3 pwm no yes (LPC) - pc87366 3-4 11 3 3 pwm no yes (LPC) - -pcf8591 - pcf8591 - 2-4 - 1 dac yes no - -sis5595 - sis5595 0-1 4-5 2 - no yes - -smartbatt - smartbatt 1 1 - - yes no - -smsc47m1 - (all are reported as a "smsc47m1") - smsc47b27x - - 2 2 no yes (LPC) - smsc47m10x - - 2 2 no yes (LPC) - smsc47m112 - - 2 2 no yes (LPC) - smsc47m13x - - 2 2 no yes (LPC) - smsc47m14x - - 2 2 no yes (LPC) - smsc47m15x - - 2 2 no yes (LPC) - smsc47m192 - - 2 2 no yes (LPC) - smsc47m997 - - 2 2 no yes (LPC) - (reported as a "smsc47m2") - smsc47m292 - - 3 3 no yes (LPC) - -thmc50 - adm1022 3 2 - 1 dac yes no - thmc50 3 2 - 1 dac yes no - -via686a - via686a 3 5 2 - no yes - vt8231 3 5 2 - no yes - -vt1211 - vt1211 2-7 1-6 2 2 no yes (LPC) - -vt8231 - vt8231 2-7 2-7 2 2 no yes - -w83627hf - w83627hf 3 9 3 2 pwm no yes (LPC) - w83627thf 3 7 3 3 dac no yes (LPC) - w83637hf 3 7 2 3 pwm no yes (LPC) - w83687thf 3 7 3 3 pw/da no yes (LPC) - w83697hf 2 8 2 2 pwm no yes (LPC) - -w83781d - as99127f 3 7 3 - yes no - w83781d 3 7 3 - yes yes - w83782d 3 9 3 2-4 pwm yes yes - w83783s 1-2 5-6 3 2 pwm yes no - w83791d 3 10 5 5 pwm yes no - w83627hf 3 9 3 2 pwm yes yes (LPC) - -w83l785ts - w83l785ts 1 - - - yes no - -w83792d - w83792d 3 9 7 3 pwm yes no - -xeontemp - xeontemp 1 - - - yes no - - ------------------------------------------------------------------------------ - -COMPANY ID LIST ---------------- - -Many SMBus chips have a company ID at location 0x3E or 0xFE. - -Here is a partial list. -This may help identify a chip after doing a 'i2cdump [bus] [address]'. - -0x01 National -0x12C3 Asus (at 0x4F) -0x1934 Fintek (at 0x5D-0x5E) -0x23 Analog Devices (old products) or Fintek -0x41 Analog Devices (new products) -0x49 TI -0x4D Maxim -0x54 On Semi -0x5C SMSC -0x5D SMSC -0x55 SMSC -0x5CA3 Winbond (at 0x4F) -0x61 Andigilog -0x90 ITE (at 0x58) -0xA1 Philips -0xA3 Winbond (at 0x4F) -0xC3 Asus (at 0x4F) -0xDA Dallas - -[A-Z]{3} at 0x00-0x02: Fujitsu-Siemens | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/CHANGES ^ |
@@ -1,6 +1,25 @@ lm-sensors CHANGES file ----------------------- +3.3.4 (2013-05-27) + sensors.conf.5: Mention "sensors -u" to get the raw feature names + sensors: Clarify what option -u is good for + fancontrol: Fix handling of absolute paths in config + pwmconfig: Print the initial PWM values + Raise the detection threshold to 3/4 + Properly deal with multiple fan control + sensors-detect: Add detection of AMD family 16h power sensors + Map IT8771E, IT8772E, IT8782F and IT8783F to it87 + Use /sys/module instead of /proc/modules where available + Drop legacy sysconfig configuration file syntax + Stay alive when /dev/port is missing + Add detection of IT8752F + Add detection of MCP98244 + Add detection of LM95234 + Add detection of TMP431/TMP432 + Update Nuvoton chip information and NCT6106D chip detection + Drop unreliable DS1621/DS1631 detection + 3.3.3 "Happy Birthday Sophie" (2012-11-06) documentation: Update fan-divisors, fan divisors are optional libsensors: Fix warning about library path not in /etc/ld.so.conf | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/doc/developers/lm_sensors.lsm ^ |
@@ -1,7 +1,7 @@ Begin4 Title: lm_sensors -Version: 3.3.3 -Entered-date: 2012-11-06 +Version: 3.3.4 +Entered-date: 2013-05-27 Description: Hardware health monitoring package for Linux. It consists of a library to allow applications to read sensors data more easily, and of an example program to pretty print this data. @@ -11,8 +11,8 @@ Author: khali@linux-fr.org (Jean Delvare) Maintained-by: khali@linux-fr.org (Jean Delvare) Primary-site: http://dl.lm-sensors.org /lm-sensors/releases/ - lm_sensors-3.3.3.tar.bz2 - lm_sensors-3.3.3.tar.bz2.sig + lm_sensors-3.3.4.tar.bz2 + lm_sensors-3.3.4.tar.bz2.sig Alternate-site: ftp.netroedge.com /pub/lm-sensors/ Copying-policy: GPL/LGPL End | ||
[-] [+] | Added | lm_sensors-3.3.4.tar.bz2/doc/developers/smbus_company_id ^ |
@@ -0,0 +1,28 @@ +COMPANY ID LIST +--------------- + +Many SMBus chips have a company ID at location 0x3E or 0xFE. + +Here is a partial list. +This may help identify a chip after doing a 'i2cdump [bus] [address]'. + +0x01 National Semiconductor +0x12C3 Asus (at 0x4F) +0x1934 Fintek (at 0x5D-0x5E) +0x23 Analog Devices (old products) or Fintek +0x41 Analog Devices (new products) +0x49 TI +0x4D Maxim +0x54 On Semi +0x5C SMSC +0x5D SMSC +0x55 SMSC +0x5CA3 Winbond (at 0x4F) +0x61 Andigilog +0x90 ITE (at 0x58) +0xA1 Philips +0xA3 Winbond (at 0x4F) +0xC3 Asus (at 0x4F) +0xDA Dallas + +[A-Z]{3} at 0x00-0x02: Fujitsu-Siemens | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/doc/donations ^ |
@@ -36,9 +36,8 @@ Drivers developed: as99127f improvements MDS Atipa SuperMicro 370DLE w/ Serverworks, LM87 2000-09 - Drivers developed: serverworks support added Jean Delvare + Drivers developed: serverworks support added trash to i2c-piix4; lm87 testing and improvements - (on-board NIC broken) Fujitsu Complete system for general project support 2001-11 Siemens (broken) Phil @@ -82,7 +81,7 @@ (broken) Wincor Nixdorf Seagate Barracuda 7200.7 160GB harddisk drive 2004-10 - (dead) Jean Delvare + trash Aweta Intel Server system 2005-09 Drivers developed: PC87431 (IPMI SMB) MDS @@ -105,8 +104,8 @@ (ICH5) SMBus with SPD EEPROMs connected, and a Winbond W83627THF hardware monitoring chip. -Observit Intel D865GSA (dead), Celeron D-352, 2007-06 - 128 MB RAM Jean Delvare +Observit Intel D865GSA, Celeron D-352, 2007-06 + 128 MB RAM trash Resulted in: backport of the w83627ehf driver to Linux 2.4, improvements to the Linux 2.6 w83627ehf driver. | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/doc/libsensors-API.txt ^ |
@@ -6,7 +6,7 @@ authors can quickly figure out how to test for the availability of a given new feature. -0x432 lm-sensors 3.3.2 to 3.3.3 +0x432 lm-sensors 3.3.2 to 3.3.4 * Added support for new sysfs attributes enum sensors_subfeature_type SENSORS_SUBFEATURE_IN_AVERAGE enum sensors_subfeature_type SENSORS_SUBFEATURE_IN_LOWEST | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/lib/sensors.conf.5 ^ |
@@ -1,6 +1,6 @@ .\" Copyright (C) 1998, 1999 Adrian Baugh <adrian.baugh@keble.ox.ac.uk> and .\" Frodo Looijaard <frodol@dds.nl> -.\" Copyright (C) 2008, 2009 Jean Delvare <khali@linux-fr.org> +.\" Copyright (C) 2008--2012 Jean Delvare <khali@linux-fr.org> .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are @@ -21,7 +21,7 @@ .\" .\" References consulted: .\" sensors.conf.eg by Frodo Looijaard -.TH sensors.conf 5 "February 2009" "lm-sensors 3" "Linux User's Manual" +.TH sensors.conf 5 "November 2012" "lm-sensors 3" "Linux User's Manual" .SH NAME sensors.conf \- libsensors configuration file @@ -134,6 +134,10 @@ The first argument is the feature name. The second argument is the feature description. +Note that you must use the raw feature name, which is not necessarily the +one displayed by "sensors" by default. Use "sensors \-u" to see the raw +feature names. Same applies to all other statement types below. + .SS IGNORE STATEMENT An | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/prog/detect/sensors-detect ^ |
@@ -41,7 +41,7 @@ use vars qw(@pci_adapters @chip_ids @ipmi_ifs @non_hwmon_chip_ids $i2c_addresses_to_scan $revision @i2c_byte_cache); -$revision = '$Revision: 6085 $ ($Date: 2012-10-30 18:18:45 +0100 (mar. 30 oct. 2012) $)'; +$revision = '$Revision: 6170 $ ($Date: 2013-05-20 21:25:22 +0200 (lun. 20 mai 2013) $)'; $revision =~ s/\$\w+: (.*?) \$/$1/g; $revision =~ s/ \([^()]*\)//; @@ -637,8 +637,8 @@ i2c_addrs => [0x2c..0x2e], i2c_detect => sub { adt7490_detect(@_); }, }, { - name => "Analog Devices ADT7410", - driver => "to-be-written", + name => "Analog Devices ADT7410/ADT7420", + driver => "adt7410", i2c_addrs => [0x48..0x4b], i2c_detect => sub { adt7410_detect(@_); }, }, { @@ -803,11 +803,6 @@ i2c_addrs => [0x2c..0x2f], i2c_detect => sub { adm9240_detect(@_, 0); }, }, { - name => "Dallas Semiconductor DS1621/DS1631", - driver => "ds1621", - i2c_addrs => [0x48..0x4f], - i2c_detect => sub { ds1621_detect(@_); }, - }, { name => "Dallas Semiconductor DS1780", driver => "adm9240", i2c_addrs => [0x2c..0x2f], @@ -1023,6 +1018,16 @@ i2c_addrs => [0x4c, 0x4d], i2c_detect => sub { tmp42x_detect(@_, 2); }, }, { + name => "Texas Instruments TMP431", + driver => "to-be-written", # tmp401 + i2c_addrs => [0x4c, 0x4d], + i2c_detect => sub { lm90_detect(@_, 16); }, + }, { + name => "Texas Instruments TMP432", + driver => "to-be-written", # tmp401 + i2c_addrs => [0x4c, 0x4d], + i2c_detect => sub { lm90_detect(@_, 17); }, + }, { name => "Texas Instruments AMC6821", driver => "amc6821", i2c_addrs => [0x18..0x1a, 0x2c..0x2e, 0x4c..0x4e], @@ -1033,6 +1038,11 @@ i2c_addrs => [0x2b, 0x19, 0x2a], i2c_detect => sub { lm95231_detect(@_, 0); }, }, { + name => "National Semiconductor LM95234", + driver => "to-be-written", # lm95234 + i2c_addrs => [0x18, 0x4d, 0x4e], + i2c_detect => sub { lm95231_detect(@_, 3); }, + }, { name => "National Semiconductor LM95241", driver => "lm95241", i2c_addrs => [0x2b, 0x19, 0x2a], @@ -1400,6 +1410,11 @@ i2c_addrs => [0x18..0x1f], i2c_detect => sub { jedec_JC42_4_detect(@_, 7); }, }, { + name => "Microchip MCP98244", + driver => "jc42", + i2c_addrs => [0x18..0x1f], + i2c_detect => sub { jedec_JC42_4_detect(@_, 15); }, + }, { name => "Microchip MCP9843", driver => "jc42", i2c_addrs => [0x18..0x1f], @@ -1945,6 +1960,10 @@ logdev => 0x0b, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { + name => "Winbond W83627SF/GF Super IO", + driver => "not-a-sensor", + devid => 0x59, + }, { name => "Winbond W83627THF/THG Super IO Sensors", driver => "w83627hf", devid => 0x82, @@ -2019,7 +2038,7 @@ logdev => 0x0b, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { - name => "Nuvoton W83677HG-I (NCT6771F/NCT6772F/NCT6775F) Super IO Sensors", + name => "Nuvoton W83677HG-I (NCT5572D/NCT6771F/NCT6772F/NCT6775F) Super IO Sensors", driver => "w83627ehf", devid => 0xB470, devid_mask => 0xFFF0, @@ -2030,27 +2049,24 @@ driver => "not-a-sensor", devid => 0x61, }, { - name => "Nuvoton NCT5577D Super IO Sensors", - driver => "to-be-written", - devid => 0xC331, - logdev => 0x0b, - features => FEAT_IN | FEAT_FAN | FEAT_TEMP, - }, { - name => "Nuvoton NCT6776F Super IO Sensors", - driver => "w83627ehf", - devid => 0xC333, + name => "Nuvoton NCT5577D/NCT6776F Super IO Sensors", + driver => "nct6775", + devid => 0xC330, + devid_mask => 0xFFF0, logdev => 0x0b, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { - name => "Nuvoton NCT6779D Super IO Sensors", - driver => "to-be-written", # nct6775, new driver - devid => 0xC562, + name => "Nuvoton NCT5532D/NCT6779D Super IO Sensors", + driver => "nct6775", + devid => 0xC560, + devid_mask => 0xFFF0, logdev => 0x0b, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { - name => "Nuvoton NCT6102D/NCT6106D Super IO Sensors", - driver => "to-be-written", # nct6775, new driver - devid => 0x1061, + name => "Nuvoton NCT6102D/NCT6104D/NCT6106D Super IO Sensors", + driver => "to-be-written", # nct6775 + devid => 0xC450, + devid_mask => 0xFFF0, logdev => 0x0b, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { @@ -2220,14 +2236,20 @@ logdev => 0x04, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { - name => "ITE IT8771E Super IO Sensors", + name => "ITE IT8752F Super IO Sensors", driver => "to-be-written", # it87 + devid => 0x8752, + logdev => 0x04, + features => FEAT_IN | FEAT_FAN | FEAT_TEMP, + }, { + name => "ITE IT8771E Super IO Sensors", + driver => "it87", devid => 0x8771, logdev => 0x04, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { name => "ITE IT8772E Super IO Sensors", - driver => "to-be-written", # it87 + driver => "it87", devid => 0x8772, logdev => 0x04, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, @@ -2239,13 +2261,13 @@ features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { name => "ITE IT8782F Super IO Sensors", - driver => "to-be-written", # it87 + driver => "it87", devid => 0x8782, logdev => 0x04, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, }, { name => "ITE IT8783F Super IO Sensors", - driver => "to-be-written", # it87 + driver => "it87", devid => 0x8783, logdev => 0x04, features => FEAT_IN | FEAT_FAN | FEAT_TEMP, @@ -2349,6 +2371,10 @@ driver => "fam15h_power", detect => sub { amd_pci_detect('1604') }, }, { + name => "AMD Family 16h power sensors", + driver => "fam15h_power", + detect => sub { amd_pci_detect('1534') }, + }, { name => "Intel digital thermal sensor", driver => "coretemp", detect => \&coretemp_detect, @@ -2463,9 +2489,12 @@ sub initialize_ioports { - sysopen(IOPORTS, "/dev/port", O_RDWR) - or die "/dev/port: $!\n"; - binmode(IOPORTS); + if (sysopen(IOPORTS, "/dev/port", O_RDWR)) { + binmode(IOPORTS); + return 1; + } + print STDERR "/dev/port: $!\n"; + return 0; } sub close_ioports @@ -2765,9 +2794,19 @@ { local $_; + # /sys/module contains built-in drivers too, but doesn't exist on + # older kernels (added in kernel 2.6.7) + if (opendir(local *MODULES, "$sysfs_root/module")) { + while (defined($_ = readdir(MODULES))) { + next if m/^\./; + $modules_list{$1} = 1 if m/^(\S*)/; + } + return; + } + + # Fall back to /proc/modules as it is always available open(local *INPUTFILE, "/proc/modules") or return; while (<INPUTFILE>) { - tr/-/_/; # Probably not needed $modules_list{$1} = 1 if m/^(\S*)/; } } @@ -3493,13 +3532,14 @@ print("Can't set I2C address for $dev\n"), next; - initialize_ioports(); - $alias_detect = $detected->[$isa]->{alias_detect}; - $is_alias = &$alias_detect($detected->[$isa]->{isa_addr}, - \*FILE, - $detected->[$i2c]->{i2c_addr}); + if (initialize_ioports()) { + $alias_detect = $detected->[$isa]->{alias_detect}; + $is_alias = &$alias_detect($detected->[$isa]->{isa_addr}, + \*FILE, + $detected->[$i2c]->{i2c_addr}); + close_ioports(); + } close(FILE); - close_ioports(); next unless $is_alias; # This is an alias: copy the I2C data into the ISA @@ -4312,47 +4352,6 @@ return ($chip == 0) ? 4 : 2; } -# Registers used: -# 0xAA: Temperature -# 0xA1: High limit -# 0xA2: Low limit -# 0xA8: Counter -# 0xA9: Slope -# 0xAC: Configuration -# Detection is weak. We check if bit 4 (NVB) is clear, because it is -# unlikely to be set (would mean that EEPROM is currently being accessed). -# We also check the value of the counter and slope registers, the datasheet -# doesn't mention the possible values but the conversion formula together -# with experimental evidence suggest possible sanity checks. -# Not all devices enjoy SMBus read word transactions, so we do as much as -# possible with read byte transactions first, and only use read word -# transactions second. -sub ds1621_detect -{ - my ($file, $addr) = @_; - - my $conf = i2c_smbus_read_byte_data($file, 0xAC); - return if ($conf & 0x10); - - my $temp = i2c_smbus_read_word_data($file, 0xAA); - return if $temp < 0 || ($temp & 0x0f00); - # On the DS1631, the following two checks are too strict in theory, - # but in practice I very much doubt that anyone will set temperature - # limits not a multiple of 0.5 degrees C. - my $high = i2c_smbus_read_word_data($file, 0xA1); - return if $high < 0 || ($high & 0x7f00); - my $low = i2c_smbus_read_word_data($file, 0xA2); - return if $low < 0 || ($low & 0x7f00); - - return if ($temp == 0 && $high == 0 && $low == 0 && $conf == 0); - - # Old versions of the DS1621 apparently don't have the counter and - # slope registers (or they return crap) - my $counter = i2c_smbus_read_byte_data($file, 0xA8); - my $slope = i2c_smbus_read_byte_data($file, 0xA9); - return ($slope == 0x10 && $counter <= $slope) ? 3 : 2; -} - # Chip to detect: 0 = LM80, 1 = LM96080 # Registers used: # 0x00: Configuration register @@ -4499,7 +4498,7 @@ # 8 = W83L771W/G, 9 = TMP401, 10 = TMP411, # 11 = W83L771AWG/ASG, 12 = MAX6690, # 13 = ADT7461A/NCT1008, 14 = SA56004, -# 15 = G781 +# 15 = G781, 16 = TMP431, 17 = TMP432 # Registers used: # 0x03: Configuration # 0x04: Conversion rate @@ -4617,6 +4616,18 @@ return if $mid != 0x47; # GMT return 8 if $cid == 0x01; # G781 } + if ($chip == 16) { + return if ($conf & 0x1B) != 0; + return if $rate > 0x0F; + return if $mid != 0x55; # Texas Instruments + return 6 if ($cid == 0x31); # TMP431A/B/C/D + } + if ($chip == 17) { + return if ($conf & 0x1B) != 0; + return if $rate > 0x0F; + return if $mid != 0x55; # Texas Instruments + return 6 if ($cid == 0x32); # TMP432A/B + } return; } @@ -4688,14 +4699,17 @@ return 5; } -# Chip to detect: 0 = LM95231, 1 = LM95241, 2 = LM95245 +# Chip to detect: 0 = LM95231, 1 = LM95241, 2 = LM95245, 3 = LM95234 # Registers used: # 0x02: Status (3 unused bits) # 0x03: Configuration (3 unused bits) +# 0x04: Conversion rate (6 unused bits, LM95234) # 0x06: Remote diode filter control (6 unused bits, LM95231 and LM95241) # 0x30: Remote diode model type select (6 unused bits, LM95231 and LM95241) # 0x30: Local Temperature LSB (5 unused bits, LM95245) +# 0x30: Diode model (4 unused bits, LM95234) # 0x33: Status register 2 (6 unused bits, LM95245) +# 0x38: Diode model status (4 unused bits, LM95234) # 0xfe: Manufacturer ID # 0xff: Revision ID sub lm95231_detect @@ -4719,6 +4733,13 @@ return if i2c_smbus_read_byte_data($file, 0x03) & 0xa1; return if i2c_smbus_read_byte_data($file, 0x30) & 0x1f; return if i2c_smbus_read_byte_data($file, 0x33) & 0x3f; + } elsif ($chip == 3) { + return if $cid != 0x79; # LM95234 + return if i2c_smbus_read_byte_data($file, 0x02) & 0x30; + return if i2c_smbus_read_byte_data($file, 0x03) & 0xbc; + return if i2c_smbus_read_byte_data($file, 0x04) & 0xfc; + return if i2c_smbus_read_byte_data($file, 0x30) & 0xe1; + return if i2c_smbus_read_byte_data($file, 0x38) & 0xe1; } return 6; @@ -6030,7 +6051,7 @@ # 4 = TS3000/TSE2002, 5 = MAX6604, 6 = MCP98242, # 7 = MCP98243, 8 = MCP9843, 9 = CAT6095 / CAT34TS02, # 10 = STTS424E, 11 = STTS2002, 12 = STTS3000 -# 13 = MCP9804, 14 = AT30TS00 +# 13 = MCP9804, 14 = AT30TS00, 15 = MCP98244 # Registers used: # 0x00: Capabilities # 0x01: Configuration @@ -6099,6 +6120,9 @@ } elsif ($chip == 14) { return unless $manid == 0x00; # Atmel return unless $devid == 0x82; # AT30TS00 + } elsif ($chip == 15) { + return unless $manid == 0x00; # MCP + return unless $devid == 0x22; # MCP98244 } # Now, do it all again with words. Note that we get @@ -6156,6 +6180,9 @@ } elsif ($chip == 14) { return unless $manid == 0x1f00; # Atmel return unless ($devid & 0xfeff) == 0x0082; # AT30TS00 + } elsif ($chip == 15) { + return unless $manid == 0x5400; # MCP + return unless ($devid & 0xfcff) == 0x0022; # MCP98244 } return 5; @@ -6677,19 +6704,6 @@ print SYSCONFIG "BUS_MODULES=\"", join(" ", @{$bus_modules}), "\"\n" if @{$bus_modules}; print SYSCONFIG "HWMON_MODULES=\"", join(" ", @{$hwmon_modules}), "\"\n"; - - print SYSCONFIG <<'EOT'; - -# For compatibility reasons, modules are also listed individually as variables -# MODULE_0, MODULE_1, MODULE_2, etc. -# You should use BUS_MODULES and HWMON_MODULES instead if possible. - -EOT - my $i = 0; - foreach (@{$bus_modules}, @{$hwmon_modules}) { - print SYSCONFIG "MODULE_$i=$_\n"; - $i++; - } close(SYSCONFIG); if (-x "/bin/systemctl" && -d "/lib/systemd/system" && @@ -6814,10 +6828,11 @@ "standard I/O ports to probe them. This is usually safe.\n"; print "Do you want to scan for Super I/O sensors? (YES/no): "; unless (<STDIN> =~ /^\s*n/i) { - initialize_ioports(); - $superio_features |= scan_superio(0x2e, 0x2f); - $superio_features |= scan_superio(0x4e, 0x4f); - close_ioports(); + if (initialize_ioports()) { + $superio_features |= scan_superio(0x2e, 0x2f); + $superio_features |= scan_superio(0x4e, 0x4f); + close_ioports(); + } } print "\n"; @@ -6830,9 +6845,10 @@ "interfaces? (YES/no): "; unless (<STDIN> =~ /^\s*n/i) { if (!ipmi_from_smbios()) { - initialize_ioports(); - scan_isa_bus(\@ipmi_ifs); - close_ioports(); + if (initialize_ioports()) { + scan_isa_bus(\@ipmi_ifs); + close_ioports(); + } } } print "\n"; @@ -6846,9 +6862,10 @@ $input = <STDIN>; unless ($input =~ /^\s*n/i || ($superio_features && $input !~ /^\s*y/i)) { - initialize_ioports(); - scan_isa_bus(\@chip_ids); - close_ioports(); + if (initialize_ioports()) { + scan_isa_bus(\@chip_ids); + close_ioports(); + } } print "\n"; } | ||
[-] [+] | Added | lm_sensors-3.3.4.tar.bz2/prog/init/fancontrol.service ^ |
@@ -0,0 +1,13 @@ +[Unit] +Description=Start fan control, if configured +ConditionFileNotEmpty=/etc/fancontrol +After=lm_sensors.service + +[Service] +EnvironmentFile=/etc/sysconfig/lm_sensors +Type=simple +PIDFile=/var/run/fancontrol.pid +ExecStart=/usr/sbin/fancontrol + +[Install] +WantedBy=multi-user.target | ||
[-] [+] | Added | lm_sensors-3.3.4.tar.bz2/prog/init/sensord.service ^ |
@@ -0,0 +1,13 @@ +[Unit] +Description=Log hardware monitoring data +After=lm_sensors.service +After=syslog.target + +[Service] +EnvironmentFile=-/etc/sysconfig/sensord +Type=forking +PIDFile=/var/run/sensord.pid +ExecStart=/usr/sbin/sensord -i $INTERVAL -l $LOG_INTERVAL -f daemon + +[Install] +WantedBy=multi-user.target | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/prog/pwm/fancontrol ^ |
@@ -43,9 +43,10 @@ #DEBUG=1 MAX=255 -declare -i pwmval +function LoadConfig +{ + local fcvcount fcv -function LoadConfig { echo "Loading configuration from $1 ..." if [ ! -r "$1" ] then @@ -206,8 +207,9 @@ } # Check that all referenced sysfs files exist -function CheckFiles { - local outdated=0 +function CheckFiles +{ + local outdated=0 fcvcount pwmo tsen fan let fcvcount=0 while (( $fcvcount < ${#AFCPWM[@]} )) # go through all pwm outputs @@ -289,11 +291,16 @@ cd $DIR # Check for configuration change -if [ -z "$DEVPATH" -o -z "$DEVNAME" ] +if [ "$DIR" != "/" ] && [ -z "$DEVPATH" -o -z "$DEVNAME" ] then echo "Configuration is too old, please run pwmconfig again" >&2 exit 1 fi +if [ "$DIR" = "/" -a -n "$DEVPATH" ] +then + echo "Unneeded DEVPATH with absolute device paths" >&2 + exit 1 +fi if ! ValidateDevices "$DEVPATH" "$DEVNAME" then echo "Configuration appears to be outdated, please run pwmconfig again" >&2 @@ -311,7 +318,8 @@ # $1 = pwm file name function pwmdisable() { - ENABLE=${1}_enable + local ENABLE=${1}_enable + # No enable file? Just set to max if [ ! -f $ENABLE ] then @@ -344,7 +352,8 @@ # $1 = pwm file name function pwmenable() { - ENABLE=${1}_enable + local ENABLE=${1}_enable + if [ -f $ENABLE ] then echo 1 > $ENABLE 2> /dev/null @@ -358,7 +367,8 @@ function restorefans() { - local status=$1 + local status=$1 fcvcount pwmo + echo 'Aborting, restoring fans...' let fcvcount=0 while (( $fcvcount < ${#AFCPWM[@]} )) # go through all pwm outputs @@ -376,7 +386,13 @@ trap 'restorefans 1' SIGHUP SIGINT # main function -function UpdateFanSpeeds { +function UpdateFanSpeeds +{ + local fcvcount + local pwmo tsens fan mint maxt minsa minso minpwm maxpwm + local tval pwmpval fanval min_fanval one_fan one_fanval + local -i pwmval + let fcvcount=0 while (( $fcvcount < ${#AFCPWM[@]} )) # go through all pwm outputs do | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/prog/pwm/pwmconfig ^ |
@@ -29,8 +29,8 @@ # # -REVISION=$(echo '$Revision: 5857 $' | cut -d' ' -f2) -REVDATE=$(echo '$Date: 2010-08-22 18:17:57 +0200 (dim. 22 août 2010) $' | cut -d' ' -f2) +REVISION=$(echo '$Revision: 6166 $' | cut -d' ' -f2) +REVDATE=$(echo '$Date: 2013-05-01 13:37:47 +0200 (mer. 01 mai 2013) $' | cut -d' ' -f2) PIDFILE="/var/run/fancontrol.pid" if [ -f "$PIDFILE" ] @@ -144,7 +144,7 @@ # $1 = padding function print_devices() { - local name + local name device for device in $DEVICES do @@ -157,7 +157,8 @@ # $1 = pwm file name function is_pwm_auto() { - ENABLE=${1}_enable + local ENABLE=${1}_enable + if [ -f $ENABLE ] then if [ "`cat $ENABLE`" -gt 1 ] @@ -172,7 +173,8 @@ # $1 = pwm file name function pwmdisable() { - ENABLE=${1}_enable + local ENABLE=${1}_enable + # No enable file? Just set to max if [ ! -f $ENABLE ] then @@ -211,7 +213,8 @@ # $1 = pwm file name function pwmenable() { - ENABLE=${1}_enable + local ENABLE=${1}_enable + if [ -w $ENABLE ] then echo 1 2>/dev/null > $ENABLE @@ -236,7 +239,8 @@ echo 'Found the following PWM controls:' for i in $PWM do - echo " $i" + P=`cat $i` + echo " $i current value: $P" if [ -w $i ] then # First check if PWM output is in automatic mode @@ -325,9 +329,9 @@ function pwmdetail() { - P=$1 - F=$2 - PLOT= + local P=$1 F=$2 + local X PLOT= TMP1 TMP2 + local threshold=100000 pwm S type $PLOTTER > /dev/null 2>&1 if [ $? -eq 0 ] @@ -358,7 +362,6 @@ > $TMP2 fi - local threshold=100000 let pwm=$MAX pwmenable $P while [ $pwm -ge 0 ] @@ -443,12 +446,13 @@ let pwmactivecount=0 let count=1 + S_MIN= for j in $GOODFAN do OS=`echo $SPEEDS | cut -d' ' -f$count` S=`echo $CURRENT_SPEEDS | cut -d' ' -f$count` echo " $j ... speed was $OS now $S" - let threshold=2*$OS/3 + let threshold=3*$OS/4 if [ $S -lt $threshold ] then echo " It appears that fan $j" @@ -461,7 +465,6 @@ let pwmactivecount=1 pwmactive="$i ${pwmactive}" fanactive="$j ${fanactive}" - fanactive_min="$S ${fanactive_min}" # Give all correlated fans time to return to full speed sleep $DELAY @@ -471,9 +474,15 @@ exit 1 fi else - fanactive="$j+${fanactive}" #not supported yet by fancontrol - fanactive_min="$S+${fanactive_min}" + fanactive="$j+${fanactive}" fi + + # Keep track of the slowest fan controlled by one PWM + if [ -z "$S_MIN" ] || [ $S -lt $S_MIN ] + then + S_MIN=$S + fi + S=`cat $j` if [ $S -lt $threshold ] then @@ -506,8 +515,11 @@ if [ "$X" = "y" -o "$X" = "Y" ] then pwmactive="$i ${pwmactive}" + fanactive_min="0 $fanactive_min" fi echo + else + fanactive_min="$S_MIN $fanactive_min" fi done @@ -656,6 +668,8 @@ # $1 = pwm value below which the fan is stopped function TestMinStart() { + local fanok FANTEST + echo echo 'Now we increase the PWM value in 10-unit-steps.' echo 'Let the fan stop completely, then press return until the' @@ -781,6 +795,8 @@ function SaveConfig() { + local tmpfile + RememberDevices "$FCTEMPS" "$FCFANS" echo | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/prog/sensors/main.c ^ |
@@ -60,7 +60,7 @@ " -f, --fahrenheit Show temperatures in degrees fahrenheit\n" " -A, --no-adapter Do not show adapter for each chip\n" " --bus-list Generate bus statements for sensors.conf\n" - " -u Raw output (debugging only)\n" + " -u Raw output\n" " -v, --version Display the program version\n" "\n" "Use `-' after `-c' to read the config file from stdin.\n" | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/prog/sensors/sensors.1 ^ |
@@ -22,7 +22,7 @@ .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" -.TH sensors 1 "October 2007" "lm-sensors 3" "Linux User's Manual" +.TH sensors 1 "November 2012" "lm-sensors 3" "Linux User's Manual" .SH NAME sensors \- print sensors information .SH SYNOPSIS @@ -62,7 +62,10 @@ .IP "-A, --no-adapter" Do not show the adapter for each chip. .IP -u -Raw output. This mode is only meant for debugging. +Raw output. This mode is suitable for debugging and for post-processing +of the output by scripts. It is also useful when writing a configuration +file because it shows the raw input names which must be referenced in the +configuration file. .IP "-v, --version" Print the program version and exit. .IP "-f, --fahrenheit" | ||
[-] [+] | Changed | lm_sensors-3.3.4.tar.bz2/version.h ^ |
@@ -1 +1 @@ -#define LM_VERSION "3.3.3" +#define LM_VERSION "3.3.4" |