mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2025-02-25 18:55:26 -06:00
doc: update README to reflect current state and add information about packaging
This commit is contained in:
41
README.md
41
README.md
@@ -17,25 +17,37 @@ Current features:
|
||||
- Basic overclocking
|
||||
|
||||
Currently missing:
|
||||
- Voltage control on Vega20+ GPUs
|
||||
- Precise clock/voltage curve manipulation (currently can only set the maximum values)
|
||||
- <s>Multi-GPU system support</s> *Should work now*
|
||||
|
||||
# Installation
|
||||
|
||||
- Arch Linux: Install the [AUR Package](https://aur.archlinux.org/packages/lact/) (or the -git version)
|
||||
- Debian/Ubuntu/Pop_OS: Download a .deb from [releases](https://github.com/ilyazzz/LACT/releases/). Warning: it has not been tested heavily
|
||||
- Debian/Ubuntu/Derevatives: Download a .deb from [releases](https://github.com/ilya-zlobintsev/LACT/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](https://github.com/ilya-zlobintsev/LACT/releases/).
|
||||
- Otherwise, build from source:
|
||||
|
||||
**Why is there no AppImage/Flatpak/other universal format?**
|
||||
See [here](./pkg/README.md).
|
||||
|
||||
# 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)
|
||||
|
||||
# Building from source
|
||||
- Install dependencies:
|
||||
- Ubuntu/Debian: `sudo apt install cargo rustc libvulkan-dev git libgtk-3-dev make`
|
||||
- Fedora: `sudo dnf install git gtk3-devel rust cargo vulkan-headers perl-core`
|
||||
|
||||
- `git clone https://github.com/ilyazzz/LACT && cd LACT`
|
||||
- `./deploy.sh`
|
||||
Dependencies:
|
||||
- rust
|
||||
- gtk4
|
||||
- pkg-config
|
||||
- make
|
||||
- hwdata
|
||||
|
||||
Steps:
|
||||
- `git clone https://github.com/ilya-zlobintsev/LACT && cd LACT`
|
||||
- `make`
|
||||
- `sudo make install`
|
||||
|
||||
# Usage
|
||||
|
||||
@@ -51,7 +63,7 @@ There is also a cli available.
|
||||
|
||||
- Getting basic information:
|
||||
|
||||
`lact-cli info`
|
||||
`lact cli info`
|
||||
|
||||
Example output:
|
||||
|
||||
@@ -65,7 +77,7 @@ There is also a cli available.
|
||||
```
|
||||
- Getting current GPU stats:
|
||||
|
||||
`lact-cli metrics`
|
||||
`lact cli metrics`
|
||||
|
||||
Example output:
|
||||
|
||||
@@ -81,7 +93,7 @@ There is also a cli available.
|
||||
|
||||
- Showing the current fan curve:
|
||||
|
||||
`lact-cli curve status`
|
||||
`lact cli curve status`
|
||||
|
||||
Example output:
|
||||
|
||||
@@ -96,12 +108,11 @@ There is also a cli available.
|
||||
|
||||
# Reporting issues
|
||||
|
||||
When reporting issues, please include your system info and GPU model.
|
||||
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.
|
||||
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.
|
||||
|
||||
If there's an issue with GPU model identification please report it [here](https://github.com/ilyazzz/pci-id-parser/), include your GPU model and the output of `cat /sys/class/drm/card*/device/uevent`.
|
||||
|
||||
# Alternatives
|
||||
|
||||
If LACT doesn't end up working for you, make sure to check out [CoreCtrl](https://gitlab.com/corectrl/corectrl).
|
||||
If LACT doesn't do what you want, make sure to check out [CoreCtrl](https://gitlab.com/corectrl/corectrl).
|
||||
|
||||
35
pkg/README.md
Normal file
35
pkg/README.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# What is this
|
||||
|
||||
This is a directory used by [pkger](https://github.com/vv9k/pkger/) to generate packages for different distros from a single manifest.
|
||||
|
||||
Usage:
|
||||
```
|
||||
pkger -c .pkger.yml build lact
|
||||
```
|
||||
(Should be ran in the repo root).
|
||||
|
||||
Generated packages will be placed in `pkg/output`.
|
||||
|
||||
# Why is there no AppImage/Flatpak/Docker?
|
||||
|
||||
Unfortunately, due to the nature of the app that has 2 parts (daemon running as root and a GUI running as a user), none of the popular universal formats fit it very well.
|
||||
|
||||
---
|
||||
Flatpak is mainly designed for graphical desktop applications, with support for user CLI apps as well.
|
||||
|
||||
It does not support services, and running a Flatpak as root is also problematic. This means that the LACT daemon can't run as Flatpak.
|
||||
|
||||
---
|
||||
AppImage on the other hand can run as root. However it is also mainly designed for graphical apps where you download a run a single file.
|
||||
|
||||
This means that you would need to manually install a service file alongside the AppImage, though this could be automated with a script.
|
||||
|
||||
The bigger problem is that AppImages are built by taking the dependencies of the host system. Some things (primarly `glibc`) are usually not bundled with the image, which means that the recommended way to package things is by building the AppImage on the oldest possible system that you want your app to run on. This is not really possible with LACT, as it uses gtk4, which means that the "universal" AppImage would only run on modern distros anyway.
|
||||
|
||||
It is possible to bundle glibc with the AppImage by using [appimage-builder](https://appimage-builder.readthedocs.io/), which would enable the image to run on older systems. The problem is that the resulting file ends up being very large, and since AppImage extract itself on startup it means that it takes about 10 seconds to start every time even on a relatively powerful system. There are flags that allow AppImages to reuse files between restarts, but it ends up storing hundreds of megabytes of data on /tmp (which is stored in RAM on most systems). Overall it is not a very good user experience.
|
||||
|
||||
---
|
||||
The daemon could run in a Docker container with little issue. However running graphical applications in Docker, while possible, is extremely inconvenient and doesn't integrate with the rest of the system.
|
||||
|
||||
---
|
||||
All of this means that native packaging is currently the only feasible way to distribute LACT.
|
||||
Reference in New Issue
Block a user