lm_sensors - Arch Linux 中文维基

跳至內容

# lm_sensors

出自 Arch Linux 中文维基

相關文章

- 風扇轉速控制
- hddtemp
- I2C
- monitorix

翻譯狀態：

- 本文（或部分內容）譯自 Lm sensors，最近一次同步於 2023-8-26，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

lm_sensors（Linux monitoring sensors，Linux 監控傳感器）是一個免費的開源應用程式，提供用於監控溫度、電壓和風扇的工具和驅動程序。本文檔介紹如何安裝、配置和使用 lm_sensors。

## 安裝

安裝 lm_sensors包 包。

注意：更多文檔請訪問 GitHub 存儲庫。以後可能會安裝這些，見 FS#48354。

## 配置

在 root 下使用 sensors-detect 來檢測並生成內核模塊列表：

警告：不要使用默認選項以外的任何選項（只需點擊 `Enter`），除非您確切地知道自己在做什麼。見#Laptop screen issues after running sensors-detect.。

    # sensors-detect

它將詢問探測各種硬體。默認答案是「safe（安全）」，因此只需對所有問題點擊 `Enter` 通常不會造成任何問題。這將創建 `/etc/conf.d/lm_sensors` 配置文件，該文件由 `lm_sensors.service` 用於在啟動時自動加載內核模塊。

檢測完成後，將對探測進行總結。

示例：

    # 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

注意：當被問及即將生成 `/etc/conf.d/lm_sensors` 時，如果用戶回答 YES，則會自動啟用 systemd 服務。回答 YES 也會自動啟動該服務。

## 運行傳感器

