禁用NVIDIA Optimus的方法

CPU/显卡/打印机/USB设备等硬件问题
lllluuukke
帖子: 291
注册时间: 2011-03-10 7:43

禁用NVIDIA Optimus的方法

#1

帖子 lllluuukke » 2011-05-03 9:26

本人未测试此方法,请谨慎使用
1. 此文转自http://ubuntuforums.org/showthread.php?t=1705406,由本人翻译并增加注释
2. 原文中标注:为Ubuntu 11.04 Alpha3 64-bit所写
3. 本人系第一次翻译技术类文章,如有问题,请指出
4. 本人系新手,只是由于n卡什么的太纠结,无奈没有解决方法。好不容易找到此文,如果有人能亲身测试,感激不尽!

--------------------------------------------------------------------------看糗百的你伤不起------------------------------------------------------------------------
重要:在任何情况下都不应该安装NVIDIA受限驱动

由于设计原因,optimus技术不适用于Linux

此文可以让你在ubuntu下关闭nvidia显卡,运行intel集成显卡,延长电池使用时间以及寿命

重要:如果你所用的计算机不是ASUS U36Jc,请阅读:
http://ubuntuforums.org/showpost.php?p= ... ostcount=5

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ASUS U36Jc使用NVIDIA Optimus显卡切换系统。不幸的是,由于NVIDIA的老大地位(以及optimus的硬件设计以及工作方式),此技术将不会在Linux中被支持。

由于这个原因,在ubuntu下n卡将一直启动,并且不能够被使用。这会严重影响笔记本电脑电池的使用时间和寿命(6w左右的功率驱动n卡)。

所以我们要把n卡关闭,延长待机时间,创造和谐社会。

下面正式开始:

1. 在家目录下创建一个隐藏文件夹

代码: 全选

mkdir ~/.optimus
cd ~/.optimus/
2. 安装git,使我们可以使用acpi_call模块关闭n卡

代码: 全选

sudo apt-get install git
git clone http://github.com/mkottman/acpi_call.git
3. 下面,进入acpi_call目录,进行编译

代码: 全选

cd acpi_call/
make
4. 现在,将模块放入内核的acpi文件夹

代码: 全选

sudo insmod ./acpi_call.ko
5. 运行这个命令并记录下内核版本

代码: 全选

uname -r
6. 复制模块并运行depmod

代码: 全选

sudo cp acpi_call.ko /lib/modules/<UNAME -R VALUE>/kernel/drivers/acpi/
sudo depmod
7. 编辑/etc/modules,是模块在启动时加载

代码: 全选

gksu gedit /etc/modules
插入:

代码: 全选

acpi_call
8. 新建一个服务,使我们可以开启/关闭n卡

代码: 全选

gksu gedit /etc/init.d/optimusoff
插入:

代码: 全选

#! /bin/sh
### BEGIN INIT INFO
# Provides: 		optimusoff
# Required-Start: 	$local_fs $syslog
# Required-Stop: 	$local_fs $syslog
# Default-Start: 	2 3 4 5
# Default-Stop: 	0 1 6
# Short-Description: 	Disables/Enables the NVidia graphics card
#			within the NVidia Optimus system
#			
#			Modified for the U36Jc and Ubuntu 11.04
#			using details from
#			
#			http://robbyx.net/blog/?p=190
### END INIT INFO
 
. /lib/lsb/init-functions
 
set -e
 
case "$1" in
start)
#
echo '\_SB.PCI0.PEG1.GFX0._OFF' > /proc/acpi/call
;;
stop)
echo '\_SB.PCI0.PEG1.GFX0._ON' > /proc/acpi/call
;;
*)
echo '\_SB.PCI0.PEG1.GFX0._OFF' > /proc/acpi/call
N=/etc/init.d/optimusoff
echo "Usage: $N {start|stop}\nBy default, 'start' is executed.\n" >&2
exit 1
;;
esac
 
exit 0
9. 激活服务

代码: 全选

sudo update-rc.d optimusoff defaults 98 02
sudo chmod a+x /etc/init.d/optimusoff
10. 在使用前,检查当前电力消耗(拔下电源)

代码: 全选

grep rate /proc/acpi/battery/BAT0/state
***注释:本人电脑里没有BAT0这个文件夹,但是有BAT1,请自行检查;BAT0应为默认

***注释:原文中的功率为15148mW,因人而异(本人的有2w多...)

11. 现在,关闭n卡

代码: 全选

sudo service optimusoff start
12. 检查关闭nv显卡后的电力消耗

代码: 全选

grep rate /proc/acpi/battery/BAT0/state
***注释:此时原文中的功率变为9828mW,大约为原来的65%

13. blacklist 显卡驱动模块,避免不必要的麻烦

代码: 全选

gksu gedit /etc/modprobe.d/blacklist-nvidia.conf
插入:

代码: 全选

blacklist nouveau
blacklist nvidia
14. 最后,运行以下代码

代码: 全选

sudo update-initramfs -u
755596757
帖子: 35
注册时间: 2009-02-08 0:34

