Super I/O Chip: erinevus redaktsioonide vahel

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
Märgis: Käsitsi tühistamine
342. rida: 342. rida:
 
* chatgpt/gemini/jt vestlustest on palju kasu seoste mõistmiseks
 
* chatgpt/gemini/jt vestlustest on palju kasu seoste mõistmiseks
 
* https://www.nuvoton.com/products/cloud-computing/i-o/super-i-o-series/
 
* https://www.nuvoton.com/products/cloud-computing/i-o/super-i-o-series/
  +
  +
<pre>
  +
02:03:16.018661 IP 10.2.21.82.9191 > 10.2.21.8.56768: Flags [.], ack 644, win 497, length 0
  +
02:03:16.356964 IP 172.22.0.3.64302 > 10.2.21.82.9191: Flags [S], seq 2827984523, win 65535, options [mss 1300,nop,wscale 6,nop,nop,TS val 596674520 ecr 0,sackOK,eol], length 0
  +
02:03:16.357040 IP 10.2.21.82.9191 > 172.22.0.3.64302: Flags [S.], seq 3353455976, ack 2827984524, win 65160, options [mss 1460,sackOK,TS val 2249009873 ecr 596674520,nop,wscale 7], length 0
  +
02:03:16.367878 IP 172.22.0.3.64302 > 10.2.21.82.9191: Flags [.], ack 1, win 2053, options [nop,nop,TS val 596674531 ecr 2249009873], length 0
  +
02:03:16.425709 IP 172.22.0.3.64302 > 10.2.21.82.9191: Flags [P.], seq 1:505, ack 1, win 2053, options [nop,nop,TS val 596674532 ecr 2249009873], length 504
  +
02:03:16.425761 IP 10.2.21.82.9191 > 172.22.0.3.64302: Flags [.], ack 505, win 506, options [nop,nop,TS val 2249009942 ecr 596674532], length 0
  +
02:03:17.152892 IP 10.2.21.7.3133 > 10.2.21.82.9191: Flags [S], seq 4239074236, win 4380, options [mss 1460,nop,wscale 0,sackOK,eol], length 0
  +
02:03:17.152966 IP 10.2.21.82.9191 > 10.2.21.7.3133: Flags [S.], seq 664915801, ack 4239074237, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
  +
02:03:17.153275 IP 10.2.21.7.3133 > 10.2.21.82.9191: Flags [.], ack 1, win 4380, length 0
  +
02:03:17.153318 IP 10.2.21.7.3133 > 10.2.21.82.9191: Flags [P.], seq 1:644, ack 1, win 4380, length 643
  +
02:03:17.153330 IP 10.2.21.82.9191 > 10.2.21.7.3133: Flags [.], ack 644, win 497, length 0
  +
02:03:17.166542 IP 10.2.21.7.1617 > 10.2.21.82.9191: Flags [R.], seq 644, ack 1, win 0, length 0
  +
  +
root@rv-nswa-01:/opt/pda/dc# docker logs -f 0 --tail 4
  +
[2025-10-21 23:04:31 +0000] [2330] [DEBUG] Ignoring connection reset
  +
[2025-10-21 23:04:31 +0000] [2330] [DEBUG] GET /
  +
[2025-10-21 23:04:31 +0000] [2330] [DEBUG] Ignoring EPIPE
  +
[2025-10-21 23:04:34 +0000] [2329] [DEBUG] Ignoring connection reset
  +
[2025-10-21 23:04:37 +0000] [2330] [DEBUG] Ignoring connection reset
  +
</pre>

Redaktsioon: 22. oktoober 2025, kell 02:04

Sissejuhatus

TODO

Mõisted

  • MSR (Model-Specific Register)
  • SPI (Serial Peripheral Interface)
  • I2C (Inter-Integrated Circuit)
  • SIO (Super I/O Chip)
  • SMBus (System Management Bus)
  • LPC (Low Pin Count)

Tööpõhimõte