示例運行 `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)

### 添加雙列直插內存模塊（DIMM）溫度傳感器

要查找 DIMM 的溫度傳感器，請安裝 i2c-tools包 包。安裝後，加載 `i2c-dev` 內核模塊。

    # modprobe i2c_dev

要顯示所有列，在 root 下使用 i2cdetect：

    # i2cdetect -l

    i2c-2	smbus     	SMBus PIIX4 adapter port 2 at 0b00	SMBus adapter
    i2c-2	smbus     	SMBus PIIX4 adapter port 1 at 0b20	SMBus adapter
    i2c-0	smbus     	SMBus PIIX4 adapter port 0 at 0b00	SMBus adapter

否則，其輸出將顯示如下：

    i2c-2	unknown    	SMBus PIIX4 adapter port 2 at 0b00	N/A
    i2c-2	unknown    	SMBus PIIX4 adapter port 1 at 0b20	N/A
    i2c-0	unknown    	SMBus PIIX4 adapter port 0 at 0b00	N/A

在以下示例中，內存棒連接到總線 `SMBus 0`。i2cdetect 命令將顯示連接到總線的設備。`-y 0` 參數使用 `i2c-0` smbus。如果需要，檢查其他總線。

    # i2cdetect -y 0

    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:                         -- -- -- -- 0c -- -- --
    10: 10 -- -- -- -- -- -- -- 18 19 -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 4f
    50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- 77

RAM SPD（serial presence detect，串行存在檢查）從同一總線上的地址 `0x50` 開始，RAM 溫度傳感器從 `0x18` 開始。在本例中，有2個 DIMM 可用。地址 `0x18` 和 `0x19` 是 DIMM 溫度傳感器。

為了讀取內存棒的溫度，我們需要加載 `jc42` 內核模塊。您需要告訴模塊要使用哪些地址。此過程包括將 `模塊名` 和 `地址` 寫入 `smbus_path`。例如：

    # modprobe jc42
    # echo jc42 0x18 > /sys/bus/i2c/devices/i2c-0/new_device
    # echo jc42 0x19 > /sys/bus/i2c/devices/i2c-0/new_device

之後，您的內存棒溫度將可見：

    $ sensors

    jc42-i2c-0-19
    Adapter: SMBus PIIX4 adapter port 0 at 0b00
    temp1:        +50.7°C  (low  =  +0.0°C)                  ALARM (HIGH, CRIT)
                           (high =  +0.0°C, hyst =  +0.0°C)
                           (crit =  +0.0°C, hyst =  +0.0°C)

    jc42-i2c-0-18
    Adapter: SMBus PIIX4 adapter port 0 at 0b00
    temp1:        +51.8°C  (low  =  +0.0°C)                  ALARM (HIGH, CRIT)
                           (high =  +0.0°C, hyst =  +0.0°C)
                           (crit =  +0.0°C, hyst =  +0.0°C)

### 從內存模塊讀取電涌保護器（SPD）值（可選）

要從內存模塊中讀取 SPD 計時值，請安裝 i2c-tools包 包。安裝後，加載 `at24` 或 `eeprom` （已棄用）內核模塊。

    # modprobe at24

最後，使用 `decode-dimms` 查看內存信息。

這裡是一台機器的部分輸出：

    # 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

    ...

## 使用傳感器數據

### 圖形前端

傳感器數據有多種前端。

- psensor — GTK 應用程式，用於監測硬體傳感器，包括溫度和風扇速度。監控主板和 CPU（使用 lm-sensors）、Nvidia GPU（使用 XNVCtrl）和硬碟（使用 hddtemp 或 libatasmart）。

  https://wpitchoune.net/psensor/ || psensor包

- xsensors — lm-sensors 的 X11 介面。

  https://github.com/Mystro256/xsensors || xsensors包

- Netdata — 基於 Web 的系統監視器（netdata）。

  https://github.com/netdata/netdata || netdata包

- CoolerControl — 監測和控制冷卻設備的程序。

  https://gitlab.com/coolercontrol/coolercontrol || coolercontrolAUR

特定於桌面環境的：

- Freon (GNOME Shell extension) — 用於在 GNOME Shell 中顯示 CPU 溫度、磁碟溫度、顯卡溫度、電壓和風扇轉速的擴展。

  https://github.com/UshakovVasilii/gnome-shell-extension-freon || gnome-shell-extension-freonAUR

- GNOME Sensors Applet — GNOME 面板的小程序，用於顯示硬體傳感器的讀數，包括 CPU 溫度、風扇速度和電壓讀數。

  http://sensors-applet.sourceforge.net/ || sensors-applet包

- lm-sensors (LXPanel plugin) — 通過 lm-sensors 監測 LXDE 中的溫度/電壓/風扇速度。

  https://danamlund.dk/sensors_lxpanel_plugin/ || sensors-lxpanel-pluginAUR

- MATE Sensors Applet — 在 MATE 面板中顯示硬體傳感器的讀數。

  https://github.com/mate-desktop/mate-sensors-applet || mate-sensors-applet包

- Sensors (Xfce4 panel plugin) — Xfce 面板的硬體傳感器插件

  https://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin || xfce4-sensors-plugin包

- Thermal Monitor (Plasma 5 applet) — 用於監控 CPU、GPU 和其他可用溫度傳感器的 KDE Plasma 小程序。

  https://gitlab.com/agurenko/plasma-applet-thermal-monitor || plasma5-applets-thermal-monitor包

### sensord

有一個名為 sensord 的可選守護程序（包含在 lm_sensors包 包中），它可以將數據記錄到輪詢資料庫（round robin database，rrd）中，然後以圖形方式進行可視化。有關詳細信息，請參閱 sensord(8) 手冊頁。

## 提示和技巧

### 調整數值

在某些情況下，顯示的數據可能不正確，或者用戶可能希望重命名輸出。用例包括：

- 由於錯誤的偏移導致溫度值不正確（即報告的溫度比實際溫度高 20°C）。
- 用戶希望重命名某些傳感器的輸出。
- 核心可能以不正確的順序顯示。

以上所有用例（以及更多用例）都可以通過重寫包來進行調整。通過創建 `/etc/sensors.d/foo` ，包提供了 `/etc/sensors3.conf` 中的設置，其中任何數量的調整都將重寫默認值。建議將 'foo' 重命名為主板品牌和型號，但此命名法是可選的。

多個主板的自定義配置文件可以在 lm-sensors 包的 configs 目錄中找到，並用作模板。

注意：不要直接編輯 `/etc/sensors3.conf`，因為包更新將覆蓋任何更改，從而丟失這些更改。

#### 示例 1. 調整溫度偏移

這是 Zotac ION-ITX-A-U 主板上的一個真實例子。將堆芯溫度值降低了20°C（過高），並根據英特爾規格進行了調整。

    $ 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)
    ...

使用 `-u` 開關來運行 `sensors`，以查看每個物理晶片有哪些可用選項（原始模式）。如果您看到的一些原始標籤似乎是不可配置的，請查看 `/sys/class/hwmon` 目錄樹。這裡提到的每個設備都有一個 `name` 文件，可以用來匹配它引用的設備。然後嘗試該目錄引用的標籤。

    $ 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
    ...

創建以下文件以覆蓋默認值：

    /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

現在調用 `sensors` 顯示調整後的值：

    $ 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)
    ...

#### 示例 2. 重命名標籤

這是華碩 A7M266 上的一個真實例子。用戶希望溫度標籤`temp1` 和 `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)
    ...

創建以下文件以覆蓋默認值：

    /etc/sensors.d/Asus_A7M266

    chip "as99127f-*"
      label temp1 "Mobo Temp"
      label temp2 "CPU0 Temp"

現在調用 `sensors` 顯示調整後的值：

    $ 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)
    ...

