--- title: 'Overclocking in Linux' --- [toc] ## Overclocking ### CPU *TODO* I have not yet checked for system-tools for overclocking ### GPU #### AMD [CoreCtrl](https://gitlab.com/corectrl/corectrl) allows the manipulation of GPU frequency, voltages, power and the fancurve. *TODO* installation hints ### RAM *I'm unaware of any platform supporting online-editing of RAM timings* ## Monitoring ### Sensors The `lm_sensors` package shows temperatures, fan pwm and other sensors for your CPU, GPU and motherboard. Run `$ sensors` to get the output. #### Support for motherboard ITE LPC chips Support for this type of chip does not come built in to `lm_sensors`. In the AUR the package `it87-dkms-git` provides a kernel module with support for a variety of ITE chips. It pulls from [this](https://github.com/frankcrawford/it87) git repo. You can find a list of supported chips there. See [this issue on lm_sensors git repo](https://github.com/lm-sensors/lm-sensors/issues/134) for background info. The kernel driver can be automatically loaded on boot by putting `it87` into `/etc/modules-load.d/(filename).conf` The option `acpi_enforce_resources=lax` also needs to be added to `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub` or your bootloader equivalent. ### CoreFreq [CoreFreq](https://github.com/cyring/CoreFreq) can display a lot of information about the CPU and the memory controller. To run, the systemd service `corefreqd` needs to be enabled. CoreFreq also depends on a kernel driver. Simply put `corefreqk` into `/etc/modules-load.d/(filename).conf` to load it automatically on boot. Access the TUI using `$ corefreq-cli` A few interesting views: `Shift + C` shows per thread frequency, voltage and power, as well as overall power and temperature. `Shift + M` shows the memory timings, frequency and DIMM layout. ### CoreCtrl CoreCtrl displays a range of information for AMD GPUs. ### Error monitoring Some applications have hardware error reporting built-in. #### Kernel log For others, try checking the kernel log. `$ journalctl -k --grep=mce` #### Rasdaemon You can also install `aur/rasdaemon` and enable its two services. `# systemctl enable --now ras-mc-ctl.service` `# systemctl enable --now rasdaemon.service` `$ ras-mc-ctl --summary` shows all historic errors `$ ras-mc-ctl --error-count` shows memory errors of the current session ## Testing > [More Testing Tools can be found on the ArchWiki](https://wiki.archlinux.org/title/Stress_testing?useskinversion=1) ### CPU #### Prime95/Mprime `$ mprime` Select "No" when asked to join the distributed computing project `16` for torture testing Recommended test: `2` This application includes hardware error checking. Output to the CLI as well as the logfile. Check the file `results.txt` #### ffmpeg video encoding This command encodes random noise with x265 and discards the resulting video `$ ffmpeg -y -f rawvideo -video_size 1920x1080 -pixel_format yuv420p -framerate 60 -i /dev/urandom -c:v libx265 -preset placebo -f matroska /dev/null` > [ArchWiki Source](https://wiki.archlinux.org/title/Stress_testing?useskinversion=1#Video_encoding) #### Stress Stress is capable of testing CPU, memory, I/O and disks Use `$ stress -c (threads)` to test the CPU ### GPU *TODO* ### RAM #### Stressapptest **NOTE**: Produces heavy load on the CPU as well. A stable CPU OC before running this is recommended. `$ stressapptest -M (RAM MiB) -s (time in s) -m (CPU threads)`