Difference between revisions of "Lm sensors"

From ArchWiki
Jump to: navigation, search
m (Installation: link to package)
(change category to Category:System monitors)
 
(120 intermediate revisions by 40 users not shown)
Line 1: Line 1:
[[Category:Mainboards and BIOS (English)]]
+
{{DISPLAYTITLE:lm_sensors}}
[[Category:CPU (English)]]
+
[[Category:System monitors]]
[[Category:Daemons and system services (English)]]
+
[[Category:CPU]]
{{i18n|lm sensors}}
+
[[cs:Lm-sensors]]
[http://www.lm-sensors.org/ lm_sensors] (Linux-monitoring sensors), a free open source software-tool for Linux, provides tools and drivers for monitoring temperatures, voltage, and fans.
+
[[de:Lm sensors]]
 +
[[es:Lm-sensors]]
 +
[[ja:Lm sensors]]
 +
[[ru:Lm-sensors]]
 +
[[zh-hans:Lm sensors]]
 +
{{Related articles start}}
 +
{{Related|Fan speed control}}
 +
{{Related|hddtemp}}
 +
{{Related|monitorix}}
 +
{{Related articles end}}
 +
[http://lm-sensors.org/ lm_sensors] (Linux monitoring sensors) is a free and open-source application that provides tools and drivers for monitoring temperatures, voltage, and fans. This document explains how to install, configure, and use lm_sensors.
  
This document tells you how to install, setup, and use '''lm_sensors''' so that you can monitor CPU and/or motherboard temperature and fan speeds.
+
== Installation ==
 +
[[Install]] the {{Pkg|lm_sensors}} package.
  
== Notice for kernels >=2.6.31 ==
+
{{Note|More documentation is at the [https://github.com/groeck/lm-sensors/tree/master/doc GitHub repository]. In the future these may be installed, see {{Bug|48354}}.}}
A change in version 2.6.31 has made sensors stop working for some users.  See [http://www.lm-sensors.org/wiki/FAQ/Chapter3#Mysensorshavestoppedworkinginkernel2.6.31 this FAQ entry] for a detailed explanation and for some example errors. To fix sensors, add the following to your kernel boot line and reboot your machine.
 
{{Warning|In some situations, this may be dangerous.  Consult the FAQ for details.}}
 
  
acpi_enforce_resources=lax
+
== Setup ==
 +
Use ''sensors-detect'' as root to detect and generate a list of kernel modules:
 +
{{Warning|Do not use anything other than the default options (by just hitting {{ic|Enter}}), unless you know exactly what you are doing. See [[#Laptop screen issues after running sensors-detect]].}}
  
If using [[grub]], edit {{Filename|/boot/grub/menu.lst}}:
+
  # sensors-detect
  title          Arch Linux
 
root            (hd0,1)
 
kernel          /boot/vmlinuz-linux root=/dev/sda2 ro quiet acpi_enforce_resources=lax
 
initrd          /boot/initramfs-linux.img
 
  
If using [[grub2]], edit {{Filename|/etc/grub/defaults}} and then rebuild {{Filename|/boot/grub/grub.cfg}}.  The following is an example of a completed grub.cfg:
+
It will ask to probe for various hardware. The "safe" answers are the defaults, so just hitting {{ic|Enter}} to all the questions will generally not cause any problems. This will create the {{ic|/etc/conf.d/lm_sensors}} configuration file which is used by {{ic|lm_sensors.service}} to automatically load kernel modules on boot.
<pre>menuentry 'Arch Linux, with Linux vmlinuz-linux' --class archlinux --class gnu-linux --class gnu --class os {
 
        load_video
 
        insmod part_msdos
 
        insmod ext2
 
        set root='(/dev/sda,msdos2)'
 
        search --no-floppy --fs-uuid --set=root 1cc527cc-26a0-40c8-a7ec-364f7fcd0e41
 
        echo    'Loading Linux vmlinuz-linux ...'
 
        linux  /vmlinuz-linux root=/dev/disk/by-uuid/de78e45a-760e-4f39-8884-e3cf5b9b09fb ro quiet acpi_enforce_resources=lax
 
        echo    'Loading initial ramdisk ...'
 
        initrd  /initramfs-linux.img
 
}</pre>
 
  
== Usage ==
+
When the detection is finished, a summary of the probes is presented.
=== Installation ===
 
Install the {{Package Official|lm_sensors}} package from [extra]:
 
# pacman -S lm_sensors
 
  
=== Setting up lm_sensors ===
+
Example:
Use '''sensors-detect''' to detect and generate a list of kernel modules<br><pre># sensors-detect</pre>This will create the configuration and store it in {{Filename|/etc/conf.d/lm_sensors}}. Be sure you answer YES to the questions about probing various sensors.  When the script is finished, you will be presented with a summary of the probes, example from my system
+
{{hc|# sensors-detect|<nowiki>
<pre>Now follows a summary of the probes I have just done.
+
This program will help you determine which kernel modules you need
Just press ENTER to continue:
+
to load to use lm_sensors most effectively. It is generally safe
Driver `it87':
+
and recommended to accept the default answers to all questions,
  * ISA bus, address 0x290
+
unless you know what you're doing.
    Chip `ITE IT8718F Super IO Sensors' (confidence: 9)
+
 
Driver `coretemp':
+
Some south bridges, CPUs or memory controllers contain embedded sensors.
  * Chip `Intel Core family thermal sensor' (confidence: 9)</pre>
+
Do you want to scan for them? This is totally safe. (YES/no):  
If you receive follow message:
+
Module cpuid loaded successfully.
No i2c device files found.
+
Silicon Integrated Systems SIS5595...                      No
Try this command:
+
VIA VT82C686 Integrated Sensors...                          No
# modprobe i2c-dev
+
VIA VT8231 Integrated Sensors...                            No
Automatically load the kernel modules at boot time by adding '''sensors''' to the '''DAEMONS''' array in {{Filename|/etc/rc.conf}}<pre>DAEMONS=(syslog-ng crond ... sensors ...)</pre>Alternatively, manually add them to your '''MODULES''' array in {{Filename|/etc/rc.conf}} <pre>MODULES=(coretemp it87 acpi-cpufreq)</pre> You do '''NOT''' need both the DAEMONS setting and the MODULES setting.
+
AMD K8 thermal sensors...                                   No
 +
AMD Family 10h thermal sensors...                           No
 +
 
 +
...
  
=== Testing your lm_sensors ===
+
Now follows a summary of the probes I have just done.
To test your setup, load the kernel modules manually or by using the sensors init script.  You do '''NOT''' have to do both.
+
Just press ENTER to continue:
Example manually adding them
 
# modprobe it87
 
# modprobe coretemp
 
Example using the script
 
# /etc/rc.d/sensors start
 
  
You should see something like this when you run sensors
+
Driver `coretemp':
<pre>$ sensors
+
  * Chip `Intel digital thermal sensor' (confidence: 9)
coretemp-isa-0000
 
Adapter: ISA adapter
 
Core 0:     +30.0°C  (high = +76.0°C, crit = +100.0°C)
 
  
coretemp-isa-0001
+
Driver `lm90':
Adapter: ISA adapter
+
  * Bus `SMBus nForce2 adapter at 4d00'
Core 1:     +30.0°C  (high = +76.0°C, crit = +100.0°C)
+
    Busdriver `i2c_nforce2', I2C address 0x4c
 +
    Chip `Winbond W83L771AWG/ASG' (confidence: 6)
  
coretemp-isa-0002
+
Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no):
Adapter: ISA adapter
+
ln -s '/usr/lib/systemd/system/lm_sensors.service' '/etc/systemd/system/multi-user.target.wants/lm_sensors.service'
Core 2:      +32.0°C  (high = +76.0°C, crit = +100.0°C) 
+
Unloading i2c-dev... OK
 +
Unloading cpuid... OK
 +
</nowiki>}}
  
coretemp-isa-0003
+
{{Note|A systemd service is automatically enabled if users answer '''YES''' when asked about generating {{ic|/etc/conf.d/lm_sensors}}Answering '''YES''' also automatically starts the service.}}
Adapter: ISA adapter
 
Core 3:      +30.0°C (high = +76.0°C, crit = +100.0°C) 
 
  
it8718-isa-0290
+
== Running sensors ==
 +
Example running {{ic|sensors}}:
 +
{{hc|$ sensors|<nowiki>
 +
coretemp-isa-0000
 
Adapter: ISA adapter
 
Adapter: ISA adapter
in0:        +1.17 V  (min =  +0.00 V, max =  +4.08 V) 
+
Core 0:      +35.0°C  (crit = +105.0°C)
in1:        +1.31 V  (min =  +1.28 V, max =  +1.68 V) 
+
Core 1:      +32.0°C  (crit = +105.0°C)
in2:        +3.28 V  (min =  +2.78 V, max =  +3.78 V) 
 
in3:        +2.88 V  (min =  +2.67 V, max =  +3.26 V) 
 
in4:        +2.98 V  (min =  +2.50 V, max =  +3.49 V) 
 
in5:        +1.34 V  (min =  +0.58 V, max =  +1.34 V)  ALARM
 
in6:        +2.02 V  (min =  +1.04 V, max =  +1.36 V)  ALARM
 
in7:        +2.83 V  (min =  +2.67 V, max =  +3.26 V) 
 
Vbat:        +3.28 V
 
fan1:      1500 RPM  (min = 3245 RPM)  ALARM
 
fan2:          0 RPM  (min = 3245 RPM)  ALARM
 
fan3:          0 RPM  (min = 3245 RPM)  ALARM
 
temp1:      +18.0°C  (low  = +127.0°C, high = +64.0°C) sensor = thermal diode
 
temp2:      +32.0°C  (low  = +127.0°C, high = +64.0°C) sensor = thermistor
 
temp3:      +38.0°C  (low  = +127.0°C, high = +64.0°C)  sensor = thermistor
 
cpu0_vid:  +2.050 V
 
  
acpitz-virtual-0
+
w83l771-i2c-0-4c
Adapter: Virtual device
+
Adapter: SMBus nForce2 adapter at 4d00
temp1:       +18.0°C  (crit = +64.0°C)</pre>
+
temp1:       +28.0°C  (low  = -40.0°C, high = +70.0°C)
 +
                      (crit = +85.0°C, hyst = +75.0°C)
 +
temp2:        +37.4°C (low  = -40.0°C, high = +70.0°C)
 +
                      (crit = +110.0°C, hyst = +100.0°C)
 +
</nowiki>}}
  
=== Reading SPD values from memory modules (Optional) ===
+
=== Reading SPD values from memory modules (optional) ===
  
To read the SPD timing values from your memory modules, install {{Package AUR|i2c-tools}} from [[AUR]]. Once you have i2c-tools installed you will need to load the eeprom kernel module.
+
To read the SPD timing values from memory modules, install the {{pkg|i2c-tools}} package. Once installed, load the {{ic|eeprom}} [[kernel module]].
 
  # modprobe eeprom
 
  # modprobe eeprom
Finally you can view your memory information with
 
$ decode-dimms
 
  
Here is an example output from my machine:
+
Finally, view memory information with {{ic|decode-dimms}}.
<pre>$ decode-dimms  
 
# decode-dimms version 5733 (2009-06-09 13:13:41 +0200)
 
  
 +
Here is partial output from one machine:
 +
{{hc|# decode-dimms|<nowiki>
 
Memory Serial Presence Detect Decoder
 
Memory Serial Presence Detect Decoder
 
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
 
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Line 171: Line 151:
 
Part Number                                    OCZ3G1600LV2G     
 
Part Number                                    OCZ3G1600LV2G     
  
 +
...
 +
</nowiki>}}
 +
 +
== Using sensor data ==
 +
=== Graphical front-ends ===
 +
 +
There are a variety of front-ends for sensors data.
 +
 +
* {{App|psensor|GTK+ application for monitoring hardware sensors, including temperatures and fan speeds. Monitors motherboard and CPU (using lm-sensors), Nvidia GPUs (using XNVCtrl), and harddisks (using [[hddtemp]] or libatasmart).|https://wpitchoune.net/psensor/|{{Pkg|psensor}}}}
 +
* {{App|xsensors|X11 interface to lm_sensors.|http://linuxhardware.org/xsensors/|{{Pkg|xsensors}}}}
 +
 +
For specific [[Desktop environments]]:
 +
* {{App|Freon (GNOME Shell extension)|Extension for displaying CPU temperature, disk temperature, video card temperature , voltage and fan RPM in [[GNOME]] Shell.|https://github.com/UshakovVasilii/gnome-shell-extension-freon|{{AUR|gnome-shell-extension-freon}}}}
 +
* {{App|GNOME Sensors Applet|Applet for the [[GNOME]] Panel to display readings from hardware sensors, including CPU temperature, fan speeds and voltage readings.|http://sensors-applet.sourceforge.net/|{{Pkg|sensors-applet}}}}
 +
* {{App|lm-sensors (LXPanel plugin)|Monitor temperature/voltages/fan speeds in [[LXDE]] through lm-sensors.|http://danamlund.dk/sensors_lxpanel_plugin/|{{AUR|sensors-lxpanel-plugin}}}}
 +
* {{App|MATE Sensors Applet|Display readings from hardware sensors in your [[MATE]] panel.|https://github.com/mate-desktop/mate-sensors-applet|{{Pkg|mate-sensors-applet}}}}
 +
* {{App|Sensors (Xfce4 panel plugin)|Hardware sensors plugin for the [[Xfce]] panel.|http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin|{{Pkg|xfce4-sensors-plugin}}}}
 +
* {{App|Thermal Monitor (Plasma 5 applet)|[[KDE]] Plasma applet for monitoring CPU, GPU and other available temperature sensors.|https://github.com/kotelnik/plasma-applet-thermal-monitor|{{AUR|plasma5-applets-thermal-monitor-git}}}}
 +
 +
=== sensord ===
 +
There is an optional daemon called sensord (included with the {{Pkg|lm_sensors}} package) which can log data to a round robin database (rrd) and later visualize graphically.  See the sensord man page for details.
 +
 +
==Tips and tricks==
 +
=== Adjusting values ===
 +
In some cases, the data displayed might be incorrect or users may wish to rename the output.
 +
Use cases include:
 +
* Incorrect temperature values due to a wrong offset (i.e. temps are reported 20 °C higher then actual).
 +
* Users wish to rename the output of some sensors.
 +
* The cores might be displayed in an incorrect order.
 +
 +
All of the above (and more) can be adjusted by overriding the package provides settings in {{ic|/etc/sensors3.conf}} by creating {{ic|/etc/sensors.d/foo}} wherein any number of tweaks will override the default values.  It is recommended to rename 'foo' to the motherboard brand and model but this naming nomenclature is optional.
  
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0051
+
{{Note|Do not edit /etc/sensors3.conf directly since package updates will overwrite any changes thus losing them.}}
Guessing DIMM is in                            bank 2
 
  
---=== SPD EEPROM Information ===---
+
==== Example 1. Adjusting temperature offsets ====
EEPROM CRC of bytes 0-116                      OK (0x583F)
+
This is a real example on a Zotac ION-ITX-A-U motherboard.  The coretemp values are off by 20 °C (too high) and are adjusted down to Intel specs.
# of bytes written to SDRAM EEPROM              176
+
 
Total number of bytes in EEPROM                512
+
{{hc|$ sensors|<nowiki>
Fundamental Memory type                        DDR3 SDRAM
+
coretemp-isa-0000
Module Type                                    UDIMM
+
Adapter: ISA adapter
 +
Core 0:      +57.0°C  (crit = +125.0°C)
 +
Core 1:      +55.0°C  (crit = +125.0°C)
 +
...
 +
</nowiki>}}
 +
 
 +
Run {{ic|sensors}} with the {{ic|-u}} switch to see what options are available for each physical chip (raw mode):
 +
{{hc|$ sensors -u|<nowiki>
 +
coretemp-isa-0000
 +
Adapter: ISA adapter
 +
Core 0:
 +
  temp2_input: 57.000
 +
  temp2_crit: 125.000
 +
  temp2_crit_alarm: 0.000
 +
Core 1:
 +
  temp3_input: 55.000
 +
  temp3_crit: 125.000
 +
  temp3_crit_alarm: 0.000
 +
...
 +
</nowiki>}}
 +
 
 +
Create the following file overriding the default values:
 +
{{hc|/etc/sensors.d/Zotac-IONITX-A-U|<nowiki>
 +
chip "coretemp-isa-0000"
 +
  label temp2 "Core 0"
 +
  compute temp2 @-20,@-20
 +
 
 +
  label temp3 "Core 1"
 +
  compute temp3 @-20,@-20
 +
</nowiki>}}
  
---=== Memory Characteristics ===---
+
Now invoking {{ic|sensors}} shows the adjust values:
Fine time base                                  2.500 ps
+
{{hc|$ sensors|<nowiki>
Medium time base                                0.125 ns
+
coretemp-isa-0000
Maximum module speed                            1066MHz (PC3-8533)
+
Adapter: ISA adapter
Size                                            2048 MB
+
Core 0:      +37.0°C  (crit = +105.0°C)
Banks x Rows x Columns x Bits                  8 x 14 x 10 x 64
+
Core 1:      +35.0°C  (crit = +105.0°C)
Ranks                                          2
+
...
SDRAM Device Width                              8 bits
+
</nowiki>}}
tCL-tRCD-tRP-tRAS                              7-7-7-33
 
Supported CAS Latencies (tCL)                  8T, 7T, 6T, 5T
 
  
---=== Timing Parameters ===---
+
==== Example 2. Renaming labels ====
Minimum Write Recovery time (tWR)              15.000 ns
+
This is a real example on an Asus A7M266.  The user wishes more verbose names for the temperature labels 'temp1' and 'temp2':
Minimum Row Active to Row Active Delay (tRRD)  7.500 ns
+
{{hc|$ sensors|<nowiki>
Minimum Active to Auto-Refresh Delay (tRC)     49.500 ns
+
as99127f-i2c-0-2d
Minimum Recovery Delay (tRFC)                   110.000 ns
+
Adapter: SMBus Via Pro adapter at e800
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
+
...
Minimum Read to Pre-charge CMD Delay (tRTP)    7.500 ns
+
temp1:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
Minimum Four Activate Window Delay (tFAW)      30.000 ns
+
temp2:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
 +
...
 +
</nowiki>}}
  
---=== Optional Features ===---
+
Create the following file to override the default values:
Operable voltages                              1.5V
+
{{hc|/etc/sensors.d/Asus_A7M266|<nowiki>
RZQ/6 supported?                                Yes
+
chip "as99127f-*"
RZQ/7 supported?                                Yes
+
  label temp1 "Mobo Temp"
DLL-Off Mode supported?                        No
+
  label temp2 "CPU0 Temp"
Operating temperature range                    0-85C
+
</nowiki>}}
Refresh Rate in extended temp range            1X
 
Auto Self-Refresh?                              Yes
 
On-Die Thermal Sensor readout?                  No
 
Partial Array Self-Refresh?                    No
 
Thermal Sensor Accuracy                        Not implemented
 
SDRAM Device Type                              Standard Monolithic
 
  
---=== Physical Characteristics ===---
+
Now invoking {{ic|sensors}} shows the adjust values:
Module Height (mm)                             15
+
{{hc|$ sensors|<nowiki>
Module Thickness (mm)                           1 front, 1 back
+
as99127f-i2c-0-2d
Module Width (mm)                              133.5
+
Adapter: SMBus Via Pro adapter at e800
Module Reference Card                          B
+
...
 +
Mobo Temp:        +35.0°C  (high = +0.0°C, hyst = -128.0°C)
 +
CPU0 Temp:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
 +
...
 +
</nowiki>}}
  
---=== Manufacturer Data ===---
+
==== Example 3. Renumbering cores for multi-CPU systems ====
Module Manufacturer                            Invalid
+
This is a real example on an HP Z600 workstation with dual Xeons.  The actual numbering of physical cores is incorrect: numbered 0, 1, 9, 10 which is repeated into the second CPU.  Most users expect the core temperatures to report out in sequential order, i.e. 0,1,2,3,4,5,6,7.
Manufacturing Location Code                    0x02
+
{{hc|$ sensors|<nowiki>
Part Number                                    OCZ3G1600LV2G   
+
coretemp-isa-0000
 +
Adapter: ISA adapter
 +
Core 0:      +65.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core 1:      +65.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core 9:      +66.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core 10:      +66.0°C  (high = +85.0°C, crit = +95.0°C)
  
 +
coretemp-isa-0004
 +
Adapter: ISA adapter
 +
Core 0:      +54.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core 1:      +56.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core 9:      +60.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core 10:      +61.0°C  (high = +85.0°C, crit = +95.0°C)
 +
...
 +
</nowiki>}}
  
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0052
+
Again, run {{ic|sensors}} with the {{ic|-u}} switch to see what options are available for each physical chip:
Guessing DIMM is in                            bank 3
 
  
---=== SPD EEPROM Information ===---
+
{{hc|$ sensors -u coretemp-isa-0000|<nowiki>
EEPROM CRC of bytes 0-116                      OK (0x583F)
+
coretemp-isa-0000
# of bytes written to SDRAM EEPROM              176
+
Adapter: ISA adapter
Total number of bytes in EEPROM                512
+
Core 0:
Fundamental Memory type                        DDR3 SDRAM
+
  temp2_input: 61.000
Module Type                                    UDIMM
+
  temp2_max: 85.000
 +
  temp2_crit: 95.000
 +
  temp2_crit_alarm: 0.000
 +
Core 1:
 +
  temp3_input: 61.000
 +
  temp3_max: 85.000
 +
  temp3_crit: 95.000
 +
  temp3_crit_alarm: 0.000
 +
Core 9:
 +
  temp11_input: 62.000
 +
  temp11_max: 85.000
 +
  temp11_crit: 95.000
 +
Core 10:
 +
  temp12_input: 63.000
 +
  temp12_max: 85.000
 +
  temp12_crit: 95.000
 +
</nowiki>}}
  
---=== Memory Characteristics ===---
+
{{hc|$ sensors -u coretemp-isa-0004|<nowiki>
Fine time base                                  2.500 ps
+
coretemp-isa-0004
Medium time base                                0.125 ns
+
Adapter: ISA adapter
Maximum module speed                            1066MHz (PC3-8533)
+
Core 0:
Size                                            2048 MB
+
  temp2_input: 53.000
Banks x Rows x Columns x Bits                  8 x 14 x 10 x 64
+
  temp2_max: 85.000
Ranks                                          2
+
  temp2_crit: 95.000
SDRAM Device Width                              8 bits
+
  temp2_crit_alarm: 0.000
tCL-tRCD-tRP-tRAS                              7-7-7-33
+
Core 1:
Supported CAS Latencies (tCL)                  8T, 7T, 6T, 5T
+
  temp3_input: 54.000
 +
  temp3_max: 85.000
 +
  temp3_crit: 95.000
 +
  temp3_crit_alarm: 0.000
 +
Core 9:
 +
  temp11_input: 59.000
 +
  temp11_max: 85.000
 +
  temp11_crit: 95.000
 +
Core 10:
 +
  temp12_input: 59.000
 +
  temp12_max: 85.000
 +
  temp12_crit: 95.000
 +
...
 +
</nowiki>}}
  
---=== Timing Parameters ===---
+
Create the following file overriding the default values:
Minimum Write Recovery time (tWR)              15.000 ns
+
{{hc|/etc/sensors.d/HP_Z600|<nowiki>
Minimum Row Active to Row Active Delay (tRRD)  7.500 ns
+
chip "coretemp-isa-0000"
Minimum Active to Auto-Refresh Delay (tRC)      49.500 ns
+
  label temp2 "Core 0"
Minimum Recovery Delay (tRFC)                  110.000 ns
+
  label temp3 "Core 1"
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
+
  label temp11 "Core 2"
Minimum Read to Pre-charge CMD Delay (tRTP)    7.500 ns
+
  label temp12 "Core 3"
Minimum Four Activate Window Delay (tFAW)      30.000 ns
 
  
---=== Optional Features ===---
+
chip "coretemp-isa-0004"
Operable voltages                              1.5V
+
  label temp2 "Core 4"
RZQ/6 supported?                                Yes
+
  label temp3 "Core 5"
RZQ/7 supported?                                Yes
+
  label temp11 "Core 6"
DLL-Off Mode supported?                        No
+
  label temp12 "Core 7"</nowiki>}}
Operating temperature range                    0-85C
 
Refresh Rate in extended temp range            1X
 
Auto Self-Refresh?                              Yes
 
On-Die Thermal Sensor readout?                  No
 
Partial Array Self-Refresh?                    No
 
Thermal Sensor Accuracy                        Not implemented
 
SDRAM Device Type                              Standard Monolithic
 
  
---=== Physical Characteristics ===---
+
Now invoking {{ic|sensors}} shows the adjust values:
Module Height (mm)                             15
+
{{hc|$ sensors|<nowiki>
Module Thickness (mm)                          1 front, 1 back
+
coretemp-isa-0000
Module Width (mm)                               133.5
+
Adapter: ISA adapter
Module Reference Card                          B
+
Core0:        +64.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core1:        +63.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core2:        +65.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core3:        +66.0°C  (high = +85.0°C, crit = +95.0°C)
  
---=== Manufacturer Data ===---
+
coretemp-isa-0004
Module Manufacturer                            Invalid
+
Adapter: ISA adapter
Manufacturing Location Code                    0x02
+
Core4:        +53.0°C  (high = +85.0°C, crit = +95.0°C)
Part Number                                    OCZ3G1600LV2G   
+
Core5:        +54.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core6:        +59.0°C  (high = +85.0°C, crit = +95.0°C)
 +
Core7:        +60.0°C  (high = +85.0°C, crit = +95.0°C)
 +
...
 +
</nowiki>}}
  
 +
=== Automatic lm_sensors deployment ===
 +
Users wishing to deploy lm_sensors on multiple machines can use the following to accept the defaults to all questions:
  
Number of SDRAM DIMMs detected and decoded: 3
+
# sensors-detect --auto
</pre>
 
  
== Using sensor data ==
+
== Troubleshooting ==
=== Graphical Frontends ===
 
There are a variety of front-ends for sensors data. Some are listed below.  The name in ''italicized text'' is the name of the package in the repo, in other words, you can install them via pacman.
 
  
#''sensors-applet'' -  an applet for the GNOME Panel to display readings from hardware sensors, including CPU temperature, fan speeds and voltage readings.
+
=== K10Temp module ===
#''ksensors'' - ksensors is nice lm_sensors frontend for KDE
 
#''xsensors'' - X11 interface to lm_sensors
 
#''xfce4-sensors-plugin'' - A lm_sensors plugin for the Xfce panel
 
#''[[conky]]'' - Conky is an advanced, highly configurable system monitor for X based on torsmo
 
#''kdeutils-superkaramba'' - Superkaramba is a tool which gives posibility to create different widgets for KDE desktop. Check the [http://www.kde-look.org/index.php?xcontentmode=38 karamba section on kde-look.org] for examples of making karamba front-ends for sensors data.
 
#''hardware-monitor'' - a GNOME Panel applet that displays some sensors readings as well as other hardware monitoring. [https://aur.archlinux.org/packages.php?ID=18093 AUR package]
 
=== Sensord ===
 
There is an optional daemon logging package called sensord that can log your data to a round robin database (rrd) that you can visualize graphically.  Placeholder for someone to write a wiki page on installation/configuration of [[sensord]].
 
  
==Troubleshooting==
+
Some K10 processors have issues with their temperature sensor.  From the kernel documentation ({{ic|linux-&lt;version&gt;/Documentation/hwmon/k10temp}}):
  
===Asus P8P67, Intel dh67cf motherboard===
+
:''All these processors have a sensor, but on those for Socket F or AM2+, the sensor may return inconsistent values (erratum 319).  The driver will refuse to load on these revisions unless users specify the {{ic|1=force=1}} module parameter.''
  
Issue: on Asus P8P67 and Intel DH67CF motherboard lm-sensors cannot detect fans. This related with lm-sensors yet not support NCT6776F chip.
+
:''Due to technical reasons, the driver can detect only the mainboard's socket type, not the processor's actual capabilities. Therefore, users of an AM3 processor on an AM2+ mainboard, can safely use the {{ic|1=force=1}} parameter.''
  
Solutions:
+
On affected machines the module will report "unreliable CPU thermal sensor; monitoring disabled". Users which to force it can:
* Upgrade kernel26 to 2.6.39. The module w83627ehf includes support for the Nuvoton NCT6776F in the stock kernel despite what http://www.lm-sensors.org/wiki/Devices says as of 2011-05-20.
 
* compile standalone driver.
 
  
You can download the source from http://mail.planet-ian.com/w83627ehf
+
# rmmod k10temp
 +
# modprobe k10temp force=1
  
Then execute:
+
Confirm that the sensor is in fact valid and reliable. If it is, can edit {{ic|/etc/modprobe.d/k10temp.conf}} and add:
$ cd <source dir>
 
$ make
 
# make install
 
# modprobe w83627ehf
 
You should add w83627ehf in MODULES array in {{Filename|/etc/rc.conf}}.
 
  
Put your {{Filename|/etc/sensors.d/sensors.conf}} following text:
+
options k10temp force=1
{{file|name=/etc/sensors.d/sensors.conf|content=
 
# nct6776 values for Asus p8p67
 
chip "nct6775-*" "nct6776-*"
 
    label temp1 "MB"
 
    set temp1_max 40
 
    set temp1_max_hyst 35
 
  
    ignore temp2
+
This will allow the module to load at boot.
  
    label temp3 "CPU"
+
=== Asus Z97/Z190 motherboards ===
  
    label fan1 "Chassis1"
+
With some recent Asus motherboards, fan and voltage sensor access may require the NCT6775 module:
    label fan2 "CPU"
 
    label fan3 "Power"
 
    label fan4 "Chassis2"
 
  
    set fan1_min 200
+
  # modprobe nct6775
    set fan2_min 400
 
    set fan3_min 300
 
    set fan4_min 200
 
    ignore fan5
 
  
    label in0 "Vcore"
+
and add to the kernel boot parameters:
    set in0_min  1 * 0.80
 
    set in0_max  1 * 1.35
 
  
    label in1 "+12V"
+
  acpi_enforce_resources=lax
    compute in1 @ * 12, @ / 12
 
    set in1_min  12 * 0.90
 
    set in1_max  12 * 1.10
 
  
    label in2 "AVCC"
+
=== Gigabyte GA-J1900N-D3V ===
    set in2_min  3.3 * 0.90
 
    set in2_max  3.3 * 1.10
 
  
    label in3 "+3.3V"
+
The motherboard use the ITE IT8620E chip (useful also to read voltages, mainboard temp, fan speed).
    set in3_min  3.3 * 0.90
+
As of October 2014, lm_sensors has no driver support for chip ITE IT8620E [https://hwmon.wiki.kernel.org/device_support_status_g_i] [http://comments.gmane.org/gmane.linux.drivers.sensors/35168].
    set in3_max  3.3 * 1.10
+
lm_sensors developers had a report that the chip is somewhat compatible with the IT8728F for the hardware monitoring part. However, as of August 2016, [https://www.kernel.org/doc/Documentation/hwmon/it87] lists the IT8620E as supported.
  
    label in4 "+5V"
+
You can load the module at runtime with modprobe:
    compute in4 @ * 5, @ / 5
 
    set in4_min  5 * 0.90
 
    set in4_max  5 * 1.10
 
  
    ignore in5
+
$ modprobe it87 force_id=0x8728
  
    label in7 "3VSB"
+
Or you can [[Kernel modules|load the modules]] during boot process by creating the following two files:
    set in7_min  3.3 * 0.90
 
    set in7_max  3.3 * 1.10
 
  
    label in8 "Vbat"
+
{{hc|/etc/modules-load.d/it87.conf|2=
    set in8_min  3.3 * 0.90
+
it87
    set in8_max  3.3 * 1.10
 
 
}}
 
}}
  
And execute:
+
{{hc|/etc/modprobe.d/it87.conf|2=
sensors -s
+
options it87 force_id=0x8603
 
+
}}
===K10Temp Module===
 
  
Issue: There's a bug in k10temp with >=2.6.39 kernels that when loading the k10temp module an error is thrown: "k10temp unreliable CPU thermal sensor; monitoring disabled".
+
Once the module is loaded you can use the ''sensors'' tool to probe the chip.
  
Solution:
+
Now you can also use [[fancontrol]] to control the speedsteps of your case fan.
* Load module with force=1
 
# rmmod k10temp
 
# modprobe k10temp force=1
 
Confirm with [[Lm_sensors#Testing your lm_sensors]] that the sensor is in fact valid and reliable, if it is you can then make it apply at boot:
 
Edit "/etc/modprobe.d/k10temp.conf" and add:
 
options k10temp force=1
 
  
==See also==
+
=== Laptop screen issues after running sensors-detect ===
*[[hddtemp]] - Software to read temps of HDDs.
+
This is caused by lm-sensors messing with the Vcom values of the screen while probing for sensors.
*[[monitorix]] - Monitorix is a free, open source, lightweight system monitoring tool designed to monitor as many services and system resources as possible.
+
It has been discussed and solved at the forums already: https://bbs.archlinux.org/viewtopic.php?id=193048
 +
However, make sure to read through the thread carefully before running any of the suggested commands.

Latest revision as of 17:19, 20 October 2018

lm_sensors (Linux monitoring sensors) is a free and open-source application that provides tools and drivers for monitoring temperatures, voltage, and fans. This document explains how to install, configure, and use lm_sensors.

Installation

Install the lm_sensors package.

Note: More documentation is at the GitHub repository. In the future these may be installed, see FS#48354.

Setup

Use sensors-detect as root to detect and generate a list of kernel modules:

Warning: Do not use anything other than the default options (by just hitting Enter), unless you know exactly what you are doing. See #Laptop screen issues after running sensors-detect.
# sensors-detect

It will ask to probe for various hardware. The "safe" answers are the defaults, so just hitting Enter to all the questions will generally not cause any problems. This will create the /etc/conf.d/lm_sensors configuration file which is used by lm_sensors.service to automatically load kernel modules on boot.

When the detection is finished, a summary of the probes is presented.

Example:

# sensors-detect
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): 
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No

...

Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Driver `lm90':
  * Bus `SMBus nForce2 adapter at 4d00'
    Busdriver `i2c_nforce2', I2C address 0x4c
    Chip `Winbond W83L771AWG/ASG' (confidence: 6)

Do you want to overwrite /etc/conf.d/lm_sensors? (YES/no): 
ln -s '/usr/lib/systemd/system/lm_sensors.service' '/etc/systemd/system/multi-user.target.wants/lm_sensors.service'
Unloading i2c-dev... OK
Unloading cpuid... OK
Note: A systemd service is automatically enabled if users answer YES when asked about generating /etc/conf.d/lm_sensors. Answering YES also automatically starts the service.

Running sensors

Example running sensors:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +35.0°C  (crit = +105.0°C)
Core 1:       +32.0°C  (crit = +105.0°C)

w83l771-i2c-0-4c
Adapter: SMBus nForce2 adapter at 4d00
temp1:        +28.0°C  (low  = -40.0°C, high = +70.0°C)
                       (crit = +85.0°C, hyst = +75.0°C)
temp2:        +37.4°C  (low  = -40.0°C, high = +70.0°C)
                       (crit = +110.0°C, hyst = +100.0°C)

Reading SPD values from memory modules (optional)

To read the SPD timing values from memory modules, install the i2c-tools package. Once installed, load the eeprom kernel module.

# modprobe eeprom

Finally, view memory information with decode-dimms.

Here is partial output from one machine:

# decode-dimms
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others


Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in                             bank 1

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                       OK (0x583F)
# of bytes written to SDRAM EEPROM              176
Total number of bytes in EEPROM                 512
Fundamental Memory type                         DDR3 SDRAM
Module Type                                     UDIMM

---=== Memory Characteristics ===---
Fine time base                                  2.500 ps
Medium time base                                0.125 ns
Maximum module speed                            1066MHz (PC3-8533)
Size                                            2048 MB
Banks x Rows x Columns x Bits                   8 x 14 x 10 x 64
Ranks                                           2
SDRAM Device Width                              8 bits
tCL-tRCD-tRP-tRAS                               7-7-7-33
Supported CAS Latencies (tCL)                   8T, 7T, 6T, 5T

---=== Timing Parameters ===---
Minimum Write Recovery time (tWR)               15.000 ns
Minimum Row Active to Row Active Delay (tRRD)   7.500 ns
Minimum Active to Auto-Refresh Delay (tRC)      49.500 ns
Minimum Recovery Delay (tRFC)                   110.000 ns
Minimum Write to Read CMD Delay (tWTR)          7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.500 ns
Minimum Four Activate Window Delay (tFAW)       30.000 ns

---=== Optional Features ===---
Operable voltages                               1.5V
RZQ/6 supported?                                Yes
RZQ/7 supported?                                Yes
DLL-Off Mode supported?                         No
Operating temperature range                     0-85C
Refresh Rate in extended temp range             1X
Auto Self-Refresh?                              Yes
On-Die Thermal Sensor readout?                  No
Partial Array Self-Refresh?                     No
Thermal Sensor Accuracy                         Not implemented
SDRAM Device Type                               Standard Monolithic

---=== Physical Characteristics ===---
Module Height (mm)                              15
Module Thickness (mm)                           1 front, 1 back
Module Width (mm)                               133.5
Module Reference Card                           B

---=== Manufacturer Data ===---
Module Manufacturer                             Invalid
Manufacturing Location Code                     0x02
Part Number                                     OCZ3G1600LV2G     

...

Using sensor data

Graphical front-ends

There are a variety of front-ends for sensors data.

  • psensor — GTK+ application for monitoring hardware sensors, including temperatures and fan speeds. Monitors motherboard and CPU (using lm-sensors), Nvidia GPUs (using XNVCtrl), and harddisks (using hddtemp or libatasmart).
https://wpitchoune.net/psensor/ || psensor
  • xsensors — X11 interface to lm_sensors.
http://linuxhardware.org/xsensors/ || xsensors

For specific Desktop environments:

  • Freon (GNOME Shell extension) — Extension for displaying CPU temperature, disk temperature, video card temperature , voltage and fan RPM in GNOME Shell.
https://github.com/UshakovVasilii/gnome-shell-extension-freon || gnome-shell-extension-freonAUR
  • GNOME Sensors Applet — Applet for the GNOME Panel to display readings from hardware sensors, including CPU temperature, fan speeds and voltage readings.
http://sensors-applet.sourceforge.net/ || sensors-applet
  • lm-sensors (LXPanel plugin) — Monitor temperature/voltages/fan speeds in LXDE through lm-sensors.
http://danamlund.dk/sensors_lxpanel_plugin/ || sensors-lxpanel-pluginAUR
  • MATE Sensors Applet — Display readings from hardware sensors in your MATE panel.
https://github.com/mate-desktop/mate-sensors-applet || mate-sensors-applet
  • Sensors (Xfce4 panel plugin) — Hardware sensors plugin for the Xfce panel.
http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin || xfce4-sensors-plugin
  • Thermal Monitor (Plasma 5 applet)KDE Plasma applet for monitoring CPU, GPU and other available temperature sensors.
https://github.com/kotelnik/plasma-applet-thermal-monitor || plasma5-applets-thermal-monitor-gitAUR

sensord

There is an optional daemon called sensord (included with the lm_sensors package) which can log data to a round robin database (rrd) and later visualize graphically. See the sensord man page for details.

Tips and tricks

Adjusting values

In some cases, the data displayed might be incorrect or users may wish to rename the output. Use cases include:

  • Incorrect temperature values due to a wrong offset (i.e. temps are reported 20 °C higher then actual).
  • Users wish to rename the output of some sensors.
  • The cores might be displayed in an incorrect order.

All of the above (and more) can be adjusted by overriding the package provides settings in /etc/sensors3.conf by creating /etc/sensors.d/foo wherein any number of tweaks will override the default values. It is recommended to rename 'foo' to the motherboard brand and model but this naming nomenclature is optional.

Note: Do not edit /etc/sensors3.conf directly since package updates will overwrite any changes thus losing them.

Example 1. Adjusting temperature offsets

This is a real example on a Zotac ION-ITX-A-U motherboard. The coretemp values are off by 20 °C (too high) and are adjusted down to Intel specs.

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +57.0°C  (crit = +125.0°C)
Core 1:       +55.0°C  (crit = +125.0°C)
...

Run sensors with the -u switch to see what options are available for each physical chip (raw mode):

$ sensors -u
coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 57.000
  temp2_crit: 125.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 55.000
  temp3_crit: 125.000
  temp3_crit_alarm: 0.000
...

Create the following file overriding the default values:

/etc/sensors.d/Zotac-IONITX-A-U
chip "coretemp-isa-0000"
  label temp2 "Core 0"
  compute temp2 @-20,@-20

  label temp3 "Core 1"
  compute temp3 @-20,@-20

Now invoking sensors shows the adjust values:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +37.0°C  (crit = +105.0°C)
Core 1:       +35.0°C  (crit = +105.0°C)
...

Example 2. Renaming labels

This is a real example on an Asus A7M266. The user wishes more verbose names for the temperature labels 'temp1' and 'temp2':

$ sensors
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
...
temp1:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
temp2:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
...

Create the following file to override the default values:

/etc/sensors.d/Asus_A7M266
chip "as99127f-*"
  label temp1 "Mobo Temp"
  label temp2 "CPU0 Temp"

Now invoking sensors shows the adjust values:

$ sensors
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
...
Mobo Temp:        +35.0°C  (high =  +0.0°C, hyst = -128.0°C)
CPU0 Temp:        +47.5°C  (high = +100.0°C, hyst = +75.0°C)
...

Example 3. Renumbering cores for multi-CPU systems

This is a real example on an HP Z600 workstation with dual Xeons. The actual numbering of physical cores is incorrect: numbered 0, 1, 9, 10 which is repeated into the second CPU. Most users expect the core temperatures to report out in sequential order, i.e. 0,1,2,3,4,5,6,7.

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core 1:       +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core 9:       +66.0°C  (high = +85.0°C, crit = +95.0°C)
Core 10:      +66.0°C  (high = +85.0°C, crit = +95.0°C)

coretemp-isa-0004
Adapter: ISA adapter
Core 0:       +54.0°C  (high = +85.0°C, crit = +95.0°C)
Core 1:       +56.0°C  (high = +85.0°C, crit = +95.0°C)
Core 9:       +60.0°C  (high = +85.0°C, crit = +95.0°C)
Core 10:      +61.0°C  (high = +85.0°C, crit = +95.0°C)
...

Again, run sensors with the -u switch to see what options are available for each physical chip:

$ sensors -u coretemp-isa-0000
coretemp-isa-0000
Adapter: ISA adapter
Core 0:
  temp2_input: 61.000
  temp2_max: 85.000
  temp2_crit: 95.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 61.000
  temp3_max: 85.000
  temp3_crit: 95.000
  temp3_crit_alarm: 0.000
Core 9:
  temp11_input: 62.000
  temp11_max: 85.000
  temp11_crit: 95.000
Core 10:
  temp12_input: 63.000
  temp12_max: 85.000
  temp12_crit: 95.000
$ sensors -u coretemp-isa-0004
coretemp-isa-0004
Adapter: ISA adapter
Core 0:
  temp2_input: 53.000
  temp2_max: 85.000
  temp2_crit: 95.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 54.000
  temp3_max: 85.000
  temp3_crit: 95.000
  temp3_crit_alarm: 0.000
Core 9:
  temp11_input: 59.000
  temp11_max: 85.000
  temp11_crit: 95.000
Core 10:
  temp12_input: 59.000
  temp12_max: 85.000
  temp12_crit: 95.000
...

Create the following file overriding the default values:

/etc/sensors.d/HP_Z600
chip "coretemp-isa-0000"
  label temp2 "Core 0"
  label temp3 "Core 1"
  label temp11 "Core 2"
  label temp12 "Core 3"

chip "coretemp-isa-0004"
  label temp2 "Core 4"
  label temp3 "Core 5"
  label temp11 "Core 6"
  label temp12 "Core 7"

Now invoking sensors shows the adjust values:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core0:        +64.0°C  (high = +85.0°C, crit = +95.0°C)
Core1:        +63.0°C  (high = +85.0°C, crit = +95.0°C)
Core2:        +65.0°C  (high = +85.0°C, crit = +95.0°C)
Core3:        +66.0°C  (high = +85.0°C, crit = +95.0°C)

coretemp-isa-0004
Adapter: ISA adapter
Core4:        +53.0°C  (high = +85.0°C, crit = +95.0°C)
Core5:        +54.0°C  (high = +85.0°C, crit = +95.0°C)
Core6:        +59.0°C  (high = +85.0°C, crit = +95.0°C)
Core7:        +60.0°C  (high = +85.0°C, crit = +95.0°C)
...

Automatic lm_sensors deployment

Users wishing to deploy lm_sensors on multiple machines can use the following to accept the defaults to all questions:

# sensors-detect --auto

Troubleshooting

K10Temp module

Some K10 processors have issues with their temperature sensor. From the kernel documentation (linux-<version>/Documentation/hwmon/k10temp):

All these processors have a sensor, but on those for Socket F or AM2+, the sensor may return inconsistent values (erratum 319). The driver will refuse to load on these revisions unless users specify the force=1 module parameter.
Due to technical reasons, the driver can detect only the mainboard's socket type, not the processor's actual capabilities. Therefore, users of an AM3 processor on an AM2+ mainboard, can safely use the force=1 parameter.

On affected machines the module will report "unreliable CPU thermal sensor; monitoring disabled". Users which to force it can:

# rmmod k10temp
# modprobe k10temp force=1

Confirm that the sensor is in fact valid and reliable. If it is, can edit /etc/modprobe.d/k10temp.conf and add:

options k10temp force=1

This will allow the module to load at boot.

Asus Z97/Z190 motherboards

With some recent Asus motherboards, fan and voltage sensor access may require the NCT6775 module:

 # modprobe nct6775

and add to the kernel boot parameters:

 acpi_enforce_resources=lax

Gigabyte GA-J1900N-D3V

The motherboard use the ITE IT8620E chip (useful also to read voltages, mainboard temp, fan speed). As of October 2014, lm_sensors has no driver support for chip ITE IT8620E [1] [2]. lm_sensors developers had a report that the chip is somewhat compatible with the IT8728F for the hardware monitoring part. However, as of August 2016, [3] lists the IT8620E as supported.

You can load the module at runtime with modprobe:

$ modprobe it87 force_id=0x8728

Or you can load the modules during boot process by creating the following two files:

/etc/modules-load.d/it87.conf
it87
/etc/modprobe.d/it87.conf
options it87 force_id=0x8603

Once the module is loaded you can use the sensors tool to probe the chip.

Now you can also use fancontrol to control the speedsteps of your case fan.

Laptop screen issues after running sensors-detect

This is caused by lm-sensors messing with the Vcom values of the screen while probing for sensors. It has been discussed and solved at the forums already: https://bbs.archlinux.org/viewtopic.php?id=193048 However, make sure to read through the thread carefully before running any of the suggested commands.