#### 示例 3. 多 CPU 系統的核心重新編號

這是帶有雙至強 CPU 的惠普 Z600 工作站上的一個真實例子。物理核心的實際編號不正確：編號為 0、1、9、10，重複到第二個 CPU 中。大多數用戶希望堆芯溫度按順序報告，即 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)
    ...

同樣，使用 `-u` 開關來運行 `sensors`，以查看每個物理晶片有哪些可用選項：

    $ 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
    ...

創建以下文件以覆蓋默認值：

    /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"

現在調用 `sensors` 顯示調整後的值：

    $ 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)
    ...

### 自動化 lm_sensors 部署

希望在多台機器上部署 lm_sensors 的用戶可以使用以下命令接受所有問題的默認設置：

    # sensors-detect --auto

### S.M.A.R.T. 驅動器溫度

從內核 5.6 開始 `drivetemp` 模塊將通過硬體監控系統報告 SATA/SAS 溫度，但 `sensors-detect` 無法自動檢測到這一點，因此該模塊必須手動加載。

    # modprobe drivetemp

現在，您應該在 `sensors` 的輸出中看到類似的條目：

    sensors

    drivetemp-scsi-1-0
    Adapter: SCSI adapter
    temp1:        +33.0°C

    drivetemp-scsi-2-0
    Adapter: SCSI adapter
    temp1:        +32.0°C  (low  =  +0.0°C, high = +70.0°C)
                           (crit low =  +0.0°C, crit = +70.0°C)
                           (lowest = +29.0°C, highest = +41.0°C)

您現在可以在啟動時加載模塊。或者，手動將其添加到 `/etc/conf.d/lm-sensors` 的 `HWMON_MODULES` 行中。請注意，當 `sensors-detect` 被允許再次寫入此文件時，它將不會自動添加。

### 持久化設備名稱

許多軟體都希望在 `/sys/class/hwmon/hwmonX` 中找到傳感器設備，但通常情況下，提供 hwmon 接口的設備超過 1-2 個的系統上就無法在 `/sys/class/hwmon/hwmonX` 中正常找到傳感器設備了。軟體可能應該解析 `hwmon?/name` 或使用 lmsensors 庫，但遺憾的是，它們通常不會。一些軟體（例如 Monitorix（英語：Monitorix） 或它的某些模塊，即 amdgpu）期望在其他地方使用持久名稱。

因此，以下類型的 udev 規則可能是有用的。並不是所有的軟體都能使用它們（例如，KDE 系統監視器 - 不幸的是，這使得這些軟體在許多系統上幾乎毫無用處）。在許多情況下，只需在 udev 規則中匹配 hwmon 子系統和合適的名稱就足夠了，但並不總是如此！有關編寫規則的更多信息，請參閱 Udev 頁面。

不能在 `/sys` 層次下重命名或符號連結。 `SYMLINK+=` -語句也將不起作用。因此，我們需要使用 `RUN+=` 語句（注意，符號連結不必要像本例中那樣位於 `/dev` 之下 - 既沒有標準，也沒有合適的位置）。

    /udev/rules.d/99-persistent-hwmon-names

    # 我的主板传感器芯片：
    ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{name}=="nct6687", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/nct6678'"
    # 提供传感器的 USB 设备:
    ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{name}=="corsaircpro", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/corsaircpro'"
    # 我的 GPU：
    ACTION=="add", SUBSYSTEM=="hwmon", ATTRS{vendor}=="0x1002", ATTRS{device}=="0x73bf", RUN+="/bin/sh -c 'ln -s /sys$devpath /dev/rx6900xt'"

## 疑難解答

### K10Temp 模塊

一些 K10 處理器的溫度傳感器存在問題。有關更多信息，請參見k10temp文檔。

在受影響的機器上，模塊將報告「不可靠的 CPU 熱傳感器；監控已禁用（unreliable CPU thermal sensor; monitoring disabled）」。要強制監控，您可以運行以下命令：

    # rmmod k10temp
    # modprobe k10temp force=1

確認傳感器實際上是有效和可靠的。如果是，可以編輯 `/etc/modprobe.d/k10temp.conf` 並添加：

    options k10temp force=1

這將允許模塊在引導時加載。

### 華碩 B450M-A/A320M-K/A320M-K-BR 主板

自2020年11月，這些主板使用的是不受 it87 內核驅動支持的 IT8655E 晶片 [1]。不過，內核驅動的上游版本 [2] 支持它。DKMS 變體包含在 it87-dkms-gitAUR 中。

### 使用 AM4 插槽的華碩 B450/X399/X470 主板

