使用的Y470是双显卡切换的,但只支持Windows系统(鄙视一下联想),运行Linux时独立显卡是一直开着的,相当耗电。Nvidia在Linux下支持并不好,而且使用Linux一般都是出于编程目的,不会使用到独显。因此关闭独立显卡是一个Linux系统省电的一个方案。 经过搜索,Kaijia找到了Michal Kottman开发的一个内核模块acpi_call,这个模块通过修改/proc/acpi/call调用高级配置与电源接口(ACPI)关闭一些不需要的硬件,通过acpi_call可以关闭独立显卡。 9月23日更新:如果出现在升级Linux内核后acpi_call模块无法载入的现象请参考《Linux内核重编译后无法加载acpi_call问题解决》。 可以在Bumblebee项目提供的Ubuntu PPA中安装acpi_call,首先需要向软件仓库增加PPA并且更新apt:
输入以下命令安装acpi_call:
安装完成后的文件放置在/usr/src/acpi-call-版本号/(Kaijia写本文时的版本是1.1.1),运行以下命令编译并加载模
完成编译后可以就可以关闭独立显卡了,输入关闭的命令需要通过test_off.sh脚本确定。你可以在模块的GitHub托管主页下载test_off.sh文件,也可以直接通过此链接下载ZIP压缩包,下载完成后解压出test_off.sh文件,使用chmod增加执行权限并且运行:
运行后会看到类似以下文字的输出内容,其中显示“works!”的内容便是需要输入的部分代码:
以上是Kaijia运行后获得的结果,在此例中“\_SB.PCI0.PEG0.PEGP._OFF”(后面显示为works!,其他均显示为failed)是需要关闭的独立显卡代号,具体的代号根据电脑实际主板情况而不同,模块原作者Michal Kottman的电脑则是“\_SB.PCI0.PEG1.GFX0.DOFF”。确定了代号后可以运行一下命令关闭独立显卡:
在此例Kaijia的电脑中为:
命令运行后独立显卡就已经关闭了,当然每次开机都需要手动运行命令会比较麻烦,可以在rc.local文件中在Linux开机时自动加载模块并关闭独立显卡。以Root编辑文件/etc/rc.local,在文件的最后加入
这样每次开机时独立显卡就会被关闭了,另外如果你需要实现双显卡切换的话,可以参考Bumblebee项目(只支持Nvidia显卡)。 |