我有一台联想 g470,搭载 Windows 8,仅用于游戏,还有一个 Linux 发行版,用于开发并作为我的主要操作系统。
我以前用过 Elementary OS,它运行良好,但我决定尝试 CrunchBang。我安装了它,安装过程一切顺利,只有一些关于 wifi 的小问题,我轻松解决了。几分钟后,我按照自己的意愿设置了 OpenBox、conky 和 tint2,我头疼得厉害,眼睛也非常酸痛。我注意到屏幕有点闪烁,就像刷新率较低的 CTR 一样。在较暗的颜色和屏幕角落,这种现象更加明显。
我检查了刷新率和分辨率,一切都很好,分辨率和刷新率都设置为原始值(1366x768 60hz)我以为是显卡驱动程序相关的问题。我的电脑有两块显卡,一块集成的 Intel HD3000 和一块独立的 Ati HD6370,我尝试了这两块显卡。使用英特尔驱动程序,对于 Ati,私有和开源驱动程序没有区别。
在寻找答案并尝试使用 xrandr 进行一些设置后,我放弃了,并尝试使用另一个发行版。这次是 Arch Linux。我安装了基本系统、英特尔视频驱动程序、最新版本的 Xorg 和 OpenBox,但我发现了同样的问题。我不知道这是什么问题。我已经尝试使用 Linux mint,问题也在这里出现,我确信这不是硬件故障,因为我可以在 Windows、Ubuntu 和 Elementary OS 上正常使用它。
知道哪里出了问题吗?或者 Ubuntu 默认存在任何不同的设置,而所有其他操作系统都缺失了,这可能导致此问题?
提前致谢。
答案1
我已经找到问题所在了。LCD 显示器使用的频率称为脉宽调制(脉冲宽度调制)。屏幕背光闪烁到这个频率,在大多数显示器上,范围在 200hz - 500hz 之间。
我的 Linux 发行版默认设置了较低的 PWM 频率,这就是为什么眼睛会疲劳。幸运的是,英特尔 gpu 驱动程序可以更改 PWM 频率。
您需要安装英特尔 GPU 工具
首先,您需要知道您的参考时钟,它存储在地址 0xC6204 上。您可以使用命令 intel_reg_read 读取值,因此要读取该值,您可以使用以下命令:
intel_reg_read 0xC6204
一旦你知道了参考时钟,你就可以使用计算器这一页计算所需的值。我使用了 500mhz,因此得到了 0x7a107a1。
PWM 值的地址是 0xC8254,您可以使用 intel_reg_write 设置值,因此您可以使用:
intel_reg_write 0xC8254 0x7a107a1
您可以立即看到变化。(有时屏幕亮度可能会发生变化,但这是正常的,PWM 频率也会发生变化)
我希望这些信息能够对任何需要的人有所帮助。