笔记本电脑屏幕会导致除 Ubuntu 和基本操作系统之外的所有 Linux 发行版眼睛疲劳

Jos*_*lla 3 linux display backlight refresh-rate eye-strain

我有一台装有 Windows 8 的联想 g470,仅用于游戏,还有一台 Linux 发行版,用于开发并作为我的主要操作系统。

我曾经使用过 Elementary OS,它运行良好,但我决定尝试使用 CrunchBang。我安装了它,安装一切顺利,只是一些关于 wifi 的小问题我很容易解决。几分钟后,根据我的需要设置 OpenBox、conky 和 ​​tint2,我头疼得厉害,我的眼睛感觉很痛。我可以注意到屏幕有点闪烁,就像低刷新率的点击率一样。在较暗的颜色和屏幕的角落上更明显。

我检查了我的刷新率和分辨率,一切都很好,分辨率和刷新设置为原生(1366x768 60hz)我认为这是与显卡驱动程序相关的问题。我的电脑有两个显卡,一个集成的 Intel HD3000 和一个独立的 Ati HD6370,我试过这两种显卡。使用 intel 驱动程序,对于 ati,私有和开源驱动程序没有区别。

在寻找答案并尝试使用 xrandr 进行一些设置后,我放弃并尝试使用另一个发行版。这次是 Arch Linux。我安装了基本系统、英特尔视频驱动程序、最新版本的 Xorg 和 OpenBox,但我发现了同样的问题。我不知道这有什么问题。我已经在尝试使用 Linux mint,问题也出现在这里,我确定这不是硬件故障,因为我可以在 Windows、Ubuntu 和 Elementary OS 上正常使用它。

知道什么可能是错的吗?或者默认情况下 Ubuntu 上存在任何不同的设置,并且所有其他操作系统都丢失了可能导致这种情况?

提前致谢。

Jos*_*lla 7

我已经找到了问题所在。LCD 显示器使用称为PWM(脉宽调制)的频率。屏幕背光以该频率闪烁,在大多数显示器上的范围在 200hz - 500hz 之间。

我的 Linux 发行版默认设置低 PWM 频率,这就是所有眼睛疲劳的原因。幸运的是,英特尔 GPU 驱动程序可以更改 PWM 频率。

你需要安装intel-gpu-tools

首先你需要知道你的参考时钟,它存储在地址 0xC6204 上。您可以使用命令 intel_reg_read 读取值,因此您可以使用以下命令读取值:

    intel_reg_read 0xC6204
Run Code Online (Sandbox Code Playgroud)

一旦您知道您的参考时钟,您就可以使用此页面上的计算器来计算您想要的值。我使用了 500mhz,所以我得到了 0x7a107a1。

PWM 值的地址为 0xC8254,您可以使用 intel_reg_write 设置值,因此您可以使用:

    intel_reg_write 0xC8254 0x7a107a1
Run Code Online (Sandbox Code Playgroud)

您可以立即看到变化。(有时屏幕亮度可能会改变,但这没关系,PWM 频率也会改变)

我希望这些信息可以对需要它的人有所帮助。

来源