Configure Hybrid Graphics and reduce Temperature in Arch Linux

This Post contains the instructions to correctly configure Hybrid Graphics, either Intel / ATI or INTEL / Nvidia, as well as the temperature reduction in computers with Core iX Processor in Arch Linux

Instructions

Supported Drivers:
xf86-video-nouveau
xf86-video-ati
xf86-video-intel

Step 1:

Get the list of graphic providers:
$ xrandr --listproviders

If the output is similar to the following, we carry out step 2:
Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:Intel
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:radeon

Step 2:

We download the Script to enable the Discrete Graphics card:
$ wget https://www.dropbox.com/s/p2kbq7mrg30cimy/ATI_Enable.sh

Step 3

We edit the Script:
$ nano ATI_Enable.sh

Original:
#!/bin/bash
xrandr --setprovideroffloadsink ID_ATI ID_INTEL
sleep 1
echo "Habilitando..."
glxinfo | grep "OpenGL renderer"
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"

Edited:
#!/bin/bash
xrandr --setprovideroffloadsink 0x55 0x7c
echo "Habilitando..."
sleep 1
echo "Proveedor Grafico: "
glxinfo | grep "OpenGL renderer"
echo "Proveedor Grafico Discreto: "
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"

Step 4:

We give execution permissions and execute:
$ sudo chmod +x ATI_Enable.sh && ./ATI_Enable

** IMPORTANT: Add script to system startup Info: Learn How To Do It

Download Scripts for Discrete Card Power On and Off:
$ sudo su
# cd /usr/bin
# wget https://www.dropbox.com/s/rcvbvl081gt059x/ATI_Off
# wget https://www.dropbox.com/s/9l44p2l75nertr9/ATI_On
# chmod +x ATI_Off
# chmod +x ATI_On

By default both cards turn on when the kernel is loaded and from now on to turn off the discrete card it will be enough to open a terminal and type $ sudo ATI_Off if required we can turn it on with $ sudo ATI_On

** I recommend turning off the discrete card when not in use to improve the working temperatures of the equipment (reduces approximately 10 ~ 20 ºC).

The temperature can be checked Installed lm_sensors package (We give YES to everything that asks)
$ sudo pacman -S lm_sensors && sudo sensors-detect

Now it is only necessary to execute «sensors» to obtain temperature info:
$ sensors

Extra Step

Run the frequency monitor (stopped with Ctrl + C):
$ watch grep "cpu MHz" /proc/cpuinfo

CPU information and frequency scaling:
$ cpupower frequency-info

If you have problem with the controller intel_pstate or you notice that the frequencies of your processor are high despite not being performing tasks that demand it:

We are going to disable the kernel's intel_pstate and we are going to load acpi-cpufreq which is the driver used in kernels prior to 3.9

$ sudo nano /etc/default/grub

We look for the line similar to:
GRUB_CMDLINE_LINUX_DEFAULT="quiet "

And we add intel_pstate=disable

So:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"
We save (Ctrl + O)

We reconfigure the Grub:
grub-mkconfig -o /boot/grub/grub.cfg

** This will take effect until the next reboot, remember that the discrete card turns on automatically.

We're done!!


Add as preferred source in Google