WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
    • VMware Cloud Foundation 9.1
    • VMware Cloud Foundation 9.0
  • VKS
  • Homelab
    • Hardware Options
    • Hardware Reviews
    • Lab Deployment Scripts
    • Nested Virtualization
    • Homelab Podcasts
  • VMware Nostalgia
  • Apple
You are here: Home / ESXi / AMD Zen4/Zen5 IPMI Thermal Driver for ESX Fling

AMD Zen4/Zen5 IPMI Thermal Driver for ESX Fling

05.01.2026 by William Lam // 11 Comments

Happy Friday! 🥳

A couple of weeks back, Wenchao (creator of the Realtek Network Driver for ESX Fling) reached out to me to share an exciting development he had been working on.

Unlike traditional enterprise hardware, which typically includes an Intelligent Platform Management Interface (IPMI) for exposing various hardware statistics, consumer systems like the popular Minisforum MS-A2 lack this capability out of the box.

Wenchao has developed a pseudo-IPMI driver for AMD Zen 4 and Zen 5 platforms that surfaces the CPU thermal and I am excited to share this will be released as a new Fling!


In addition to viewing this information via the vSphere UI, users can also retrieve the raw metrics via ESXCLI:

esxcli hardware ipmi sdr list


The driver currently supports the following:

  • ESX 9.1
  • ESX 9.0.x
  • ESX 8.0 Update 3

Downloading Driver:

Step 1 - Login to Broadcom Support Portal (BSP) using your Broadcom account (free to register)

