如何摆脱“检测到损坏的 NVIDIA RandR,恢复至 RandR 1.0”?

如何摆脱“检测到损坏的 NVIDIA RandR,恢复至 RandR 1.0”?

我的简短问题是:

如何在仍然使用专有 nVidia 驱动程序包(例如 304)的同时摆脱下面的 RandR 错误?

接下来是血腥场面。

全新安装的 wine 1.5(最新版本,来自 ubuntu-wine ppa)在第一次运行时出现以下情况winecfg,请注意不是感动winetricks也不确实~/.wine存在 :

me@mine:~$ winecfg
wine: created the configuration directory '/home/me/.wine'
**err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.**
[err repeats at least 4x more]
fixme:storage:create_storagefile Storage share mode not implemented.
[fixme repeats at least 2x more]
err:mscoree:LoadLibraryShim error reading registry key for installroot
...
fixme:storage:create_storagefile Storage share mode not implemented.
fixme:iphlpapi:NotifyAddrChange (Handle 0x112e8d0, overlapped 0x112e8dc): stub
wine: configuration in '/home/me/.wine' has been updated.
**err:winediag:xrandr12_init_modes Broken NVIDIA RandR detected, falling back to RandR 1.0. Please consider using the Nouveau driver instead.**
[err repeats sporadically]

删除当前nVidia软件包并(重新)安装Nouveau可以消除 RandR 错误,但当我启动任何需要着色器模型 3 的东西时,例如 Eve Online,我目前唯一与 Wine 搏斗的动机,就会出现大量错误。为了运行它,我知道我需要专有驱动程序,所以 Nouveau 对我来说不是一个解决方案——除非你们知道如何使用当前可用的开放内容获得 sm3 支持,那真是太棒了,请告诉我。

我从 WineHQ 了解到,这些fixmes 以及大多数errs 都是无害的“不要看幕后”类型的愿望清单冗长内容。

不过,我想先处理这个损坏的 nVidia RandR 问题,以便解决我所期盼的其他图形问题(特别是手动修改 wine1.5 的着色器模型 3 检测例程,以便我的NVIDIA GeForce Go 7900 GS,这是在 sm4 类型功能实现之前推出的少数兼容 sm3 的笔记本电脑 gpu 之一,当前的 Wine 开发人员似乎使用 sm4-ish 标志来测试 sm3 支持,因此没有考虑它。

为了解决其他问题,我必须先排除那些无法启动的程序。RandR 就是其中之一。我认为它与其他相关帖子的不同之处在于,我没有尝试运行除winecfg它之外的任何东西来引发错误,而不是第三方程序。

PS `uname -a` --> Linux aestrid 3.8.0-12-generic #21-Ubuntu SMP Thu Mar 7 17:17:00 UTC 2013 i686 i686 i686 GNU/Linux

PPS `raring` up-to-the-minute update/dist-upgrade

如何解决这个问题?

PPPS 如果 Henri Verbeet 正在听的话。

答案1

安装winetricks并运行winetricks orm=backbuffer glsl=disable。这将修复提到的错误。

答案2

也许我离这里的解决方案还很远,但是如果你使用 nvidia 提供的脚本自己安装了,我会尝试添加 ppaxorg-edgers,更新并安装他们准备的驱动程序:

sudo add-apt-repository ppa:xorg-edgers/ppa

它为我以前尝试安装官方 nvidia 驱动程序时省去了很多麻烦,从那时起,我再也没有遇到过任何与 wine 或其他东西相关的麻烦。

答案3

显然,当 wine 尝试使用 XRandr 扩展切换分辨率时,就会发生此错误。

因此,要解决这个问题,你必须禁用或阻止 wine 的这种行为

继续安装Q4葡萄酒从 synaptic 包管理器启动它

下一步程式在主窗口中单击选项卡,然后右键单击您正在使用的前缀,然后选择配置虚假驱动器设置

在里面虚假驱动器设置窗口转到视频>X11 驱动程序并将 UseRandR 设置为 N,如下所示

https://i.stack.imgur.com/KRmRa.jpg

答案4

/etc/X11/xorg.conf解决方案就是在in部分中添加一行,将 X 服务器限制为仅一种屏幕分辨率Screen

Option "metamodes" "1920x1080 +0+0"

替换1920x1080为您所需要的支持的分辨率。

Wine FAQ 中有详细解释:

https://wiki.winehq.org/FAQ#Broken_NVIDIA_RandR_detected.2C_falling_back_to_RandR_1.0

相关内容