-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
ZenMaster installs from PyPI with pip on Linux, Windows, and macOS. The package itself has no mandatory third-party dependencies on any of them. What differs between platforms is how the SMU is reached: a kernel module or PCI access on Linux, the PawnIO driver on Windows, DirectHW.kext (or a kext-free fallback) on macOS.
pip install zenmasterUpgrade later with:
pip install -U zenmasterCheck what is installed and whether a newer release exists:
zenmaster --versionRequires root, and either the ryzen_smu kernel module or PCI direct access. ZenMaster picks whichever is available automatically.
pip install zenmaster
sudo zenmaster --stapm-limit=15000 --fast-limit=20000 --tctl-temp=90ZenMaster picks the backend strictly by Secure Boot state:
Secure Boot OFF → PCI direct access (no kernel module needed)
Secure Boot ON → ryzen_smu module (kernel lockdown blocks PCI)
With Secure Boot off, ZenMaster always uses PCI direct access, probing the northbridge config registers with a round-trip write. With Secure Boot on, raw PCI access is blocked by kernel lockdown, so the ryzen_smu module is required.
Confirm which backend is active:
sudo zenmaster --infoName : AMD Ryzen 7 7840U
Family : PhoenixPoint (Zen 3 - Zen 4)
Type : Amd_Apu
Socket : FT6_FP7_FP8
Backend: pci
git clone https://github.com/amkillam/ryzen_smu
cd ryzen_smu && make && sudo make install
sudo modprobe ryzen_smuZenMaster needs ryzen_smu 0.1.7 or newer (it uses the /smn interface). With Secure Boot on, you must also sign the module with a MOK key and enroll it, or disable Secure Boot in UEFI.
The SMU writes need root, so run the zenmaster command with sudo. If you installed into a user environment, sudo zenmaster may not find it on PATH; in that case run it as a module:
sudo python3 -m zenmaster --infoor install system-wide:
sudo pip install zenmasterZenMaster reaches the SMU through PawnIO, a Microsoft-signed kernel driver. It replaces WinRing0 (used by RyzenAdj), which has known CVEs.
- Download and run the PawnIO installer: https://github.com/namazso/PawnIO.Setup/releases/latest/download/PawnIO_setup.exe
- Reboot so the driver activates.
- Open an Administrator terminal (PowerShell or Command Prompt).
pip install zenmaster
zenmaster --stapm-limit=15000 --fast-limit=20000 --tctl-temp=90ZenMaster bundles the RyzenSMU.bin PawnIO module it needs, so the only thing you install yourself is the PawnIO driver.
All SMU operations on Windows require Administrator. If PawnIO is not installed or the terminal is not elevated, ZenMaster exits early with a message telling you which.
This only applies to a Hackintosh: real Macs don't run AMD CPUs. ZenMaster detects the chip straight off CPUID via sysctlbyname, which is why it works even when OpenCore has SMBIOS set to report a real Mac model; CPUID isn't something SMBIOS spoofing touches.
Requires root, and one of two access paths:
-
DirectHW.kext: the full path, including
--table/--sensors. Needs the kext loaded, and SIP configured to allow unsigned kexts on a Hackintosh (csr-active-config=03080000in Clover/OpenCore). -
Kext-free fallback (
--iopci): no kext needed, but tuning only, no PM table. Needs thedebug=0x144boot-arg set.
pip3 install zenmaster
sudo python3 -m zenmaster --stapm-limit=15000 --fast-limit=20000 --tctl-temp=90If neither access path is set up, ZenMaster's error message tells you which one to add and how.
sudo zenmaster can fail with "command not found" if the zenmaster script lands somewhere root's PATH doesn't reach, common with pip3 install --user or a Homebrew Python. sudo python3 -m zenmaster sidesteps that by going straight through the interpreter instead of relying on PATH.
To force the kext-free path even when DirectHW is installed (useful for testing without the kext):
sudo zenmaster --iopci --infoSee How ZenMaster Talks to the SMU for why macOS needs two different paths at all, and what each one can and can't do.
A quick, non-destructive check that everything is wired up:
# Linux
sudo zenmaster --info
# Windows (Administrator)
zenmaster --info
# macOS
sudo python3 -m zenmaster --infoIf detection and the backend look right, you are ready. See CLI Usage next, or Tuning Arguments for what you can actually set.
If anything fails here, go to Troubleshooting.
PyPI · Report an issue · Releases · By HorizonUnix under GPL-3.0
Getting started
Monitoring
Developers
Help