Step 2 - Navigate to the Free Downloads (https://support.broadcom.com/group/ecx/free-downloads) section and select Flings (https://support.broadcom.com/group/ecx/productdownloads?subfamily=Flings&freeDownloads=true)

Installing Driver:

Step 1 - Upload the AMD Zen4/Zen5 IPMI Thermal Driver for ESX Fling offline bundle (zip) to your ESX host

Step 2 - Run the following command and specify the full path to the offline bundle (zip):

esxcli software component apply -d /VMware-amd-zen-ipmi_thermal_910.1.0.0005-5vmw.803.0.0.24022510.zip

Step 3 - Reboot the ESX host for the change to go into effect

Uninstalling Driver:

Step 1 - Run the following command:

esxcli software component remove -n smntemp

Step 2 - Reboot the ESX host for the change to go into effect

The AMD Zen4/Zen5 IPMI Thermal Driver for ESX Fling has been successfully tested by a number of internal folks running on various Minisforum MS-A2 (Zen4/Zen5) processors. If you have success with other platforms, feel free to leave a comment to share with the community or if you have other feedback, feel free to drop a comment below.

Support for Additional AMD Systems:

The drive currently relies on two pieces of information, the PCI ID of the AMD system management port function (typically at 0000:00:18.3) and CPU ID identifying the CPU family/model. As of right now, due to limited access to hardware, it is currently hardcoded to a few known working systems.

With that said, you can add other AMD-based systems by installing the driver and then running the following command:

lspci -v | grep -A2 '0000:00:18.3' | grep '1022' | awk '/Class/{gsub(":","",$3);print "regtype=native,bus=pci,id="$3"..............,driver=smntemp"}' | tee /etc/vmware/default.map.d/smntemp_extra.map 

kill -SIGHUP $(pidof vmkdevmgr)

esxscli hardware ipmi sdr list

Here are additional Zen 4/Zen 5 systems that the driver can also support. If you have others that work for you and is not on this list, please leave a comment and once we have collected the full list, we can update the driver to include these by default.

PCI/CPU ID Zen CPU Family
1022:14e3 Zen 4 Raphael
1022:14e3 Zen 4 Granite Ridge
1022:14f3 Zen 4 Phoenix
1022:16fb Zen 5 Strix Point
1022:124b Zen 5 Krackan
1022:12bb Zen 5 Strix Halo

Retrieving Sensor Data:

You can also programmatically retrieve the health sensor data using the vSphere APIs.

Here is an example implementation using PowerCLI:

$cluster = "VCF-Mgmt-Cluster"
$vmhosts = Get-Cluster -Name $cluster | Get-VMhost

Write-Host

foreach($vmhost in $vmhosts | Sort-Object -Property Name) {
    $healthSubSys = Get-View $vmhost.ExtensionData.ConfigManager.HealthStatusSystem
    $sensorReadings = $healthSubSys.Runtime.SystemHealthInfo.NumericSensorInfo

    $results = @()
    foreach($sensorReading in $sensorReadings) {
        $tmp = [pscustomobject] [ordered]@{
            Id = $sensorReading.id
            Sensor = $sensorReading.Name
            Status = $sensorReading.HealthState.Key
            Reading = $sensorReading.CurrentReading
            Units = $sensorReading.baseUnits
            Categories = $sensorReading.SensorType
            LastUpdate = $sensorReading.TimeStamp
        }
        $results += $tmp
    }
    Write-Host -ForegroundColor Cyan "ESX: $($vmhost.name)"
    $results | Format-Table -AutoSize
}

Here is an example implementation using VI JSON API:

VC="vc01.vcf.lab"
VC_USERNAME='administratorat[at]vsphere[dot]local'
VC_PASSWORD='VMware1!VMware1!'
VC_API_RELEASE='8.0.0.0'
VMHOST_CLUSTER_NAME="VCF-Mgmt-Cluster"

VCREST_API_SESSION_ID=$(curl -k -s -u "${VC_USERNAME}:${VC_PASSWORD}" -X POST "https://${VC}/api/session" | jq -j)
CLUSTER_MOREF=$(curl -k -s -H "vmware-api-session-id: ${VCREST_API_SESSION_ID}" -X GET "https://${VC}/api/vcenter/cluster?names=${VMHOST_CLUSTER_NAME}" | jq -r '.[0].cluster')

SESSION_MANAGER_MOID=$(curl -k -s https://$VC/sdk/vim25/${VC_API_RELEASE}/ServiceInstance/ServiceInstance/content | jq -j .sessionManager.value)
VIJSON_API_SESSION_ID=$(curl -k -s -o /dev/null -D - "https://$VC/sdk/vim25/${VC_API_RELEASE}/SessionManager/$SESSION_MANAGER_MOID/Login" -H 'Content-Type: application/json' -d "{\"userName\":\"${VC_USERNAME}\", \"password\": \"${VC_PASSWORD}\"}" | awk 'BEGIN {FS=": "}/^vmware-api-session-id/{print $2}')

curl -k -s \
    -H "vmware-api-session-id: ${VCREST_API_SESSION_ID}" \
    "https://${VC}/api/vcenter/host?clusters=${CLUSTER_MOREF}" \
| jq -r '.[] | "\(.name) \(.host | sub("host-"; ""))"' \
| while read -r name id; do

    echo "Host: $name (ID: $id)"

    curl -ks \
    -H "vmware-api-session-id: ${VIJSON_API_SESSION_ID}" \
    "https://$VC/sdk/vim25/${VC_API_RELEASE}/HostHealthStatusSystem/healthStatusSystem-${id}/runtime" \
    | jq '.systemHealthInfo.numericSensorInfo[]
        | {
            id,
            name,
            health: .healthState.key,
            currentReading,
            baseUnits,
            sensorType,
            timeStamp
            }'

done

 

Categories // ESXi, Home Lab Tags // AMD, Minisforum

Comments

  1. *protectedRobin says

    05/01/2026 at 9:34 pm

    This is great, now I can check if my heatsink is properly seated without having to install another OS before ESX. I am wondering if you could set it up to be observable via operations now with this.

    Reply
  2. *protectedRenato says

    05/02/2026 at 12:18 am

    Very good news, do you know if this driver works also with Zen3 ?
    Thanks

    Reply
    • William Lam says

      05/05/2026 at 8:37 am

      Give it a try on Zen 3 and let us know!

      Reply
      • *protectedRenato says

        05/07/2026 at 10:49 am

        Installed but it's not working.
        I have 4 AMD Ryzen 7 7730U Barcelo-R, I see that you put a command to add AMD cpu support but I don't understand how to do it.
        Thanks 🙂

        Reply
        • William Lam says

          05/07/2026 at 12:05 pm

          Did you attempt to run the commands listed? That'll tell you if it'll work or not 🙂

          Reply
          • *protectedRenato says

            05/08/2026 at 5:47 am

            Yes I tryed, not working 🙁

          • William Lam says

            05/08/2026 at 6:51 am

            Can you provide the output for lspci -v

          • *protectedRenato says

            05/08/2026 at 10:17 am

            This is the output on a CW56-58 5800U

            [root@localhost:~] lspci -v
            0000:00:00.0 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne Root Complex
            Class 0600: 1022:1630

            0000:00:00.2 Generic system peripheral IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne IOMMU
            Class 0806: 1022:1631

            0000:00:01.0 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
            Class 0600: 1022:1632

            0000:00:01.2 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
            Class 0604: 1022:1634

            0000:00:01.3 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
            Class 0604: 1022:1634

            0000:00:02.0 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
            Class 0600: 1022:1632

            0000:00:02.1 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
            Class 0604: 1022:1634

            0000:00:02.2 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
            Class 0604: 1022:1634

            0000:00:02.3 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne PCIe GPP Bridge
            Class 0604: 1022:1634

            0000:00:02.4 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge
            Class 0604: 1022:1633

            0000:00:08.0 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
            Class 0600: 1022:1632

            0000:00:08.1 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
            Class 0604: 1022:1635

            0000:00:08.2 Bridge PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus
            Class 0604: 1022:1635

            0000:00:14.0 Serial bus controller SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller
            Class 0c05: 1022:790b

            0000:00:14.3 Bridge ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
            Class 0601: 1022:790e

            0000:00:18.0 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 0
            Class 0600: 1022:166a

            0000:00:18.1 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 1
            Class 0600: 1022:166b

            0000:00:18.2 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 2
            Class 0600: 1022:166c

            0000:00:18.3 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 3
            Class 0600: 1022:166d

            0000:00:18.4 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 4
            Class 0600: 1022:166e

            0000:00:18.5 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 5
            Class 0600: 1022:166f

            0000:00:18.6 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 6
            Class 0600: 1022:1670

            0000:00:18.7 Bridge Host bridge: Advanced Micro Devices, Inc. [AMD] Cezanne Data Fabric; Function 7
            Class 0600: 1022:1671

            0000:01:00.0 Mass storage controller Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller S4LV008[Pascal]
            Class 0108: 144d:a80c

            0000:02:00.0 Network controller Ethernet controller: Intel Corporation Ethernet Controller I226-V
            Class 0200: 8086:125c

            0000:03:00.0 Network controller Ethernet controller: Intel Corporation Ethernet Controller I226-V
            Class 0200: 8086:125c

            0000:04:00.0 Network controller Ethernet controller: Intel Corporation Ethernet Controller I226-V
            Class 0200: 8086:125c

            0000:05:00.0 Network controller Ethernet controller: Intel Corporation Ethernet Controller I226-V
            Class 0200: 8086:125c

            0000:06:00.0 Mass storage controller Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller 980 (DRAM-less)
            Class 0108: 144d:a809

            0000:07:00.0 Display controller VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series]
            Class 0300: 1002:1638

            0000:07:00.1 Multimedia controller Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Renoir/Cezanne HDMI/DP Audio Controller
            Class 0403: 1002:1637

            0000:07:00.2 Encryption controller Encryption controller: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir/Cezanne Platform Security Processor
            Class 1080: 1022:15df

            0000:07:00.3 Serial bus controller USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
            Class 0c03: 1022:1639

            0000:07:00.4 Serial bus controller USB controller: Advanced Micro Devices, Inc. [AMD] Renoir/Cezanne USB 3.1
            Class 0c03: 1022:1639

            0000:07:00.5 Multimedia controller Multimedia controller: Advanced Micro Devices, Inc. [AMD] Audio Coprocessor
            Class 0480: 1022:15e2

            0000:07:00.6 Multimedia controller Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h/19h/1ah HD Audio Controller
            Class 0403: 1022:15e3

            0000:07:00.7 Signal processing controller Signal processing controller: Advanced Micro Devices, Inc. [AMD] Sensor Fusion Hub
            Class 1180: 1022:15e4

            0000:08:00.0 Mass storage controller SATA controller: Advanced Micro Devices Inc AMD FCH SATA Controller [AHCI Mode]
            Class 0106: 1022:7901

            0000:08:00.1 Mass storage controller SATA controller: Advanced Micro Devices Inc AMD FCH SATA Controller [AHCI Mode]
            Class 0106: 1022:7901

          • William Lam says

            05/09/2026 at 7:29 am

            It looks like for Zen 3, a bit more work is required. Engr has just provided me with version that _should_ work but we're not able to verify.

            Please send me an email (see About) and I'll provide you with that version so you can help validate

  3. *protectedSaq says

    05/07/2026 at 6:13 am

    Thanks for this William. I have just did a blog post on how to install this on a GMKtec K8 Plus Mini PC running ESXi. https://runcmd.co.uk/how-to-install-the-amd-zen-ipmi-thermal-driver-on-esxi/

    Reply
  4. *protectedRoss Wynne says

    05/08/2026 at 12:55 pm

    Great help in being able to monitor these lab. Should I be worried that most of my CPU temps are reading over 90C?

    Guessing I may be going back to my BIOS settings to find out what chills the cores!

    Reply

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • VCF 9.1 - Updated VCF Design Blueprints & VCF Fleet Latency Diagrams for VCF Architects 05/12/2026
  • VCF 9.1 - Comprehensive VCF Installer & SDDC Manager Configuration Workarounds for Lab Deployments 05/11/2026
  • VCF 9.1 - Comprehensive ESX Configuration Workarounds for Lab Deployments 05/11/2026
  • VCF 9.1 - New HTTP Offline Depot Support for VCF Installer & Fleet Depot Service 05/08/2026
  • AMD Zen4/Zen5 IPMI Thermal Driver for ESX Fling 05/01/2026

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.

To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2026

Loading Comments...