hwmonドライバは動作しますが動作しません

hwmonドライバは動作しますが動作しません

ASRock Z3​​70M Pro4を使用しているシステムでは、hwmonがより完全に動作するようにしたいと思います。 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登録をデバッグする必要がある場合はどうすればよいですか?

ファームウェア設定がセンサーの読み取り値を正しく受信しているため、ハードウェアが動作していることがわかります。

編集する:

ディストリビューションはGentooで、Linuxバージョンはカスタム設定を含む5.13.2です。現在の構成です

答え1

NCT6683チップには、さまざまなOEMの「顧客ID」が含まれているようで、最近ASRockに独自のIDが割り当てられています。

2021年1月に提出されたこのパッチが必要な場合があります。これは、Linusの現在の5.12.xおよび最新のカーネルに含まれているように見えますが、この記事を書いた時点で最新の長期サポートカーネルバージョンである5.10.50には含まれていません。

実際のチップバージョンNCT6686D別の更新されたパッチが必要です。本製品は2021年3月上旬に開発された製品です。 NCT6686Dは同じセンサーセットを持ち、明らかにNCT6683Dとまったく同じ方法でアクセスされますが、チップIDは異なります。

非常に新しいカーネルバージョンを使用するディストリビューションを使用しない限り、現在のカーネルのドライバはnct6683これらのパッチを含めるには古すぎるかもしれません。

答え2

まあ、私がすべきことはモジュールをロードするだけでしたforce=1。私はこの可能性を「不明なサプライヤー」のためと見なし、ASRockは既知のサプライヤーの1つであるため拒否しました。そしてチップも認識しているようです。しかし、ソースコードを読んだ後、このコードはASRockの顧客IDを知らないと結論付けることができました。

これについて知っている人がいる場合(この時点ではカーネル担当者に連絡する方が良いかもしれませんが)、カーネルログに次の行が追加されます。

[406090.428581] nct6683 nct6683.2576: NCT6683D EC firmware version 1.0 build 07/18/16

顧客IDも次のとおりです。0xe1b(これをログに記録するにはコードを調整する必要があります)。よく確立されたASRock(0xe2c)からそれほど遠くはありませんが、おそらくそれはただ偶然の一致です。

関連情報