Manjaro 笔记本的多屏幕问题
虽然说manjaro安装nvidia的闭源驱动非常简单(KDE系统设置->硬件设定->Auto Install Proprietary Driver)。但是后面也避免不了不少问题。
前情提要:
最近新入手了一块2k大屏,准备用作笔记本的拓展屏幕(_程序员必备竖屏_)。插电(接线),开机。唔,不愧是即插即用,一次性点亮(拓展屏,笔记本内置屏同时显示)。然而后面问题却没有我想象中的那么简单。
问题一:
原计划拓展屏内容作为竖屏显示。然后我就发现这做不到——无论是用系统设定中的显示设置(设置后无效), xrandr -o left
(报错),还是arandr (显示器方向的选项卡里只能设置normal(其他选项均为灰色)),都无法更改显示内容的方向。
唔,也许是这块屏幕的linux兼容性不太行。没法旋转就算了(自认倒霉,放弃)。
问题二:
一段时间的使用后感觉拓展屏的显示有明显的掉帧现象。至少在窗口拖动的显示无法达到60fps的丝滑体验。对于一个注重日常体验(强迫症)的人来说,这种掉帧怎么能够忍受!
仔细研究了一下,发现似乎外接屏幕连接的是intel核心显卡。唔,众所周知intel核显拉垮。于是就尝试让外接屏幕直连N卡。
Debug:
因为问题比较冷门,国内的linux圈本来就小众。在一点点搜索引擎查询后,以及在ArchWiki(NVIDIA(简体中文))上猛补知识后,大概知道了问题出在/etc/X11/xorg.conf
即xorg配置文件(没有没关系)上。由于已经装过了N卡驱动,直接用用偷懒自动xorg生成命令# nvidia-xconfig
(需要root权限,xorg配置修改均需root权限,下同)
注意:xorg配置文件修改后需要注销/重启后才能生效。
重启后,外接屏的问题一次性都解决了,在nvidia-settings里也能操作这块屏幕了(更改内容显示方向等设置),显示的帧率也上来了。可惜,新的问题又来了。
问题三:
笔记本多屏幕配置xorg.conf后,笔记本内置屏不显示桌面(不识别)。
长话短说,又是很长很长时间的google后,终于找到了问题的答案。
根据国外网友(的猜测)笔记本内置屏是直接连接到intel核显的,打了n卡驱动后,n卡仅负责3d渲染,把渲染的内容传递给核显,核显再把画面传递到笔记本内置屏。
我看了一下前面的nvidia-xconf生成的xorg.conf文件后发现,n卡似乎不能识别到笔记本内置屏,配置文件中仅有一块屏幕的配置信息。可以粗略证明前面的观点。在xorg里可以指定显示器使用的显卡驱动。因此需要手动添加配置信息,指定内置屏幕使用intel核显驱动。
由于我对xorg.conf文件的理解不到位。至今还无法理解里面的一些语句的意义,和配置的原理。。。所以就不再具体的解释(胡乱的猜测)了。直接放上最终解决方案(并非最完美,仅为目前我在网络上找到的最完美的解决方案)
最终解决方案:
手动配置# vim /etc/X11/xorg.conf
,参考代码:
1 | Section “ServerLayout” |
Not a real solution but manually editing the xorg.conf file at least makes nvidia-drivers work without problem and the laptop screen is working even the external monitor is not attached.
这个配置可能还要需要一定的小修改以适配你的电脑。
另外,建议参考一下ArchWiki Xorg学习一下xorg配置方法。
后记:
即便配置完成后,由于nvidia默认的自动功耗调整(节电),可能还是没法完全体验到完美的桌面丝滑体验(60fps+)。可能还需要手动在nvidia-settings
里设置GPUPowerMizerMode
附上shell脚本:
1 |
|
至于shell脚本如何自动开机自动执行,有好多好多方法。这里就不一一列出了。
方法其一:kde的系统设置->开机和关机->自动启动->Login Scripts里添加sh脚本。