Re: 禁用NVIDIA Optimus的方法

#2

帖子 755596757 » 2011-05-03 23:52

好帖,必顶!!
头像
大笨虎
帖子: 18
注册时间: 2011-05-03 17:35

Re: 禁用NVIDIA Optimus的方法

#3

帖子 大笨虎 » 2011-05-04 10:39

有没有小白鼠先来测试一下~ :em02
demonlj
帖子: 23
注册时间: 2005-06-07 15:43

Re: 禁用NVIDIA Optimus的方法

#4

帖子 demonlj » 2011-05-04 12:21

Z360, 完成过程很顺利
但是进程启动后,耗电量没有明显变化,偶尔反而会增加耗电量。奇怪
不过感觉不错,还是继续保留这个进程
lllluuukke
帖子: 291
注册时间: 2011-03-10 7:43

Re: 禁用NVIDIA Optimus的方法

#5

帖子 lllluuukke » 2011-05-04 12:34

demonlj 写了:Z360, 完成过程很顺利
但是进程启动后,耗电量没有明显变化,偶尔反而会增加耗电量。奇怪
不过感觉不错,还是继续保留这个进程
请问进程启动前后耗电量大概是多少?偶尔的波动应该是正常的。
e21
帖子: 641
注册时间: 2008-01-24 9:47

Re: 禁用NVIDIA Optimus的方法

#7

帖子 e21 » 2011-05-05 0:25

照着做了一遍,改了对应的命令,optimusoff start关闭n卡,电流没有减少。运行一下sudo service optimusoff stop,结果死机了。
lllluuukke
帖子: 291
注册时间: 2011-03-10 7:43

Re: 禁用NVIDIA Optimus的方法

#8

帖子 lllluuukke » 2011-05-05 7:53

e21 写了:照着做了一遍,改了对应的命令,optimusoff start关闭n卡,电流没有减少。运行一下sudo service optimusoff stop,结果死机了。
重启以后呢?
lllluuukke
帖子: 291
注册时间: 2011-03-10 7:43

Re: 禁用NVIDIA Optimus的方法

#10

帖子 lllluuukke » 2011-05-05 9:21

http://ubuntuforums.org/showpost.php?p= ... ostcount=5

如果所用电脑不是ASUS U36Jc,请用以下方式尝试安装和使用此模块:

代码: 全选

git clone http://github.com/mkottman/acpi_call.git

cd acpi_call

make

sudo insmod acpi_call.ko

./test_off.sh
e21
帖子: 641
注册时间: 2008-01-24 9:47

Re: 禁用NVIDIA Optimus的方法

#11

帖子 e21 » 2011-05-05 15:52

好像可以减少电流,但测量电流变化太大无法知道减少多少。测量要拔掉电源几分钟后再测,否则数字很小,应该是测量一段时间的平均值。
头像
yhtjay
帖子: 12
注册时间: 2008-01-17 22:02
来自: 日落沼澤艾澤拉斯東部王國暴風城出門向左飛到山上就能看見我的房子了!

Re: 禁用NVIDIA Optimus的方法

#12

帖子 yhtjay » 2011-05-09 23:56

其实,在ubuntu下,集成显卡就够了……
头像
iamond
帖子: 719
注册时间: 2010-03-23 12:40

Re: 禁用NVIDIA Optimus的方法

#13

帖子 iamond » 2011-07-01 20:16

先马克一下....但是,我实在没太看得懂....早看到这个就好了......

一会装ubuntu再来试用 ~

如果内核升级了,不会需要又重新做一次吧???
I Kubuntu U
头像
phoenixlzx
帖子: 2245
注册时间: 2009-07-29 20:11
系统: Arch Linux
来自: Gensokyo
联系:

Re: 禁用NVIDIA Optimus的方法

#14

帖子 phoenixlzx » 2011-07-01 22:03

ArchLinux+GNOME3一直开NVIDIA显卡的飘过.... :em04

ThinkPad T420,BIOS带有显卡选项,可以选择只用独显/只用集显/Optimus :em09

我的T420开独显放720P可以扛将近3小时~ :em11

而且一般显卡不怎么发热的....
头像
iamond
帖子: 719
注册时间: 2010-03-23 12:40

Re: 禁用NVIDIA Optimus的方法

#15

帖子 iamond » 2011-07-02 5:17

phoenixlzx 写了:ArchLinux+GNOME3一直开NVIDIA显卡的飘过.... :em04

ThinkPad T420,BIOS带有显卡选项,可以选择只用独显/只用集显/Optimus :em09

我的T420开独显放720P可以扛将近3小时~ :em11

而且一般显卡不怎么发热的....

羡慕~~

ASUS电脑就是这样,BIOS里没有关闭独显或者只用独显的选项.......
好在找到了这帖子.....话说我找了很久...一直都是在搜asus 关闭独显 ubuntu....关键字很重要啊...

按这帖子做后,开flash风扇也不狂转了.....独显估计是关掉了
I Kubuntu U
回复