某些新近的華碩主板使用 ITE IT8665E 晶片，訪問溫度，風扇和電壓傳感器可能需要 `asus-wmi-sensors` 模塊。從 5.17 開始它成為了主線內核的一部分：加載使用了 UEFI 接口的 `asus-wmi-sensors` 內核模塊，可能需要在某些主板上進行 BIOS 更新 [3]。

或者，`it87` 模塊直接從晶片讀取值，安裝 it87-dkms-gitAUR 並加載 `it87` 內核模塊。

### 華碩 H97/Z97/Z170/Z370i/X570/B550 主板

對於某些新近的華碩主板，風扇和電壓傳感器訪問可能需要加載 `nct6775` 內核模塊。

你還可能需要添加以下內核參數：

    acpi_enforce_resources=lax

更多信息見 https://bugzilla.kernel.org/show_bug.cgi?id=204807。

注意：從內核 5.16 開始 [4]，對於大多數主板來說，不再需要上述內核參數，應該避免使用。

### 華擎 Deskmini H470

Deskmini H470 的 STX 主板使用 NCT6683 晶片，為了訪問溫度、風扇和電壓傳感器，需要加載 `nct6683` 模塊。

為了獲得 `nct6683` 模塊的正確值，請創建一個模塊配置文件：

    /etc/modprobe.d/nct6683.conf

    options nct6683 force=1

### 技嘉 B250/Z370/B450M/B560M/B660M/Z690 主板

自2019年5月，一些技嘉主板使用 ITE IT8686E, ITE8689 (用於 B560 and B660M) 或 ITE8689E (用於 Z690) 晶片，it87 內核驅動不支持這些晶片 [5]。不過，內核驅動的上游版本 [6] 支持它。DKMS 變體包含在 it87-dkms-gitAUR 中。與 #華碩 H97/Z97/Z170/Z370i/X570/B550 主板一樣，在嘗試安裝模塊之前需要內核參數：

    acpi_enforce_resources=lax

此外，在加載模塊時提供晶片的 id，如下所示：

    # modprobe it87 force_id=0x8686
    或
    # modprobe it87 force_id=0x8689  # for B560
    # modprobe it87 force_id=0x8628  # for Z690

或者你可以在啟動過程中通過創建以下兩個文件加載模塊：

    /etc/modules-load.d/it87.conf

    it87

對於 Z690

    /etc/modprobe.d/it87.conf

    options it87 force_id=0x8628

對於其它的

    /etc/modprobe.d/it87.conf

    options it87 ignore_resource_conflict=1

一旦模塊被加載，您就可以使用 sensors 工具來探測晶片。

現在，您還可以使用風扇轉速控制來控制機箱風扇的轉速級數。

可選地,安裝 zenpower3-dkmsAUR 可以允許對主板的冷卻系統進行更大的微調。不過，它會禁用默認的 k10temp 模塊。

### 技嘉 GA-J1900N-D3V

該主板使用 ITE IT8620E 晶片（也可用於讀取電壓、主板溫度和風扇速度）。自2014年10月，lm_sensors 不支持晶片 ITE IT8620E 的驅動程序 [7] [8]。lm_sensors 的開發人員報告稱，該晶片與用於硬體監控的 IT8728F 部分兼容。然而，自2016年8月，[9] 列出了支持的 IT8620E。

你以在運行時使用 modprobe 加載模塊：

    $ modprobe it87 force_id=0x8728

或者你可以在啟動過程中通過創建以下兩個文件加載模塊：

    /etc/modules-load.d/it87.conf

    it87

    /etc/modprobe.d/it87.conf

    options it87 force_id=0x8603

一旦模塊被加載，您就可以使用 sensors 工具來探測晶片。

現在，您還可以使用風扇轉速控制來控制機箱風扇的轉速級數。

### 運行 sensors-detect 後筆記本電腦出現屏幕問題

這是由於 lm-sensors 在探測傳感器時干擾了屏幕的 Vcom 值造成的。論壇上已經討論並解決了這個問題： https://bbs.archlinux.org/viewtopic.php?id=193048 。不過，在運行任何建議的命令之前，請確保仔細閱讀帖子。

### 在 AMD Navi 2 GPU 上的 i2c 總線錯誤

目前，在 AMD Navi 2 GPU 上內核處理 i2c 總線讀取的方式中存在一個錯誤。該總線目前只能與 EEPROM 一起使用，嘗試將其與其他設備一起使用會導致其故障。這可能會導致崩潰、黑屏，甚至導致顯卡的異常行為，比如無法切換電源狀態。如果您有基於 Navi 2 的顯卡，目前建議不要掃描 i2c 總線。您可以在此處閱讀更多信息： https://gitlab.freedesktop.org/drm/amd/-/issues/1470

分類：​

- 系統監視器
- CPU

lm_sensors
新增話題