You are not logged in.

#1 2013-06-01 12:32:12

BytecodeX
Member
Registered: 2013-06-01
Posts: 2

Help turning off Radeon (discrete GPU, acpi_call)

Hello guys, I have a Pavilion Dv6 laptop, with hybrid graphics (one integrated GPU, into the Core i7, and one discrete GPU, AMD Radeon 6490M). I hardly ever play games on Linux, so I want to turn off completely the discrete graphics to save battery and stuff, and use the integrated only. Googling I found out that to turn it off  acpi_call-git is needed (from AUR), so I installed it. Loaded the module with modprobe and ran turn_off_gpu.sh, which output is:

Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB.PCI0.P0P2.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P3.PEGP._OFF: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: failed
Trying \_SB.PCI0.P0P1.PEGP._OFF: failed
Trying \_SB.PCI0.MXR0.MXM0._OFF: failed
Trying \_SB.PCI0.PEG1.GFX0._OFF: failed
Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG0.PEGP._OFF: works!
Trying \_SB.PCI0.XVR0.Z01I.DGOF: failed
Trying \_SB.PCI0.PEGR.GFX0._OFF: failed
Trying \_SB.PCI0.PEG.VID._OFF: failed
Trying \_SB.PCI0.PEG0.VID._OFF: failed
Trying \_SB.PCI0.P0P2.DGPU._OFF: failed
Trying \_SB.PCI0.P0P4.DGPU.DOFF: failed
Trying \_SB.PCI0.IXVE.IGPU.DGOF: failed
Trying \_SB.PCI0.RP00.VGA._PS3: failed
Trying \_SB.PCI0.RP00.VGA.P3MO: failed
Trying \_SB.PCI0.GFX0.DSM._T_0: failed
Trying \_SB.PCI0.LPC.EC.PUBS._OFF: failed
Trying \_SB.PCI0.P0P2.NVID._OFF: failed
Trying \_SB.PCI0.P0P2.VGA.PX02: failed
Trying \_SB_.PCI0.PEGP.DGFX._OFF: failed
Trying \_SB_.PCI0.VGA.PX02: failed

So \_SB.PCI0.PEG0.PEGP._OFF works, so I started setting up stuff to turn off the gpu on boot.

I created in /etc/modules-load.d a file acpi_call.conf with inside only "acpi_call"; Then I made a script (/etc/switchoff.sh) with inside

sudo sh -c "echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call"

; chmodded it a+x, created /etc/systemd/system/gpu-switchoff.service (to make the script start on boot) with inside

[Unit]
Description=Turn off dedicated graphics

[Service]
Type=oneshot
ExecStart=/etc/switchoff.sh

[Install]
WantedBy=multi-user.target

and run sudo systemctl enable gpu-switchoff and rebooted. After reboot I ran dmesg | grep acpi_call, but:

[    5.109132] systemd-modules-load[150]: Inserted module 'acpi_call'
[   16.181323] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.997114] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.997864] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.998588] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.999277] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.999962] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.000634] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.001344] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.002065] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.002677] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.003285] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.003888] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.005708] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.006376] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.007005] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.007671] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.008418] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.009091] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.009768] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.010395] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.011064] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.011727] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.012435] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.013073] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.013691] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.014361] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.014995] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.743060] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.744152] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.745202] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.746124] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.746926] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.747712] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.748504] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.749345] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.750199] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.750973] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.751736] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.753529] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.754220] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.754982] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.755679] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.756458] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.757150] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.757809] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.758434] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.759172] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.759896] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.760581] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.761236] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.761852] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.762646] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.763474] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.067132] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.067963] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.068676] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.069456] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.070256] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.070998] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.071758] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.072550] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.073407] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.074151] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.074942] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.076734] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.077456] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.078248] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.079051] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.079808] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.080500] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.081396] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.082172] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.082982] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.083748] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.084490] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.085213] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.085898] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.086565] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.087207] acpi_call: Cannot get handle: Error: AE_NOT_FOUND

So something clearly doesn't work. Ideas?

Maybe there's something wrong with the systemd service, output of systemctl status gpu-switchoff is:

