Turning off discrete graphics for Acer Aspire 4750G
OPTIMUS on Linux has always been a pain in the ass for Linux users. It drains your battery power but you can't use it! Here is a way to turn it off on Linux, enjoy.
Save the following script to 'discrete-off' and copy it to '/etc/rc.d' or '/etc/init.d' depend on your system.
Now register the script to be start up at boot. For Arch Linux, add discrete-off to your '/etc/rc.conf' DAEMONS variable. For ubuntu, you should probably run 'sudo update-rc.d -f discrete-off defaults'.
With NVIDIA card turned, my battery life grow from ~2 hr to ~3.5 hr!!! Thanks for the people who contributed to this!
For more information, checkout Linux Hybrid Graphics.
Install acpi_call
From github
git clone https://github.com/mkottman/acpi_call.git
cd acpi_call
make
sudo cp acpi_call.ko /lib/modules/`uname -r`/kernel/drivers/acpi
cd acpi_call
make
sudo cp acpi_call.ko /lib/modules/`uname -r`/kernel/drivers/acpi
From AUR
If you are using Arch Linux, it's available at here
Add startup script
For 4750G, the acpi_call is "\_SB.PCI0.PEG0.PEGP._OFF".Save the following script to 'discrete-off' and copy it to '/etc/rc.d' or '/etc/init.d' depend on your system.
#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
case "$1" in
start)
if cat /proc/cmdline | grep 'powersave'; then
if lsmod | grep -q acpi_call; then
stat_busy "Stopping discrete graphics"
echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
result=$(cat /proc/acpi/call)
case "$result" in
Error*)
stat_fail
;;
*)
add_daemon discrete-off
stat_done
;;
esac
else
echo 'The acpi_call module is not loaded'
exit 1
fi
fi
;;
stop)
if cat /proc/cmdline | grep 'powersave' && lsmod | grep -q acpi_call; then
stat_busy "Rusuming discrete grahpics"
echo '\_SB.PCI0.PEG0.PEGP._ON' > /proc/acpi/call
stat_done
fi
;;
*)
echo "Usage: /etc/rc.d/discrete-off {start|stop}"
exit 1
;;
esac
exit 0
Now register the script to be start up at boot. For Arch Linux, add discrete-off to your '/etc/rc.conf' DAEMONS variable. For ubuntu, you should probably run 'sudo update-rc.d -f discrete-off defaults'.
Optional: Add GRUB entry
If you look at discrete-off script, you'll find that I use a keyword in /proc/cmdline to enable the script. If you don't like the check, simply remove it, else you have to add a new entry for your GRUB menu.lst. For my case:# (0) Arch Linux title Arch Linux Powersave root (hd0,4) kernel /boot/vmlinuz26-mainline root=/dev/sda5 ro vga=792 powersave initrd /boot/kernel26-mainline.img
Remark
With NVIDIA card turned, my battery life grow from ~2 hr to ~3.5 hr!!! Thanks for the people who contributed to this!
For more information, checkout Linux Hybrid Graphics.
留言