Väited

  • nii nagu arvuti koostamisel pööratakse tähelepanu emaplaadil olevate sata või pcie pesade omadustele oleks asjakohane pöörata tähelepanu 'super i/o chip' mudelile (nt selleks, et linux oskaks temaga suhelda, lugeda erinevate andurite temperatuure, ventilaatorite pöördlemise kiirust jms)
  • desktop-workstation tüüpi arvutite puhul on operatsioonisüsteemi vahendusel seadmetega seotud andurite lugemine ainus viis saada näite teada; server tüüpi arvutite puhul on otsekohesem saada samade andurite näite teada ipmi/ilo/idrac/irmc/etc abil
  • operatsioonisüsteemi kaudu ic2/smbus/jt seadmetega suhtlemise avastamine võib olla üsna õpetlik riistvara ja operatsioonisüsteemi tarkvara tundmaõppimise seisukohalt

Tüüpilise 2023 aasta desktop arvuti plokkskeem võiks olla selline, Gigabyte näites X570 põhise emaplaadi näitel

20251005-amd-x570-chipset-based-computer-block-diagram-gigabyte-01.png

kus

  • super i/o chip antud joonisel on kinnitatud otse cpu külge
  • super i/o chip suhtleb cpu'ga kasutades LPC (low pin count) protokolli
  • juuniselt on näha, et antud juhul kasutatakse tootja ITE seadet
  • käesolev teema on selles mõttes huvitav, et komponentide vahel toimub andmevahetus mitte-pcie, mitte-usb jne st mitte tuntud protokollide abil
  • mitmes tekstis rõhutatakse, et super i/o chip on kinnitatud PCH ehk emaplaadil oleva chipset ehk south bridge külge

Tarkvara paigaldamine

i2c jms teemadega tegelemiseks on abiks süsteemis selline tarkvara

# apt-get install i2c-tools lm-sensors sysfsutils

Nuvoton

Asus 'TUF GAMING B550-PLUS' emaplaat kasutab Nuvoton super i/o kiipi kuigi seda otseselt hästi süsteemilt küsida ei saa, pigem kaudselt, st kui nuvoton draiveri laadimine õnnestub ja andmeid näeb, siis küllap on nuvoton kiip.

root@pve-svc-02:~# dmidecode -s baseboard-product-name
TUF GAMING B550-PLUS

i2cdetect väljund

root@pve-svc-02:~# i2cdetect -l
i2c-0	i2c       	Synopsys DesignWare I2C adapter 	I2C adapter
i2c-1	smbus     	SMBus PIIX4 adapter port 0 at 0b00	SMBus adapter
i2c-2	smbus     	SMBus PIIX4 adapter port 2 at 0b00	SMBus adapter
i2c-3	smbus     	SMBus PIIX4 adapter port 1 at 0b20	SMBus adapter
i2c-4	i2c       	nvkm-0000:04:00.0-bus-0000      	I2C adapter
i2c-5	i2c       	nvkm-0000:04:00.0-bus-0001      	I2C adapter
i2c-6	i2c       	nvkm-0000:04:00.0-bus-0002      	I2C adapter

Leidmiseks sobib kasutada utiliiti sensors-detect

root@pve-svc-02:~# sensors-detect
# sensors-detect version 3.6.0
# Board: ASUSTeK COMPUTER INC. TUF GAMING B550-PLUS
# Kernel: 6.8.12-11-pve x86_64
# Processor: AMD Ryzen 5 5500 (25/80/0)

This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.

Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no):
Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595...                       No
VIA VT82C686 Integrated Sensors...                          No
VIA VT8231 Integrated Sensors...                            No
AMD K8 thermal sensors...                                   No
AMD Family 10h thermal sensors...                           No
AMD Family 11h thermal sensors...                           No
AMD Family 12h and 14h thermal sensors...                   No
AMD Family 15h thermal sensors...                           No
AMD Family 16h thermal sensors...                           No
AMD Family 17h thermal sensors...                           No
AMD Family 15h power sensors...                             No
AMD Family 16h power sensors...                             No
Hygon Family 18h thermal sensors...                         No
Intel digital thermal sensor...                             No
Intel AMB FB-DIMM thermal sensor...                         No
Intel 5500/5520/X58 thermal sensor...                       No
VIA C7 thermal sensor...                                    No
VIA Nano thermal sensor...                                  No

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no):
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found `Nuvoton NCT6798D Super IO Sensors'                   Success!
    (address 0x290, driver `nct6775')
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No
..

