ASRock Z370M 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은 알려진 공급업체 중 하나이기 때문에 거부했습니다. 그리고 칩도 인식하는 것 같습니다. 하지만 소스 코드를 읽은 후 이 코드는 ASRock의 고객 ID를 모른다는 결론을 내릴 수 있었습니다.
이에 대해 아는 사람이 있다면(이 시점에서는 커널 담당자에게 문의하는 것이 더 나을 수 있지만) 이제 커널 로그에 다음 줄이 추가됩니다.
[406090.428581] nct6683 nct6683.2576: NCT6683D EC firmware version 1.0 build 07/18/16
고객 ID도 다음과 같습니다.0xe1b(이를 로그에 기록하려면 코드를 조정해야 합니다). 잘 확립된 ASRock(0xe2c)과 그리 멀지 않지만 아마도 그것은 단지 우연의 일치일 것입니다.