요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
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 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
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
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가 수행했습니다.
Firmware revision과 driver는 교차 호환되지 않습니다.
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에게 보내도록 문서는 요청합니다.
Autodetection 보정과 debug verbosity를 제공합니다.
강제 옵션 사용 시 최대 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`를 참조합니다.
Driver가 다루는 부분과 제외 영역입니다.
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
요약·해설
abituguru.rst:1-113uGuru revision 1·2의 sensor monitoring driver이며 revision 1은 module parameter로 sensor autodetection을 보정할 수 있습니다.
Source와 핵심 지원 범위입니다.
Driver를 적용할 때의 기본 순서입니다.