kus

  • Nuvoton NCT6798D Super IO Sensor - leiti
  • ITE - samuti populaarne aga tagasihoidlikumalt Linux poolt toetatud - ei leitud
  • on natuke ebaselge, kus täpselt Nuvoton chip asub, vist kuidagi SMus PIIX4 adapteri taga
  • Synopsys DesignWare I2C adapter nagu puudub üldse, või ei ole kasutatav

ning kasutamiseks

root@pve-svc-02:~# modprobe nct6775
root@pve-svc-02:~# dmesg -T | tail -n 1
[Sun Oct  5 22:57:44 2025] nct6775: Found NCT6798D or compatible chip at 0x2e:0x290

Ilma nct6775 moodulita tunneb sensors utiliit ära pci seadmetega

root@pve-svc-02:~# lspci | egrep -i "Mell|Nvidia|nvme" | nl
     1	01:00.0 Ethernet controller: Mellanox Technologies MT2894 Family [ConnectX-6 Lx]
     2	01:00.1 Ethernet controller: Mellanox Technologies MT2894 Family [ConnectX-6 Lx]
     3	04:00.0 VGA compatible controller: NVIDIA Corporation G72 [GeForce 7500 LE] (rev a1)
     4	08:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller S4LV008[Pascal]
     5	0b:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller S4LV008[Pascal]

ja cpu andurid

root@pve-svc-02:~# sensors
nouveau-pci-0400
Adapter: PCI adapter
temp1:        +51.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +130.0°C, hyst =  +2.0°C)
                       (emerg = +135.0°C, hyst =  +5.0°C)

mlx5-pci-0100
Adapter: PCI adapter
asic:         +59.0°C  (crit = +105.0°C, highest = +74.0°C)

nvme-pci-0b00
Adapter: PCI adapter
Composite:    +31.9°C  (low  = -273.1°C, high = +81.8°C)
                       (crit = +84.8°C)
Sensor 1:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +33.9°C  (low  = -273.1°C, high = +65261.8°C)

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +33.0°C

mlx5-pci-0101
Adapter: PCI adapter
asic:         +59.0°C  (crit = +105.0°C, highest = +74.0°C)

nvme-pci-0800
Adapter: PCI adapter
Composite:    +29.9°C  (low  = -273.1°C, high = +81.8°C)
                       (crit = +84.8°C)
Sensor 1:     +29.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)

kus

  • nouveau-pci-0400 - videokaart, pci aadress 04:00.0
  • mlx5-pci-0100 ja 0101 - võrgukaart (Mellanox), pcie aadressid 01:00.0 ja 01:00.1
  • nvem-pci-0b00 ja 0800 - nvme kettad, pcie aadressid 0b:00.0 ja 08:00.0
  • k10temp-pci-00c3 - cpu, virtual pcie aadress

nct6775 abil tuntakse ära lisaks x570 chipset ja super i/o chip endaga jms komponentidega seotud andurid

root@pve-svc-02:~# modprobe nct6775
root@pve-svc-02:~# sensors
nouveau-pci-0400
Adapter: PCI adapter
temp1:        +52.0°C  (high = +95.0°C, hyst =  +3.0°C)
                       (crit = +130.0°C, hyst =  +2.0°C)
                       (emerg = +135.0°C, hyst =  +5.0°C)

mlx5-pci-0100
Adapter: PCI adapter
asic:         +59.0°C  (crit = +105.0°C, highest = +74.0°C)

nvme-pci-0b00
Adapter: PCI adapter
Composite:    +31.9°C  (low  = -273.1°C, high = +81.8°C)
                       (crit = +84.8°C)
Sensor 1:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +33.9°C  (low  = -273.1°C, high = +65261.8°C)

