← Documents Documentation/hwmon/abituguru.rst GitHub 원문 ↗

Linux 6.18.37 · Hardware Monitoring

Kernel driver abituguru

Abit uGuru revision 1·2 hwmon driver의 motherboard별 지원과 autodetection override입니다.

Source pathDocumentation/hwmon/abituguru.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

abituguru.rst:1-113

uGuru revision 1·2의 sensor monitoring driver이며 revision 1은 module parameter로 sensor autodetection을 보정할 수 있습니다.

문서 개요
항목
SourceDocumentation/hwmon/abituguru.rst
분량113 source lines
ChipW83L950D
ScopeHardware monitor only

Source와 핵심 지원 범위입니다.

핵심 흐름
Board revision 확인Driver와 parameter 선택Sensor monitoringVerbose log로 진단

Driver를 적용할 때의 기본 순서입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 Kernel driver abituguru
2 =======================
3
4 Supported chips:
5
6 * Abit uGuru revision 1 & 2 (Hardware Monitor part only)
7
8 Prefix: 'abituguru'
9
10 Addresses scanned: ISA 0x0E0
11
12 Datasheet: Not available, this driver is based on reverse engineering.
13 A "Datasheet" has been written based on the reverse engineering it
14 should be available in the same dir as this file under the name
15 abituguru-datasheet.
16
17 Note:
18 The uGuru is a microcontroller with onboard firmware which programs
19 it to behave as a hwmon IC. There are many different revisions of the
20 firmware and thus effectively many different revisions of the uGuru.
21 Below is an incomplete list with which revisions are used for which
22 Motherboards:
23
24 - uGuru 1.00 ~ 1.24 (AI7, KV8-MAX3, AN7) [1]_
25 - uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
26 - uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
27 - uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
28 - uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
29 - uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
30 AW9D-MAX) [2]_
31
32 .. [1] For revisions 2 and 3 uGuru's the driver can autodetect the
33 sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
34 this does not always work. For these uGuru's the autodetection can
35 be overridden with the bank1_types module param. For all 3 known
36 revision 1 motherboards the correct use of this param is:
37 bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
38 You may also need to specify the fan_sensors option for these boards
39 fan_sensors=5
40
41 .. [2] There is a separate abituguru3 driver for these motherboards,
42 the abituguru (without the 3 !) driver will not work on these
43 motherboards (and vice versa)!
44
45 Authors:
46 - Hans de Goede <j.w.r.degoede@hhs.nl>,
47 - (Initial reverse engineering done by Olle Sandberg
48 <ollebull@gmail.com>)
49
50
51 Module Parameters
52 -----------------
53
54 * force: bool
55 Force detection. Note this parameter only causes the
56 detection to be skipped, and thus the insmod to
57 succeed. If the uGuru can't be read the actual hwmon
58 driver will not load and thus no hwmon device will get
59 registered.
60 * bank1_types: int[]
61 Bank1 sensortype autodetection override:
62
63 * -1 autodetect (default)
64 * 0 volt sensor
65 * 1 temp sensor
66 * 2 not connected
67 * fan_sensors: int
68 Tell the driver how many fan speed sensors there are
69 on your motherboard. Default: 0 (autodetect).
70 * pwms: int
71 Tell the driver how many fan speed controls (fan
72 pwms) your motherboard has. Default: 0 (autodetect).
73 * verbose: int
74 How verbose should the driver be? (0-3):
75
76 * 0 normal output
77 * 1 + verbose error reporting
78 * 2 + sensors type probing info (default)
79 * 3 + retryable error reporting
80
81 Default: 2 (the driver is still in the testing phase)
82
83 Notice: if you need any of the first three options above please insmod the
84 driver with verbose set to 3 and mail me <j.w.r.degoede@hhs.nl> the output of:
85 dmesg | grep abituguru
86
87
88 Description
89 -----------
90
91 This driver supports the hardware monitoring features of the first and
92 second revision of the Abit uGuru chip found on Abit uGuru featuring
93 motherboards (most modern Abit motherboards).
94
95 The first and second revision of the uGuru chip in reality is a Winbond
96 W83L950D in disguise (despite Abit claiming it is "a new microprocessor
97 designed by the ABIT Engineers"). Unfortunately this doesn't help since the
98 W83L950D is a generic microcontroller with a custom Abit application running
99 on it.
100
101 Despite Abit not releasing any information regarding the uGuru, Olle
102 Sandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part
103 of the uGuru. Without his work this driver would not have been possible.
104
105 Known Issues
106 ------------
107
108 The voltage and frequency control parts of the Abit uGuru are not supported.
109
110 .. toctree::
111 :maxdepth: 1
112
113 abituguru-datasheet.rst
114

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

지원 revision과 motherboard 구분

1-49

`abituguru` driver는 Abit uGuru revision 1과 2의 hardware-monitor 부분을 지원합니다. Prefix는 `abituguru`, scan address는 ISA `0x0E0`입니다. 공식 datasheet는 없고 driver는 reverse engineering에 기반합니다. 같은 directory의 `abituguru-datasheet.rst`가 분석 결과로 작성된 자료입니다.

uGuru는 onboard firmware가 hardware-monitor IC처럼 동작하도록 program한 microcontroller입니다. Firmware revision이 많기 때문에 실질적으로 uGuru revision도 다양합니다.

알려진 조합은 uGuru 1.00~1.24의 AI7·KV8-MAX3·AN7, 2.0.0.0~2.0.4.2의 KV8-PRO, 2.1.0.0~2.1.2.8의 AS8·AV8·AA8·AG8·AA8XE·AX8, 2.2.0.0~2.2.0.6의 AA8 Fatal1ty, 2.3.0.0~2.3.0.9의 AN8입니다.

uGuru 3.0.0.0~3.0.x.x는 AW8·AL8·AT8·NI8 SLI·AT8 32X·AN8 32X·AW9D-MAX에 사용되지만 별도 `abituguru3` driver 대상입니다. `abituguru`와 `abituguru3`는 서로의 motherboard에서 동작하지 않습니다.

Revision 2와 3은 Bank1 sensor type(Voltage 또는 Temperature)을 autodetect할 수 있지만 revision 1에서는 항상 성공하지 않습니다. Revision 1은 `bank1_types`로 override할 수 있으며 세 알려진 board의 값은 `bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1`입니다. `fan_sensors=5`도 필요할 수 있습니다.

저자는 Hans de Goede이며 초기 reverse engineering은 Olle Sandberg가 수행했습니다.

uGuru driver 선택
Revision예시 motherboardDriver
1.00~1.24AI7 · KV8-MAX3 · AN7abituguru + sensor override 가능
2.0.0.0~2.0.4.2KV8-PROabituguru
2.1.0.0~2.1.2.8AS8 · AV8 · AA8 · AG8 · AA8XE · AX8abituguru
2.2.0.0~2.2.0.6AA8 Fatal1tyabituguru
2.3.0.0~2.3.0.9AN8abituguru
3.0.0.0~3.0.x.xAW8 · AL8 · AT8 계열abituguru3

Firmware revision과 driver는 교차 호환되지 않습니다.

Revision 1 설정
ISA 0x0E0에서 uGuru detectionFirmware·motherboard revision 확인Bank1 sensor type autodetection 결과 검토필요하면 지정 bank1_types 배열 적용Fan sensor가 누락되면 fan_sensors=5 지정

Autodetection이 틀리면 명시적 sensor 구성을 사용합니다.

Kernel driver abituguru
=======================

Supported chips:

  * Abit uGuru revision 1 & 2 (Hardware Monitor part only)

    Prefix: 'abituguru'

    Addresses scanned: ISA 0x0E0

    Datasheet: Not available, this driver is based on reverse engineering.
    A "Datasheet" has been written based on the reverse engineering it
    should be available in the same dir as this file under the name
    abituguru-datasheet.

    Note:
        The uGuru is a microcontroller with onboard firmware which programs
        it to behave as a hwmon IC. There are many different revisions of the
        firmware and thus effectively many different revisions of the uGuru.
        Below is an incomplete list with which revisions are used for which
        Motherboards:

        - uGuru 1.00    ~ 1.24    (AI7, KV8-MAX3, AN7) [1]_
        - uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
        - uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
        - uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
        - uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
        - uGuru 3.0.0.0 ~ 3.0.x.x (AW8, AL8, AT8, NI8 SLI, AT8 32X, AN8 32X,
          AW9D-MAX) [2]_

.. [1]  For revisions 2 and 3 uGuru's the driver can autodetect the
        sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
        this does not always work. For these uGuru's the autodetection can
        be overridden with the bank1_types module param. For all 3 known
        revision 1 motherboards the correct use of this param is:
        bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
        You may also need to specify the fan_sensors option for these boards
        fan_sensors=5

.. [2]  There is a separate abituguru3 driver for these motherboards,
        the abituguru (without the 3 !) driver will not work on these
        motherboards (and vice versa)!

Authors:
        - Hans de Goede <j.w.r.degoede@hhs.nl>,
        - (Initial reverse engineering done by Olle Sandberg
          <ollebull@gmail.com>)

Module parameter와 진단 출력

50-87

`force` boolean은 detection을 건너뛰어 `insmod`를 성공시키지만 실제 uGuru를 읽을 수 없으면 hwmon driver는 load되지 않고 hwmon device도 등록되지 않습니다.

`bank1_types` integer array는 Bank1 sensor-type autodetection을 override합니다. `-1`은 autodetect(default), `0`은 voltage sensor, `1`은 temperature sensor, `2`는 not connected입니다.

`fan_sensors`는 motherboard의 fan-speed sensor 수를 지정하고 `pwms`는 fan-speed control(PWM) 수를 지정합니다. 둘 다 기본값 0은 autodetect입니다.

`verbose`는 0~3입니다. 0은 normal output, 1은 verbose error reporting 추가, 2는 sensor-type probing info 추가, 3은 retryable-error reporting까지 추가합니다. Driver가 testing phase이므로 기본값은 2입니다.

앞의 `force`, `bank1_types`, `fan_sensors` 옵션이 필요하다면 `verbose=3`으로 driver를 load하고 `dmesg | grep abituguru` 출력을 maintainer에게 보내도록 문서는 요청합니다.

abituguru module parameter
Parameter기본
forcebool, detection skipfalse
bank1_types-1 auto · 0 volt · 1 temp · 2 disconnected-1 per sensor
fan_sensorsFan-speed sensor 수0 autodetect
pwmsFan PWM control 수0 autodetect
verbose0 normal ~ 3 retryable error2

Autodetection 보정과 debug verbosity를 제공합니다.

문제 보고 준비
필요한 detection override parameter 결정verbose=3과 함께 module loadHwmon device 등록 여부 확인dmesg | grep abituguru 실행출력과 motherboard 정보를 maintainer에게 전달

강제 옵션 사용 시 최대 verbosity의 log가 필요합니다.


Module Parameters
-----------------

* force: bool
                        Force detection. Note this parameter only causes the
                        detection to be skipped, and thus the insmod to
                        succeed. If the uGuru can't be read the actual hwmon
                        driver will not load and thus no hwmon device will get
                        registered.
* bank1_types: int[]
                        Bank1 sensortype autodetection override:

                          * -1 autodetect (default)
                          *  0 volt sensor
                          *  1 temp sensor
                          *  2 not connected
* fan_sensors: int
                        Tell the driver how many fan speed sensors there are
                        on your motherboard. Default: 0 (autodetect).
* pwms: int
                        Tell the driver how many fan speed controls (fan
                        pwms) your motherboard has. Default: 0 (autodetect).
* verbose: int
                        How verbose should the driver be? (0-3):

                           * 0 normal output
                           * 1 + verbose error reporting
                           * 2 + sensors type probing info (default)
                           * 3 + retryable error reporting

                        Default: 2 (the driver is still in the testing phase)

Notice: if you need any of the first three options above please insmod the
driver with verbose set to 3 and mail me <j.w.r.degoede@hhs.nl> the output of:
dmesg | grep abituguru

구현 배경과 지원 한계

88-113

이 driver는 Abit uGuru motherboard에서 revision 1과 2 chip의 hardware-monitor 기능을 지원합니다.

실제 revision 1·2 uGuru는 Abit이 자체 설계한 새 microprocessor라고 주장한 것과 달리 Winbond `W83L950D`입니다. 그러나 generic microcontroller에서 custom Abit application이 실행되므로 chip identity만으로 protocol을 알 수는 없습니다.

Abit은 uGuru 정보를 공개하지 않았지만 Olle Sandberg가 sensor 부분을 reverse engineer했고, 그 작업이 없었다면 driver도 만들 수 없었습니다.

알려진 한계로 voltage와 frequency control 부분은 지원하지 않습니다. 추가 protocol 정보는 하위 문서 `abituguru-datasheet.rst`를 참조합니다.

지원 범위
영역지원
Revision 1·2 hardware monitoring지원
Sensor reading·alarm·fan 관련 기능지원 범위
Voltage control미지원
Frequency control미지원
Revision 3abituguru3 driver 사용

Driver가 다루는 부분과 제외 영역입니다.

문서 탐색
Motherboard uGuru revision 확인Revision 1·2이면 abituguru 선택Hardware monitoring 기능만 사용Register protocol은 abituguru-datasheet.rst 확인Voltage·frequency control은 사용하지 않음

Board revision과 원하는 기능으로 driver·자료를 선택합니다.

Description
-----------

This driver supports the hardware monitoring features of the first and
second revision of the Abit uGuru chip found on Abit uGuru featuring
motherboards (most modern Abit motherboards).

The first and second revision of the uGuru chip in reality is a Winbond
W83L950D in disguise (despite Abit claiming it is "a new microprocessor
designed by the ABIT Engineers"). Unfortunately this doesn't help since the
W83L950D is a generic microcontroller with a custom Abit application running
on it.

Despite Abit not releasing any information regarding the uGuru, Olle
Sandberg <ollebull@gmail.com> has managed to reverse engineer the sensor part
of the uGuru. Without his work this driver would not have been possible.

Known Issues
------------

The voltage and frequency control parts of the Abit uGuru are not supported.

.. toctree::
   :maxdepth: 1

   abituguru-datasheet.rst