还有一个问题,
我已经研究这个问题好几天了,但我根本无法让它工作。:(
我知道它在 Windows 上运行良好,但是 Linux 却让我无法运行。
以下是我的规格:
nvidia GTX970、
Vizio M43-C1 4k 电视
如果重要的话:
华硕 Z170a
Intel i5 Skylake
我尝试过的:
-通过 nvidia 面板进行设置(60Hz 有 2 个条目,一个报告设置元模式失败,另一个报告黑屏且无信号)
-通过 xrandr 设置
xrandr --output HDMI-0 --mode 3840x2160 -r 59.94 --verbose (and)
xrandr --output HDMI-0 --mode 3840x2160 -r 60 --verbose
报告失败:
screen 0: 3840x2160 945x532 mm 103.13dpi
crtc 0: 3840x2160 59.94 +0+0 "HDMI-0"
xrandr: Configure crtc 0 failed
crtc 0: disable
crtc 1: disable
crtc 2: disable
crtc 3: disable
screen 0: revert
crtc 0: revert
crtc 1: revert
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 21 (RRSetCrtcConfig)
Value in failed request: 0x0
Serial number of failed request: 54
Current serial number in output stream: 54
- 将驱动程序更新至最新测试版(370.xx)
任何见解都将不胜感激,谢谢。现在我要去工作了!
编辑:这里有一些研究,我希望它能有所帮助。
来自 nvidia linux dev 论坛的主题: https://devtalk.nvidia.com/default/topic/939971/linux/4k-60hz-works-in-windows-not-in-linux-bounty-offered-for-fix-/1
**编辑 3:我可能在此线程中找到了解决方法。https://devtalk.nvidia.com/default/topic/950134/linux/4k-on-hdmi-2-0/
这家伙说已经解决了,但我真的不知道他到底做了什么。https://devtalk.nvidia.com/default/topic/818079/linux/980gtx-no-support-for-4k-60hz-4-2-0-only-30hz-/post/4496595/#4496595
显然这有人在一年前就让它能与 349.12 驱动程序配合使用?什么?这真是一记重击。来自我的系统的一些信息让我想拔掉自己的头发:
来自/var/log/Xorg.0.log:[ 8026.035] (--) NVIDIA(GPU-0): VIZ M43-C1 (DFP-1): 已连接
[ 8026.035] (--) NVIDIA(GPU-0): VIZ M43-C1 (DFP-1): 内部 TMDS
[ 8026.035] (--) NVIDIA(GPU-0): VIZ M43-C1 (DFP-1): 最大像素时钟 600.0 MHz那么最大是 600MHz 吗?好的……
xrandr --verbose 3840x2160 (0x1c6) 593.410MHz +HSync +VSync h: width 3840 start 4016 end 4104 total 4400 skew 0 clock 134.87KHz v: height 2160 start 2168 end 2178 total 2250 clock 59.94Hz
我可能忽略了一些基本的东西,我不确定。在我看来这似乎是正确的(600MHz vs 593.410MHz),我错了吗?
根据我的电视的规格,HDMI 端口 5 最高可支持 120Hz 的 1080p 和 60Hz 的 4k。
xrandr --output HDMI-0 --mode 1920x1080 -r 119.88
这工作正常,我在 1080p 上实现了 120Hz。
1080p 上的 120Hz 会导致屏幕上出现水平线间歇性闪烁。
现在我想该睡觉了。
编辑 2:
这里仍然没有运气,但我有了一些新运气——我的 EVGA 终于开始升级到 1070 了。安装后会报告变化(如果有)。
编辑 3:
看来我可能非常幸运。虽然其他遇到类似问题的人已经等了几个月,但我有时间介入,只需等待几周。我必须等我的新卡到货才能测试它,但它看起来很有希望。nVidia 已承认这是驱动程序中的一个错误,并同时提供了另一台电视的 EDID 来覆盖它,这似乎使 4k 上的 60Hz 工作,但代价是 1080p 上的 120Hz 丢失。我迫不及待想测试一下!
答案1
我在使用 LG 4k 电视时也遇到了类似的问题,但事实证明,我必须在电视上启用“HDMI ULTRA HD Deep Colour”选项才能使其正常工作。
答案2
对于遇到类似问题的任何人,已经找到了一种解决方法,直到 nvidia 发布他们的下一个驱动程序并且它进入存储库。
采用这种解决方法后,您将无法再以 120Hz 显示 1080p。
从该帖子下载 edid。记下您的存储位置。
注意:如果操作不当,或者您的显示器与我的不同,则可能会损坏您的显示管理器。准备在恢复中启动以删除我们创建的下一个文件以扭转问题。
如果你和我一样使用的是 16.04,那么就没有 xorg.conf 文件,如果你创建了一个,那么它可能会随着每次系统更新而消失。相反,请导航至:
cd /usr/share/X11/xorg.conf.d
接下来,在这里创建一个新文件。使用超级用户权限很重要。就我个人而言,我只是 sudo gedit,其他人告诉我我这样做不好。
sudo gedit 50-nvidia.conf
粘贴以下内容:
如果您没有 Vizio M43-C1,请通过 nvidia 控制面板创建您自己的 xorg 设置,并将最后一个选项添加到您的设置中。您只需要监视器部分。我会用粗体标出您需要添加的内容。
#Not First Line
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "VIZ M43-C1"
HorizSync 15.0 - 140.0
VertRefresh 25.0 - 76.0
Option "DPMS"
Option "CustomEDID" "HDMI-0:/path/to/edid.txt"
EndSection
#Not Last Line
选项“CustomEDID”“HDMI-0:/path/to/edid.txt”
这是解决方法。
请注意,HDMI-0 需要用您当前的显示器替换。
要找到你的,请运行:
xrandr
从输出中找到显示已连接的内容。例如,
HDMI-0 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
显示我的显示器是 HDMI-0,所以这是我在 50-nvidia.conf 中使用的。
完成后,只需重新启动即可。如果一切正确,您应该能够正常登录并毫无问题地设置 4k @60Hz 4:2:0。
再次强调,这只是一个解决方法。希望几个月后新驱动程序发布时,没有人需要这样做。
答案3
我必须手动在我的电视上启用 UHD(“输入信号加”)在我的三星电视 (QE43Q60RAT) 上实现 4k 60 fps 播放。这可以通过 来实现General -> External Device Manager -> Input Signal Plus -> [x] HDMI 1
。三星电子手册还不错,当我在手册中搜索 UHD 时,它引导我进入“输入信号加”。
有趣的是,在之前的三星版本中,它在输入专家设置中被称为 UHD,但也许“体验”不是他们想要的,现在 UHD 被埋在“输入信号加”下。
LG 似乎称其为“HDMI 超高清深色”。
有些制造商称之为“HDMI 2.0”。
启用 UHD 后,我立即能够在 Ubuntu 20.04 设置菜单中将显示切换到 4k 60 fps。
一些技术细节:
“输入信号加”之前的 EDID(请注意 300 MHz 像素时钟)
sudo get-edid -b 7 | parse-edid
7
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Only trying 7 as per your request.
256-byte EDID successfully retrieved from i2c bus 7
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "SAMSUNG"
ModelName "SAMSUNG"
VendorName "SAM"
# Monitor Manufactured week 1 of 2019
# EDID version 1.3
# Digital Display
DisplaySize 950 540
Gamma 2.20
Option "DPMS" "false"
Horizsync 15-81
VertRefresh 24-75
# Maximum pixel clock is 300MHz
#Not giving standard mode: 1152x864, 75Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1280x800, 60Hz
#Not giving standard mode: 1280x1024, 60Hz
#Not giving standard mode: 1440x900, 60Hz
#Not giving standard mode: 1600x900, 60Hz
#Not giving standard mode: 1680x1050, 60Hz
#Not giving standard mode: 1920x1080, 60Hz
#Extension block found. Parsing...
#WARNING: I may have missed a mode (CEA mode 95)
#DOUBLE WARNING: It's your first mode, too, so this may actually be important.
#WARNING: I may have missed a mode (CEA mode 93)
#WARNING: I may have missed a mode (CEA mode 94)
#WARNING: I may have missed a mode (CEA mode 98)
#WARNING: I may have missed a mode (CEA mode 100)
Segmentation fault (core dumped)
“输入信号加”后的 EDID(请注意 600 MHz 像素时钟):
sudo get-edid -b 7 | parse-edid
7
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
Only trying 7 as per your request.
256-byte EDID successfully retrieved from i2c bus 7
Looks like i2c was successful. Have a good day.
Checksum Correct
Section "Monitor"
Identifier "SAMSUNG"
ModelName "SAMSUNG"
VendorName "SAM"
# Monitor Manufactured week 1 of 2019
# EDID version 1.3
# Digital Display
DisplaySize 950 540
Gamma 2.20
Option "DPMS" "false"
Horizsync 15-135
VertRefresh 24-75
# Maximum pixel clock is 600MHz
...