Linux AMDGPU Controller
Go to file
2023-10-31 19:42:22 +02:00
.github pkg: add prebuilt arch package (#192) 2023-09-12 22:04:26 +03:00
lact feat: show if resizeable bar is enabled 2023-10-21 17:38:32 +03:00
lact-cli feat: show if resizeable bar is enabled 2023-10-21 17:38:32 +03:00
lact-client feat: show if resizeable bar is enabled 2023-10-21 17:38:32 +03:00
lact-daemon fix: avoid resetting fan control mode when it is not available 2023-10-31 19:42:22 +02:00
lact-gui feat: use SearchEntry directly instead of SearchBar in the vulkan features window 2023-10-31 09:48:31 +02:00
lact-schema feat: show if resizeable bar is enabled 2023-10-21 17:38:32 +03:00
pkg feat: show if resizeable bar is enabled 2023-10-21 17:38:32 +03:00
res fix desktop icon name in desktop file 2023-02-25 14:12:25 +02:00
.gitignore wip pkger 2023-02-23 22:31:31 +02:00
.pkger.yml pkg: add prebuilt arch package (#192) 2023-09-12 22:04:26 +03:00
API.md feat: add API information 2023-02-25 14:31:51 +02:00
Cargo.lock feat: use SearchEntry directly instead of SearchBar in the vulkan features window 2023-10-31 09:48:31 +02:00
Cargo.toml chore: strip binary in release mode 2023-09-26 09:01:21 +03:00
LICENSE bump deps 2023-02-19 14:45:23 +02:00
Makefile feat: properly set icon, use app id for names 2023-02-19 21:21:16 +02:00
README.md doc: add nix package link to readme 2023-10-21 19:02:19 +03:00

Linux AMDGPU Control Application

icon

This application allows you to control your AMD GPU on a Linux system.

GPU info Overclocking Fan control
image image image

Current features:

  • Viewing information about the GPU
  • Power/thermals monitoring
  • Fan curve control
  • Overclocking (GPU/VRAM clockspeed, voltage)

Currently missing:

  • Power states configuration

Installation

  • Arch Linux: Install the AUR Package (or the -git version)

  • Debian/Ubuntu/Derivatives: Download a .deb from releases.

    It is only available on Debian 12+ and Ubuntu 22.04+ as older versions don't ship gtk4.

  • Fedora: an rpm is available in releases.

  • NixOS: There is a package available on the unstable channel

  • Otherwise, build from source.

Why is there no AppImage/Flatpak/other universal format? See here.

Usage

Enable and start the service (otherwise you won't be able to change any settings):

sudo systemctl enable --now lactd

You can now use the GUI to change settings and view information.

Configuration

There is a configuration file available in /etc/lact/config.yaml. Most of the settings are accessible through the GUI, but some of them may be useful to be edited manually (like admin_groups to specify who has access to the daemon)

Overclocking

The overclocking functionality is disabled by default in the driver. There are two ways to enable it:

  • By using the "enable overclocking" option in the LACT GUI. This will create a file in /etc/modprobe.d that enables the required driver options. This is the easiest way and it should work for most people.
  • Specifying a boot parameter. You can manually specify the amdgpu.ppfeaturemask=0xffffffff kernel parameter in your bootloader to enable overclocking. See the ArchWiki for more details.

Suspend/Resume

As some of the GPU settings may get reset when suspending the system, LACT will reload them on system resume. This may not work on distributions which don't use systemd, as it relies on the org.freedesktop.login2 DBus interface.

Building from source

Dependencies:

  • rust
  • gtk4
  • pkg-config
  • make
  • hwdata
  • libdrm

Steps:

  • git clone https://github.com/ilya-zlobintsev/LACT && cd LACT
  • make
  • sudo make install

It's also possible to build LACT without some of the features by using cargo feature flags. This can be useful if some dependency is not available on your system, or is too old.

Build without DRM support (some GPU information will not be available):

cargo build --no-default-features -p lact --features=lact-gui

Minimal build (no GUI!):

cargo build --no-default-features -p lact

API

There is an API available over a unix socket. See here for more information.

CLI

There is also a cli available.

  • List system GPUs:

    lact cli list-gpus

    Example output:

    1002:687F-1043:0555-0000:0b:00.0 (Vega 10 XL/XT [Radeon RX Vega 56/64])
    
  • Getting GPU information:

    lact cli info

    Example output:

    lact cli info
    GPU Vendor: Advanced Micro Devices, Inc. [AMD/ATI]
    GPU Model: Vega 10 XL/XT [Radeon RX Vega 56/64]
    Driver in use: amdgpu
    VBIOS version: 115-D050PIL-100
    Link: LinkInfo { current_width: Some("16"), current_speed: Some("8.0 GT/s PCIe"), max_width: Some("16"), max_speed: Some("8.0 GT/s PCIe") }
    

The functionality of the CLI is quite limited. If you want to integrate LACT with some application/script, you should use the API instead.

Reporting issues

When reporting issues, please include your system info and GPU model.

If there's a crash, run lact gui from the command line to get logs, or use journalctl -u lactd to see if the daemon crashed.

Alternatives

If LACT doesn't do what you want, make sure to check out CoreCtrl.