gpu-switchoff.service - Turn off dedicated graphics
   Loaded: loaded (/etc/systemd/system/gpu-switchoff.service; enabled)
   Active:failed (Result: exit-code) since ven 2013-05-31 17:26:19 CEST; 1h 33min ago
  Process: 351 ExecStart=/etc/switchoff.sh(code=exited, status=203/EXEC)

Offline

#2 2013-06-01 18:55:59

damdim
Member
Registered: 2010-03-13
Posts: 48

Re: Help turning off Radeon (discrete GPU, acpi_call)

Do you want to have the ability to turn it on when you need it?
If not, blacklist radeon with "modprobe.blacklist=radeon" in your kernel boot line.

Last edited by damdim (2013-06-01 18:56:13)

Offline

#3 2013-06-04 13:52:59

BytecodeX
Member
Registered: 2013-06-01
Posts: 2

Re: Help turning off Radeon (discrete GPU, acpi_call)

damdim wrote:

Do you want to have the ability to turn it on when you need it?
If not, blacklist radeon with "modprobe.blacklist=radeon" in your kernel boot line.

I don't quite get you, turn on what? And which effects would have blacklisting radeon (gpu not turning on at all)?

Offline

#4 2013-06-05 15:23:53

sjaft
Member
Registered: 2013-04-11
Posts: 3

Re: Help turning off Radeon (discrete GPU, acpi_call)

Playing with this also, since i'm tuning my system to use less power.
To disable it completely you need to take three steps as per wiki:

1. Blacklist the radeon module by creating the file /etc/modprobe.d/radeon.conf containing:

blacklist radeon

2. Make sure acpi_call is loaded at boot by creating the file /etc/modules-load.d/acpi_call.conf containing:

acpi_call

3. Tell systemd to write the proper value to /proc/acpi/call by creating the file /etc/tmpfiles.d/acpi_call.conf (also see: man tmpfiles.d) and make sure it contains:

w /proc/acpi/call - - - - \_SB.PCI0.PEG0.PEGP._OFF

Reboot and it should automaticly blacklist radeon module, start acpi_call and write the correct value to it.
This can also be found in the wiki article about hybrid graphics by the way wink

Offline

#5 2013-09-06 16:31:41

MarcoDallas
Member
From: Padova, Italy
Registered: 2013-06-26
Posts: 7
Website

Re: Help turning off Radeon (discrete GPU, acpi_call)

BytecodeX wrote:

Hello guys, I have a Pavilion Dv6 laptop, with hybrid graphics (one integrated GPU, into the Core i7, and one discrete GPU, AMD Radeon 6490M). I hardly ever play games on Linux, so I want to turn off completely the discrete graphics to save battery and stuff, and use the integrated only. Googling I found out that to turn it off  acpi_call-git is needed (from AUR), so I installed it. Loaded the module with modprobe and ran turn_off_gpu.sh, which output is:

Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB.PCI0.P0P2.VGA._OFF: failed
Trying \_SB_.PCI0.OVGA.ATPX: failed
Trying \_SB_.PCI0.OVGA.XTPX: failed
Trying \_SB.PCI0.P0P3.PEGP._OFF: failed
Trying \_SB.PCI0.P0P2.PEGP._OFF: failed
Trying \_SB.PCI0.P0P1.PEGP._OFF: failed
Trying \_SB.PCI0.MXR0.MXM0._OFF: failed
Trying \_SB.PCI0.PEG1.GFX0._OFF: failed
Trying \_SB.PCI0.PEG0.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG1.GFX0.DOFF: failed
Trying \_SB.PCI0.PEG0.PEGP._OFF: works!
Trying \_SB.PCI0.XVR0.Z01I.DGOF: failed
Trying \_SB.PCI0.PEGR.GFX0._OFF: failed
Trying \_SB.PCI0.PEG.VID._OFF: failed
Trying \_SB.PCI0.PEG0.VID._OFF: failed
Trying \_SB.PCI0.P0P2.DGPU._OFF: failed
Trying \_SB.PCI0.P0P4.DGPU.DOFF: failed
Trying \_SB.PCI0.IXVE.IGPU.DGOF: failed
Trying \_SB.PCI0.RP00.VGA._PS3: failed
Trying \_SB.PCI0.RP00.VGA.P3MO: failed
Trying \_SB.PCI0.GFX0.DSM._T_0: failed
Trying \_SB.PCI0.LPC.EC.PUBS._OFF: failed
Trying \_SB.PCI0.P0P2.NVID._OFF: failed
Trying \_SB.PCI0.P0P2.VGA.PX02: failed
Trying \_SB_.PCI0.PEGP.DGFX._OFF: failed
Trying \_SB_.PCI0.VGA.PX02: failed

