我最近在 Windows 10 的同时安装了 Kubuntu 20.04 LTS,但有一个问题一直困扰着我,无论是实时启动还是安装,我的屏幕颜色都是淘汰。
我已经尝试了论坛上能找到的所有针对此问题的解决方案(大概有 5 到 8 个?)但似乎都没有效果。
我也在这个论坛之外搜索过,总的来说,最推荐的是“使固定“xrandr --output HDMI-1 --set "Broadcast RGB" "Full"
但它根本不起作用。
OS: Ubuntu 20.04.1 LTS x86_64
Kernel: 5.4.0-48-generic
CPU: Intel Pentium G4400 (2) @ 3.300GHz
GPU: Intel HD Graphics 510
编辑:
不久前,我使用 Linux Mint 20 Cinnamon 实时启动,但那里的颜色显示不正确。与此无关,我调整了显示分辨率,当我将其设置为 1600x900 时,所有颜色都正确显示,黑色是黑色而不是灰色。
于是我回到我的 Kubuntu,将分辨率设置为 1600x900,瞧!
颜色显示正确。
还有一件事要记住,当我进入 Steam 大屏幕模式时,当我将分辨率改为 1920x1080 时,Steam 警告我,我只有一个内存容量,可能会出现严重的性能问题。虽然它没有任何性能问题,而且性能比我见过的 Steam 大屏幕模式要好(因为我习惯使用 Windows),但我想这个警告还是需要记住的。
編輯結束
先感谢您。
答案1
这与消费电子协会指定数字电视连接的方式有关。如果您的显示器可以连接到 A/V 设备,它将宣传一些标准电视分辨率(例如 1920x1080@60Hz),这些分辨率将输入“有限范围”的 16:235 像素值,当您的显示器预期 0:255 时,会导致颜色褪色。由于 Linux 也在媒体播放器和接收器上运行,我可以理解为什么英特尔不愿意让它像在 Windows 上一样工作。不幸的是,似乎没有任何启动时间覆盖,我们只能
xrandr --output <connector> --set "Broadcast RGB" "Full"
在 X 启动期间运行,而您的显示器所在的是哪个。(使用xrandr --listmonitors
)
也就是说,如果您的计算机和显示器支持 DisplayPort,则该连接应该默认为全范围。
另一个选项是将非标准分辨率添加到您的 Xorg 配置中,并在您的桌面环境中进行设置。例如,63 Hz 的 1080p 不会被识别为电视标准,并且默认为全范围。
最后,您可以尝试根据您的显示器提供的 EDID 文件创建自己的 EDID 文件(该文件宣传显示器功能),然后让 Linux 使用该文件。我自己还没有尝试过,但它应该会在启动时为您提供正确的颜色。缺点是您无法以这种方式为不同的显示器提供不同的 EDID。(搜索 drm_kms_helper.edid_firmware 和 wxEDID 等工具)
答案2
根据快速提示:在 Wayland 中设置色彩空间值作者:Brad T. Laue,我想出了以下解决方案(有点):
- 安装
libdrm-tests
并运行proptest
。 - 对于存在此问题的显示器,请识别连接器编号以及“广播 RGB”属性的编号。
- 切换到 TTY 控制台并运行:
/usr/bin/proptest -M i915 -D /dev/dri/card0 <ID_of_connector> connector <ID_of_property> <value>
尝试<value>
1 或 2。效果立竿见影。您的屏幕应该会变黑一秒钟,然后控制台的黑色背景应该比以前更暗。
- 通过编辑 GDM3 服务配置来使此操作永久生效,以便在 GDM3 启动之前运行此命令。进行备份:
sudo cp /lib/systemd/system/gdm3.service /lib/systemd/system/gdm3.service.bak
然后使用纳米:
sudo nano /lib/systemd/system/gdm3.service
- 在该
[Service]
部分中,在任何其他条目之前添加:
ExecStartPre=-/usr/bin/proptest -M i915 -D /dev/dri/card0 74 connector 76 1
这是我的系统的命令。执行不是忘记-
命令前的。这指示systemd如果命令失败(非零返回代码)则继续。
- 保存并重新启动。
我在运行 Intel UHD Graphics 630 的 Ubuntu 21.04 Wayland 上对此进行了测试。
我在我的博客上发表了一篇关于这个“褪色颜色”问题的详细文章:在 Ubuntu 上将全 RGB 设置为 HDMI 显示器。我现在遇到的问题是,这个修复突然停止工作,而我没有做任何更改。该命令在启动时失败,状态为243/CREDENTIALS
,但在我登录并从终端发出 GDM3 重新启动后,它就可以正常工作了。