hwmon 驅動程序工作,但不工作
試圖讓 hwmon 在帶有華擎 Z370M Pro4 的系統上更充分地工作。coretemp 和 drivetemp 驅動程序似乎很好。然而,這塊板子也有一個 Nuvoton NCT6683 晶片,用於通常的電壓、風扇速度和溫度監控。這就是
sensors-detect
提出來的,當模組載入時,它看起來(有點)成功:[ 3.520633] nct6683: Forcibly enabling EC access. Data may be unusable. [ 3.521769] nct6683: Found NCT6683D or compatible chip at 0x2e:0xa10
但是,它並沒有作為感測器設備出現,原因似乎是它沒有在 hwmon 中註冊:
$ ls -l /sys/class/hwmon total 0 lrwxrwxrwx 1 root root 0 Jul 12 07:19 hwmon0 -> ../../devices/platform/coretemp.0/hwmon/hwmon0 lrwxrwxrwx 1 root root 0 Jul 12 07:19 hwmon1 -> ../../devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0/hwmon/hwmon1 lrwxrwxrwx 1 root root 0 Jul 12 07:19 hwmon2 -> ../../devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0/hwmon/hwmon2 lrwxrwxrwx 1 root root 0 Jul 12 07:19 hwmon3 -> ../../devices/pci0000:00/0000:00:17.0/ata3/host2/target2:0:0/2:0:0:0/hwmon/hwmon3 lrwxrwxrwx 1 root root 0 Jul 12 07:19 hwmon4 -> ../../devices/pci0000:00/0000:00:17.0/ata4/host3/target3:0:0/3:0:0:0/hwmon/hwmon4
但為什麼?我可以在某處錯誤配置核心嗎?如果我需要調試 hwmon 註冊,我該怎麼做?
請注意,韌體設置能夠很好地獲取感測器讀數,所以我知道硬體可以正常工作。
編輯:
Distro 是 Gentoo,帶有 Linux 版本 5.13.2,具有自定義配置。這是目前配置。
好吧,事實證明我所要做的就是用
force=1
. 我排除了這種可能性,因為它應該是針對“未知供應商”的,而華擎是已知供應商之一。另外,它似乎可以辨識晶片。但是閱讀原始碼,我不得不得出結論,這個沒有它知道的華擎客戶 ID。如果有人對此有所了解(儘管此時與核心人員交談會更好),現在核心日誌中還有一行:
[406090.428581] nct6683 nct6683.2576: NCT6683D EC firmware version 1.0 build 07/18/16
我還發現客戶 ID 是0xe1b(必須調整程式碼以將其寫入日誌)。與公認的華擎 (0xe2c) 相距不遠,但也許這只是巧合。
看起來 NCT6683 晶片包含不同 OEM 的“客戶 ID”,華擎最近被分配了自己的 ID。
2021 年 1 月送出的這個更新檔可能是必要的。它似乎包含在來自 Linus 的目前 5.12.x 和更新的核心中,但沒有包含在 5.10.50 中,這是撰寫本文時最新的長期支持的核心版本。
如果實際晶片版本是NCT6686D,則還需要另一個更新的更新檔:這是在 2021 年 3 月上旬開發的。NCT6686D 具有相同的感測器集,並且訪問方式顯然與 NCT6683D 完全相同,但具有不同的晶片ID。
除非您使用的發行版使用非常新的核心版本,否則
nct6683
您目前核心中的驅動程序可能太舊而無法包含這些更新檔。