So \_SB.PCI0.PEG0.PEGP._OFF works, so I started setting up stuff to turn off the gpu on boot.

I created in /etc/modules-load.d a file acpi_call.conf with inside only "acpi_call"; Then I made a script (/etc/switchoff.sh) with inside

sudo sh -c "echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call"

; chmodded it a+x, created /etc/systemd/system/gpu-switchoff.service (to make the script start on boot) with inside

[Unit]
Description=Turn off dedicated graphics

[Service]
Type=oneshot
ExecStart=/etc/switchoff.sh

[Install]
WantedBy=multi-user.target

and run sudo systemctl enable gpu-switchoff and rebooted. After reboot I ran dmesg | grep acpi_call, but:

[    5.109132] systemd-modules-load[150]: Inserted module 'acpi_call'
[   16.181323] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.997114] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.997864] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.998588] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.999277] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   83.999962] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.000634] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.001344] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.002065] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.002677] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.003285] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.003888] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.005708] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.006376] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.007005] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.007671] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.008418] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.009091] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.009768] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.010395] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.011064] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.011727] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.012435] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.013073] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.013691] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.014361] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[   84.014995] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.743060] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.744152] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.745202] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.746124] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.746926] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.747712] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.748504] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.749345] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.750199] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.750973] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.751736] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.753529] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.754220] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.754982] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.755679] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.756458] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.757150] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.757809] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.758434] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.759172] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.759896] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.760581] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.761236] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.761852] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.762646] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 1578.763474] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.067132] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.067963] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.068676] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.069456] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.070256] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.070998] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.071758] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.072550] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.073407] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.074151] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.074942] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.076734] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.077456] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.078248] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.079051] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.079808] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.080500] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.081396] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.082172] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.082982] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.083748] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.084490] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.085213] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.085898] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.086565] acpi_call: Cannot get handle: Error: AE_NOT_FOUND
[ 4238.087207] acpi_call: Cannot get handle: Error: AE_NOT_FOUND

So something clearly doesn't work. Ideas?

Maybe there's something wrong with the systemd service, output of systemctl status gpu-switchoff is:

gpu-switchoff.service - Turn off dedicated graphics
   Loaded: loaded (/etc/systemd/system/gpu-switchoff.service; enabled)
   Active:failed (Result: exit-code) since ven 2013-05-31 17:26:19 CEST; 1h 33min ago
  Process: 351 ExecStart=/etc/switchoff.sh(code=exited, status=203/EXEC)

Do you solve?
If not, you should follow these steps:
1) Install acpi_call-git from AUR

2) Run as root

modprobe acpi_call

3) Download and install acpi_call_GUI_systemd (read the description for how to install): https://github.com/marcoDallas/acpi_call_GUI_systemd (or create your own systemd file)

4) Run acpi_call_GUI_systemd and only use "change deactivation code" and then "automates disabling discrete GPU every boot",
see here for a video guide: https://www.youtube.com/watch?v=h33bvoR14x8 (or create your own systemd file)

5) Load acpi_call kernel module every boot like explained here: https://wiki.archlinux.org/index.php/Ke … es#Loading

6) Blacklist radeon module like explained here: https://wiki.archlinux.org/index.php/Ke … acklisting

7) That's all!

Bye!

Last edited by MarcoDallas (2013-09-06 17:29:33)

Offline

Board footer

Powered by FluxBB