Coder Social home page Coder Social logo

krisnaadi / smcamdprocessor Goto Github PK

View Code? Open in Web Editor NEW

This project forked from trulyspinach/smcamdprocessor

0.0 0.0 0.0 10.94 MB

Power management, monitoring and VirtualSMC plugin for AMD processors

License: BSD 3-Clause "New" or "Revised" License

C++ 57.84% Swift 34.46% C 7.70%

smcamdprocessor's Introduction

SMCAMDProcessor

XNU kernel extension for power management and monitoring of AMD processors. Also comes with a plugin for VirtualSMC to export readings to other applications.

Please note that this release is at very initial stage of development, make sure you have a proper backup of your EFI folder and never run on any system that matters.

Installation

SMCAMDProcessor now comes in two separate binaries(kernel extensions):

  • AMDRyzenCPUPowerManagement.kext for all power management features. This kext is also required if you would like to use AMD Power Gadget.
  • SMCAMDProcessor.kext to publish readings to VirtualSMC, which enables macOS applications like iStat to display sensor data. This kext depends on AMDRyzenCPUPowerManagement.kext to collect sensor data, thus must be loaded after.
  1. Download the kext(s) and application from Release page
  2. Add AMDRyzenCPUPowerManagement.kext to kext folder of your bootloader.
  3. Edit your bootloader's config file to make sure the kext is enabled.
  4. If you're using VirtualSMC you can also load SMCAMDProcessor.kext to publish sensor data.
  5. Bootloaders like OpenCore will link each kext in the order they present in config file, so make sure AMDRyzenCPUPowerManagement.kext comes before SMCAMDProcessor.kext as it serves as a dependency.

Experimental Features

Fan Control

Due to the amount of request an experimental feature for reading and overriding fan speed is out!

You can access this menu from menu bar "Open -> SMC Fans" or the button in Power Tool.

Features

  • CPU power management for AMD 17h processors.
  • Supports for reading of temperature, energy and frequency data on AMD 17h Processors.
  • Manual switching of processor speed.
  • PState editing.

AMD Power Gadget

Editing PState

Since the release 0.3.1, you can now edit your CPU PState using AMD Power Tool.

To access PState editor:

  1. Open AMD Power Tool
  2. Go to 'Speed' tab
  3. Click 'Advanced Options'

Safety Notes

  • Incorrect PState setting can potentially cause permanent damage to your computer hardware.
  • For safety concern, this function was limited to root user only. You can either launch AMD Power Gadget with root user or use -amdpnopchk to disable this check.

Contribution

If you want to support this project, please:

  • Give it a star! ๐Ÿ˜„

  • Feel free to open up an issue if it works for you and not listed on supported processors.

  • or if something breaks, please also open an issue.

  • If you like to help with some coding, feel free to submit any pull request or just DM me on Discord.

Credits

  • aluveitie for various enhancements and fixes.
  • mauricelos for IT86XXE SMC chip driver.
  • necross2 for adding support to temperature sensor offset.
  • Shaneee for the beautiful icon.

Notes

  • I am still fairly new to macOS kernel development, this software project was initally a hobby project, and it still is, to get some reading on my newly built AMD hackintosh computer.

  • With that being said, please bear with some of the spaghetti and not-idiomatic codes. Any criticism is much welcomed :)

smcamdprocessor's People

Contributors

trulyspinach avatar aluveitie avatar nickgzzjr avatar mauricelos avatar oded-brilon-sn avatar jacobsyndeo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.