|
||
---|---|---|
.github/workflows | ||
amdfand | ||
amdgpu | ||
amdgpu-config | ||
amdgui-helper | ||
amdguid | ||
amdmond | ||
amdmond-lib | ||
amdvold | ||
assets | ||
examples | ||
scripts | ||
services | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE.APACHE2.txt | ||
LICENSE.md | ||
README.md |
This project is created with love. Please, support me
AMD GPU management tools
This repository holds couple tools for AMD graphic cards
amdfand
- fan speed daemon (MUSL)amdvold
- voltage and overclocking tool (MUSL)amdmond
- monitor daemon (MUSL)amdguid
- GUI manager (GLIBC)amdgui-helper
- daemon with elevated privileges to scan foramdfand
daemons, reload them and save config files (MUSL)
For more information please check README each of them.
Roadmap
- Add support for multiple cards
- Multiple services must recognize card even if there's multiple same version cards is installed
- Support should be by using
--config
option
- CLI for fan config edit
- CLI for voltage edit
- GUI application using native Rust framework (ex. egui, druid)
License
This work is dual-licensed under Apache 2.0 and MIT. You can choose between one of them if you use this work.
Supported OS
Only Linux is supported.
BSD OS may work if compiled from source, but it wasn't tested. I also don't know how to enable all amd gpu features on BSD.
Officially supported
- Arch Linux
- Ubuntu 18.04
- Ubuntu 20.04
Other
It should be possible to run MUSL programs on any Linux distribution.
GLIBC applications depends on shared glibc libraries and version of this library MUST match.
If you have other version you may download linked version and place it in application directory.
Or you can compile it from source
Compile
./scripts/build.sh
Download missing shared libraries
Check linked versions
ldd ./amdguid
Example output:
linux-vdso.so.1 (0x00007ffd706df000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f4254a50000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f4254a40000)
libxcb-shape.so.0 => /usr/lib/libxcb-shape.so.0 (0x00007f4254a3b000)
libxcb-xfixes.so.0 => /usr/lib/libxcb-xfixes.so.0 (0x00007f4254a31000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f4254a2c000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f4254a11000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f4254a0a000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f4254a05000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f425491d000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f4254713000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f42556a6000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f425470e000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f4254706000)
If anything is missing you may download is and place it side-by-side with binary
Example:
opt/
├─ amdguid/
│ ├─ amdguid
│ ├─ shared_lib_a/
│ ├─ shared_lib_b/
usr/
├─ bin/
│ ├─ amdguid
Where:
/opt/amdguid/amdguid
is binary file/usr/bin/amdguid
is shell script with following content
#!/usr/bin/env bash
cd /opt/amdguid
./amdguid