Qt overclocking tool for GNU/Linux
TuxClocker is a hardware controlling and monitoring program. TuxClocker consists of a DBus daemon and a Qt GUI that uses the daemon.
If you have any questions or suggestions, you can join the chat on Matrix or IRC
You can use IRC if you don’t want to create an account. Both chats are bridged between each other.
TuxClocker uses GNU gettext for translations. You can use Weblate or edit them locally, and make a pull request.
These are missing from the 1.3.0 release, but present in the 0.1.1 release.
Refer to the 0.1.1 release readme if you wish to use these.
NOTE ABOUT AMD GPUS:
When writing to pp_od_clk_voltage
(writable properties in the ‘Performance’ subtree), power_dpm_force_performance_level
is implicitly set to ‘Manual’. Normally this shouldn’t matter, but if you set ‘Performance Parameter Control’ to anything other than ‘Automatic’ or ‘Manual’ you may get unexpected results due to the value being overridden by other settings. You can work around this by removing the setting values from your profile by right clicking on the properties.
Some CPU features require kernel module msr
to be loaded.
NVIDIA GPUs require Coolbits set to enable editing of most writable properties (31 for all functionality)
AMD GPUs require the amdgpu.ppfeaturemask boot parameter to edit writable properties (amdgpu.ppfeaturemask=0xffffffff
for all functionality)
You can use the tuxclocker.tar
from the release page if you don’t want to compile. The tarball is generated from the mkTarball.sh
script.
tar xf tuxlocker.tar
)./nvidiaInstall.sh
before running to get suitable NVIDIA libraries through Flatpaksudo echo && ./run.sh
in the same folder (sudo is needed for the daemon)This list may contain unofficial distribution packages, maintained by other people not directly related with this project.
NOTE: Due to NVIDIA proprietary driver license problems the package is built without NVIDIA modules. See issue#65 for more info.
Install the tuxclocker package from OBS. Or via terminal:
sudo zypper in opi
opi tuxclocker
Required: qt (charts, base, dbus), boost-system, boost-filesystem, meson
Optional:
libnvml, libxnvctrl, xlib
- NVIDIA supportlibdrm
- AMD supportpython-hwdata, libpython3, python3
- Prettier AMD GPU namesNOTE: some distros like NixOS only contain libnvml
as part of a fully featured CUDA package.
Note that these packages are likely called something different on each distribution.
nix-shell release.nix
NOTE: Some Ubuntu releases provide libboost
which is too old (1.76 or newer is required)
python-hwdata
is not packaged for Ubuntu but can be acquired on OBS.
sudo apt install --yes --quiet --quiet \
libqt5x11extras5-dev \
qtbase5-dev \
libqt5x11extras5 \
libdrm-amdgpu1 \
libdrm-common \
libdrm-dev \
nvidia-utils-440-server \
nvidia-settings \
libxnvctrl-dev \
libssl-dev \
libboost-filesystem-dev \
qttools5-dev-tools \
libqt5charts5-dev \
libboost-dev
python-hwdata
is not packaged for openSUSE but can be acquired on OBS.
sudo zypper in -y \
meson \
git \
gettext-runtime \
gcc-c++ \
libboost_system-devel \
libboost_filesystem-devel \
libdrm-devel \
libXNVCtrl-devel \
libX11-devel \
libQt5DBus-devel \
libQt5Charts5-devel \
libqt5-qtbase-devel \
libopenssl-devel \
python311-devel \
python311-hwdata \
nvidia-compute-G06
--prefix=<path> (install location prefix, usually '/usr')
-Dplugins=<true/false>
-Ddaemon=<true/false> (builds and installs 'tuxclockerd' binary/daemon)
# The following options allow you to abort the build if some components can't be built
-Drequire-nvidia=<true/false>
-Drequire-amd=<true/false>
-Drequire-python-hwdata=<true/false>
git clone https://github.com/Lurkki14/tuxclocker
cd tuxclocker
git submodule init
git submodule update
meson build <meson options>
cd build
ninja && sudo ninja install
Once you have installed everything into a proper location, TuxClocker is available through a launcher or with tuxclocker-qt
from the terminal.
If TuxClocker shows up with no items, there may be a problem with connecting to the DBus daemon. Refer to your system documentation on where DBus system service entries should be located. Alternatively, you can launch the needed components manually as explained in the Developing/Scripts section of the README.
NOTE: building tests requires passing -Dtest=true
to meson.
Tests are located in src/test
. Run them with meson test
.
TuxClocker uses clang-format
. Code should be formatted with the provided clangFormat.sh
script.
NOTE: to get designated initializers formatted like so:
auto Foo = Foo{
.bar = 1,
.baz = 2,
};
a trailing comma should be used after the last member (clang-format
weirdness).
There are a few scripts in dev/
for development convenience, mainly to deal with DBus. A separate DBus instance and custom config file is used, so the TuxClocker daemon is able to be registered without installing service files into the system.
Note: the following scripts assume TuxClocker is installed to inst/
and libraries to inst/lib
so meson
should be called as follows:
meson build --prefix=$(pwd)/inst -Dlibdir=lib
The scripts should be used in this order (they all have to be running simultaneously, so probably best to run in separate terminals):
dev/tuxclockerd-start.sh
Starts a separate DBus instance with dbus-run-session
and launches tuxclockerd
using the separate DBus instance and LD_LIBRARY_PATH set to find the built libtuxclocker
.
dev/gui-start.sh
Launches the TuxClocker GUI making it connect to our separate DBus instance, so it can find the TuxClocker DBus service.
You can also use a program like d-feet
if you are only making changes to the daemon. (To be documented)
GPL-3 only