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!!