nct6798-isa-0290
Adapter: ISA adapter
in0:                      616.00 mV (min =  +0.00 V, max =  +1.74 V)
in1:                        1.02 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in2:                        3.39 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in3:                        3.34 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in4:                        1.01 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in5:                      960.00 mV (min =  +0.00 V, max =  +0.00 V)
in6:                      216.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in7:                        3.39 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in8:                        3.26 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in9:                        1.82 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in10:                     704.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in11:                       2.05 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in12:                       1.03 V  (min =  +0.00 V, max =  +0.00 V)  ALARM
in13:                     288.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
in14:                     216.00 mV (min =  +0.00 V, max =  +0.00 V)  ALARM
fan1:                        0 RPM  (min =    0 RPM)
fan2:                      514 RPM  (min =    0 RPM)
fan3:                        0 RPM  (min =    0 RPM)
fan4:                     1275 RPM  (min =    0 RPM)
fan5:                        0 RPM  (min =    0 RPM)
fan6:                        0 RPM  (min =    0 RPM)
fan7:                      497 RPM  (min =    0 RPM)
SYSTIN:                    +28.0°C  (high = +80.0°C, hyst = +75.0°C)
                                    (crit = +125.0°C)  sensor = thermistor
CPUTIN:                    +28.0°C  (high = +80.0°C, hyst = +75.0°C)
                                    (crit = +125.0°C)  sensor = thermistor
AUXTIN0:                   +93.0°C  (high = +80.0°C, hyst = +75.0°C)  ALARM
                                    (crit = +125.0°C)  sensor = thermistor
AUXTIN1:                   +43.0°C  (high = +80.0°C, hyst = +75.0°C)
                                    (crit = +125.0°C)  sensor = thermistor
AUXTIN2:                   -62.0°C  (high = +80.0°C, hyst = +75.0°C)
                                    (crit = +100.0°C)  sensor = thermistor
AUXTIN3:                   +83.0°C  (high = +80.0°C, hyst = +75.0°C)  ALARM
                                    (crit = +100.0°C)  sensor = thermistor
AUXTIN4:                   +28.0°C  (high = +80.0°C, hyst = +75.0°C)
PECI Agent 0 Calibration:  +28.0°C  (high = +80.0°C, hyst = +75.0°C)
PCH_CHIP_CPU_MAX_TEMP:      +0.0°C
PCH_CHIP_TEMP:              +0.0°C
PCH_CPU_TEMP:               +0.0°C
PCH_MCH_TEMP:               +0.0°C
TSI0_TEMP:                 +33.5°C
intrusion0:               ALARM
intrusion1:               ALARM
beep_enable:              disabled

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +33.8°C

mlx5-pci-0101
Adapter: PCI adapter
asic:         +59.0°C  (crit = +105.0°C, highest = +74.0°C)

nvme-pci-0800
Adapter: PCI adapter
Composite:    +29.9°C  (low  = -273.1°C, high = +81.8°C)
                       (crit = +84.8°C)
Sensor 1:     +29.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +31.9°C  (low  = -273.1°C, high = +65261.8°C)                                    (crit = +100.0°C)

kus

  • lisandus nct6798-isa-0290 ehk Nuvoton chip
  • Nuvoton on nö pseudo isa siini chip
root@pve-svc-02:~# systool -v -b isa
Bus = "isa"

On natuke ebaselge kus täpselt Nuvoton chip asub, vist kuidagi SMus PIIX4 adapteri taga

