如何在 Ubuntu 16.04 中以 4:2:0 获得 4k @ 60Hz?

Ste*_*eve 9 nvidia 4k-monitor

还有一个问题,

我已经为此工作了几天,但我根本无法让它发挥作用。:(

我知道它适用于 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
Run Code Online (Sandbox Code Playgroud)

此报告失败:

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
Run Code Online (Sandbox Code Playgroud)

- 将驱动程序更新到最新测试版 (370.xx)

任何见解将不胜感激,谢谢。现在我要上班了!

编辑:这里有一些研究,我希望它会有所帮助。

  1. 来自 nvidia linux 开发论坛的主题: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 驱动程序一起工作?什么?这是一个真正的打击。

  2. 我的系统中的一些信息让我想把头发拉出来:
    来自/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
    
    Run Code Online (Sandbox Code Playgroud)

    我可能在这里遗漏了一些基本的东西,我不确定。似乎向我检查(600MHz vs 593.410MHz,)我错了吗?

  3. 根据我的电视规格,HDMI 端口 5 在 120Hz 时最高支持 1080p,在 60Hz 时最高支持 4k。

    xrandr --output HDMI-0 --mode 1920x1080 -r 119.88
    
    Run Code Online (Sandbox Code Playgroud)

    这很好用,我在 1080p 上达到了 120Hz。
    1080p 上的 120Hz 会导致屏幕上间歇性地闪烁水平线。

现在我想是时候睡觉了。

编辑 2:
这里仍然没有运气,但一些新的运气来了 - 我的 EVGA 升级到 1070 终于开始了。安装后将报告更改(如果有)。

编辑 3:
看来我可能非常幸运。虽然其他有类似问题的人已经等了几个月,但我有时间介入,只等了几周。我将不得不等待我的新卡进来测试它,但它看起来很有希望。nVidia 承认这是驱动程序中的一个错误,并同时提供了来自另一台电视的 EDID 以覆盖似乎使 4k 上的 60Hz 工作,但代价是在 1080p 上丢失 120Hz。我等不及要测试这个了!

小智 9

我在 LG 4k 电视上遇到了类似的问题,但事实证明我必须在电视上启用“HDMI ULTRA HD Deep Colour”选项才能使其工作。

  • 在 LG 显示器上,您可以在 Menu -> Picture -> Picture Adjust -> HDMI ULTRA HD Deep Color 中启用它 (4认同)

Ste*_*eve 4

对于任何面临类似问题的人来说,在 nvidia 发布下一个驱动程序并将其纳入存储库之前,我们已经找到了解决方法。
通过此解决方法,您将无法选择以 120Hz 显示 1080p。

首先,请参阅: https:
//devtalk.nvidia.com/default/topic/939971/linux/4k-60hz-works-in-windows-not-in-linux-workaround-found-/post/4959257/#4959257

从该帖子下载 edid。请注意您存储它的位置。

注意:如果操作不正确,或者您的显示器与我的显示器不同,则可能会损坏您的显示管理器。准备好开始恢复以删除我们创建的下一个文件以扭转问题。

如果你像我一样使用 16.04,则没有 xorg.conf 文件,如果你制作了一个文件,它就会随着每次系统更新而消失。相反,导航至:

cd /usr/share/X11/xorg.conf.d
Run Code Online (Sandbox Code Playgroud)

接下来,在此处创建一个新文件。使用超级用户权限很重要。就我个人而言,我只是 sudo gedit,其他人告诉我我对此不好。

sudo gedit 50-nvidia.conf
Run Code Online (Sandbox Code Playgroud)

将以下内容粘贴到其中:
如果您没有 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
Run Code Online (Sandbox Code Playgroud)

选项“CustomEDID”“HDMI-0:/path/to/edid.txt”
这是解决方法。

请注意,HDMI-0 需要替换为您当前的显示器。
要找到你的,请运行:

xrandr
Run Code Online (Sandbox Code Playgroud)

从输出中找到显示已连接的那个。例如,

HDMI-0 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
Run Code Online (Sandbox Code Playgroud)

显示我的显示器是 HDMI-0,所以这是我在 50-nvidia.conf 中使用的。

完成后,只需重新启动即可。如果一切正确,您应该能够正常登录并设置 4k @60Hz 4:2:0 没有问题。

再次强调,这只是一种解决方法。希望新驱动程序发布后的几个月内没有人需要这样做。