我的笔记本是Dell Inspiron 15R Turbo 1728,一块Intel集成显卡外加一块ATI显卡。问题出现的情况是:每次启动Archlinux起来,屏幕基本上都是最暗的,偶尔会出现一次正常情况。

我装系统的时候,先装的xf86-video-intel,然后装的xf86-video-ati,其实有尝试装catalyst-dkms,但是catalyst-dkms安装的时候有个gpl跟xf86-video-intel的冲突,需要删掉,并且安装完catalyst-dkms后,重启也是起不来桌面的。。。

当时以为能装上私有驱动后,应该问题就能解决,但是后来因为catalyst-dkms安装失败,我也就放弃了。转机出现,是我在Archlinux的wiki上搜索别的资料的时候,发现了一个文章介绍Sony笔记本Archlinux的相关配置,链接:https://wiki.archlinux.org/index.php/Sony_vaio_VGN-SA/SB

这篇文章里面就提到了关于ATI独显和Intel板载显卡关闭的问题,简要的说就是要先挂载debugfs,

mount -t debugfs debugfs /sys/kernel/debug

或者用在/etc/fstab中加入
debugfs /sys/kernel/debug debugfs 0 0

我表示我的系统已经挂好了这个了,所以我直接进入下一步,加载ATI的模块,

modprobe radeon

关掉不在使用中的显卡

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

检查下设置的效果

cat /sys/kernel/debug/vgaswitcheroo/switch

结果:
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0

注意带+号的表示现在正在用的显卡,IGD就是Intel的板载显卡,DIS就是ATI的那块独显。

如果想重新打开就执行

echo ON > /sys/kernel/debug/vgaswitcheroo/switch

其他的详情看这篇文章吧,不多说了。

再就是吐槽一下,我是最近用最新的镜像重装了下archlinux,原因是大版本变动的升级虽然升级成功了,但是有几个很纠结的小问题实在是没心情解决了,遂重装了,但是没想到这次重装后,发现又有变化就是之前的Sysvinit被systemd替换了。表示对于不会shell脚本的人来说,写一个能开机自动关掉显卡的service文件着实的蛋疼,虽然最终也算是成功了。在wiki上没有看到有关原来rc.local中开机自动执行脚本用systemd实现的方法,有知道的朋友,能否点播下我,谢啦~

vim /usr/lib/systemd/system/rc-local.service

内容如下:

[Unit]

Description=”/etc/rc.d/rc.local Compatibility”

After=network.target

[Service]

Type=forking

ExecStart=/etc/rc.d/rc.local start

TimeoutSec=0

StandardInput=tty

RemainAfterExit=yes

SysVStartPriority=99

[Install]

WantedBy=multi-user.target

启用脚本

systemctl enable rc-local.service

创建启动文件rc.local,

vim /etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local