root@pve-svc-02:~# systool -v -b i2c
Bus = "i2c"

  Device = "i2c-0"
  Device path = "/sys/devices/platform/AMDI0010:03/i2c-0"
    delete_device       = <store method only>
    name                = "Synopsys DesignWare I2C adapter"
    new_device          = <store method only>
    uevent              =
    waiting_for_supplier= "0"

  Device = "i2c-1"
  Device path = "/sys/devices/pci0000:00/0000:00:14.0/i2c-1"
    delete_device       = <store method only>
    name                = "SMBus PIIX4 adapter port 0 at 0b00"
    new_device          = <store method only>
    uevent              =

  Device = "i2c-2"
  Device path = "/sys/devices/pci0000:00/0000:00:14.0/i2c-2"
    delete_device       = <store method only>
    name                = "SMBus PIIX4 adapter port 2 at 0b00"
    new_device          = <store method only>
    uevent              =

  Device = "i2c-3"
  Device path = "/sys/devices/pci0000:00/0000:00:14.0/i2c-3"
    delete_device       = <store method only>
    name                = "SMBus PIIX4 adapter port 1 at 0b20"
    new_device          = <store method only>
    uevent              =

  Device = "i2c-4"
  Device path = "/sys/devices/pci0000:00/0000:00:02.1/0000:02:00.2/0000:03:00.0/0000:04:00.0/i2c-4"
    delete_device       = <store method only>
    name                = "nvkm-0000:04:00.0-bus-0000"
    new_device          = <store method only>
    uevent              =

  Device = "i2c-5"
  Device path = "/sys/devices/pci0000:00/0000:00:02.1/0000:02:00.2/0000:03:00.0/0000:04:00.0/i2c-5"
    delete_device       = <store method only>
    name                = "nvkm-0000:04:00.0-bus-0001"
    new_device          = <store method only>
    uevent              =

  Device = "i2c-6"
  Device path = "/sys/devices/pci0000:00/0000:00:02.1/0000:02:00.2/0000:03:00.0/0000:04:00.0/i2c-6"
    delete_device       = <store method only>
    name                = "nvkm-0000:04:00.0-bus-0002"
    new_device          = <store method only>
    uevent              =

Kasulikud lisamaterjalid

02:03:16.018661 IP 10.2.21.82.9191 > 10.2.21.8.56768: Flags [.], ack 644, win 497, length 0
02:03:16.356964 IP 172.22.0.3.64302 > 10.2.21.82.9191: Flags [S], seq 2827984523, win 65535, options [mss 1300,nop,wscale 6,nop,nop,TS val 596674520 ecr 0,sackOK,eol], length 0
02:03:16.357040 IP 10.2.21.82.9191 > 172.22.0.3.64302: Flags [S.], seq 3353455976, ack 2827984524, win 65160, options [mss 1460,sackOK,TS val 2249009873 ecr 596674520,nop,wscale 7], length 0
02:03:16.367878 IP 172.22.0.3.64302 > 10.2.21.82.9191: Flags [.], ack 1, win 2053, options [nop,nop,TS val 596674531 ecr 2249009873], length 0
02:03:16.425709 IP 172.22.0.3.64302 > 10.2.21.82.9191: Flags [P.], seq 1:505, ack 1, win 2053, options [nop,nop,TS val 596674532 ecr 2249009873], length 504
02:03:16.425761 IP 10.2.21.82.9191 > 172.22.0.3.64302: Flags [.], ack 505, win 506, options [nop,nop,TS val 2249009942 ecr 596674532], length 0
02:03:17.152892 IP 10.2.21.7.3133 > 10.2.21.82.9191: Flags [S], seq 4239074236, win 4380, options [mss 1460,nop,wscale 0,sackOK,eol], length 0
02:03:17.152966 IP 10.2.21.82.9191 > 10.2.21.7.3133: Flags [S.], seq 664915801, ack 4239074237, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
02:03:17.153275 IP 10.2.21.7.3133 > 10.2.21.82.9191: Flags [.], ack 1, win 4380, length 0
02:03:17.153318 IP 10.2.21.7.3133 > 10.2.21.82.9191: Flags [P.], seq 1:644, ack 1, win 4380, length 643
02:03:17.153330 IP 10.2.21.82.9191 > 10.2.21.7.3133: Flags [.], ack 644, win 497, length 0
02:03:17.166542 IP 10.2.21.7.1617 > 10.2.21.82.9191: Flags [R.], seq 644, ack 1, win 0, length 0

root@rv-nswa-01:/opt/pda/dc# docker logs -f 0 --tail 4
[2025-10-21 23:04:31 +0000] [2330] [DEBUG] Ignoring connection reset
[2025-10-21 23:04:31 +0000] [2330] [DEBUG] GET /
[2025-10-21 23:04:31 +0000] [2330] [DEBUG] Ignoring EPIPE
[2025-10-21 23:04:34 +0000] [2329] [DEBUG] Ignoring connection reset
[2025-10-21 23:04:37 +0000] [2330] [DEBUG] Ignoring connection reset