关闭

对nvidia optimus黑屏与背光调节问题的一点总结

标签: nvidia显卡
299人阅读 评论(0) 收藏 举报
分类:

·· / ·– ·· ·-·· ·-·· / ·–· · ·-· ··· ·· ··· - / ··- -· - ·· ·-·· / ·· / ·– ·· -·

黑屏问题

个人怀疑对于支持intel,nvidia双显卡切换的机器,nvidia显卡驱动的最常见的问题就是黑屏。我在用ubuntu/debian的时候,安装完nvidia显卡驱动后,只要把nvidia显卡设为默认显卡,进入DM时必黑屏。这时就要用prime-select intel来手动切换回intel驱动。引起这个问题的一种情况(我不清楚是否有其他情况)是因为机器用的“独立显卡”其实是不独立的。多数的支持nvidia optimus的显卡是muxless的。以下引用自debian中文论坛 @poloshiao的回答

顯卡 分 muxed 及 muxless

muxed顯卡可以單獨用來計算/處理3D並且顯示出來所以可以切換
muxless顯卡只用來計算/處理3D再交給Intel(或AMD)集成顯卡顯示(猜測這是3Dcontroller名稱的由來)一般不必切換

由於 muxless 顯卡 計算/處理 3D 再交給 Intel (或 AMD) 集成顯卡 顯示 的分工 可以使得 顯卡溫度降低 效能提高 具有 optimus 功能的 nVidia 顯卡 目前 大部分是 這種設計

简言之,多数双显卡不使用multiplexer(mux),独立显卡无法独立工作,它们只负责计算,而显示要靠集成显卡。如果你执行“lspci | grep nvidia -i”得到的显示是3D controller而不是VGA,那么你就属于muxless这种情况。

针对这种情况,一种解决方案是安装bumblebee,可以参考我的这篇文章
还有一种解决方案,就是使用X Resize and Rotate Extension1.4(xrandr1.4),这也是nvidia官方提供的解决方案。
强烈建议先看一下这篇文章这篇文章
一、首先编辑/etc/X11/xorg.conf。下面是一个例子。

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "01:00:0"
    Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

其中的BusID需要根据实际情况来改,不过示例中的BusID**貌似**能胜任大多数情况。

二、修改startx或DM的启动脚本
我用的DM是SDDM,需要修改/usr/share/sddm/scripts文件,在该文件末尾添加以下内容:

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

其中第一句的内容是让nvidia作为modesetting的显示输出的源。

如果用的是gdm,在/etc/gdm/Init/Default最后添加

exec xrandr --setprovideroutputsource modesetting NVIDIA-0
exec xrandr --auto

如果用的是startx,在~/.xinitrc中启动DE或WM的命令之前添加

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

其他情况可以参考Gentoo Wiki

注意:xrandr要在X下运行,在tty终端(我是指Ctrl+alt+F1进入的终端)执行xrandr会显示Can’t open display,所以以上命令必须写在DM或startx的启动脚本中。

做完以上两步后,应该就不会黑屏了。这是我在gentoo的解决方案。

LCD背光问题

唔,这个问题也是比较纠结的,因为不能调节屏幕亮度,有一天晚上我仅仅盯着熠熠生辉的屏幕看了几分钟,第二天我的眼睛就不舒服了近一个上午。。。
注意下面背光调节的方式为通过快捷键。
LCD背光调节的机制是比较复杂的,引起这个问题的原因也有很多。解决这个问题,首先要确认显卡驱动要安装正确(尝试安装专有驱动,注意开源驱动nouveau本身是支持亮度调节的),gentoo用户还要查看一下内核编译选项。

-> Device Drivers
-> Graphics support
-> Backlight & LCD device support
-*- Lowlevel Backlight controls
<*> Generic (aka Sharp Corgi) Backlight Driver

然后如果还不能调节背光,可以尝试一下添加内核参数。编辑/etc/default/grub,找到GRUB_CMDLINE_LINUX_DEFAULT这一行,去掉注释,并改为

GRUB_CMDLINE_LINUX_DEFAULT=”acpi_backlight=video”

然后执行

grub-mkconfig -o /boot/grub/grub.cfg

如果仍不行,尝试把其中的video改为vendor或native,这个要看具体情况,我使用video后就可以调节亮度了。注意这里不一定要用快捷键调节亮度,通过修改/sys/class/backlight/acpi_video0/brightness或/sys/class/backlight/intel_backlight/brightness的数值也可以调节亮度。数值的大小不能超过同目录下max_brightness文件的数值。(这个方式可以用来让laptop-mode-tools控制亮度)
强烈建议看一下https://wiki.archlinux.org/index.php/Backlight,上面讲的情况涵盖面非常广。
这样应该就可以正常调节亮度了。

0
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:63093次
    • 积分:1343
    • 等级:
    • 排名:千里之外
    • 原创:82篇
    • 转载:0篇
    • 译文:0篇
    • 评论:10条
    最新评论